Relocated LCWDs to proper location.
authorManu Sporny <msporny@digitalbazaar.com>
Tue, 09 Apr 2013 11:49:05 -0400
changeset 1571 2d46b94af937
parent 1570 11d49104eea9
child 1572 42e6e35c4a8e
Relocated LCWDs to proper location.
spec/WD/20130411/json-ld-api/diff-20120712.html
spec/WD/20130411/json-ld-api/index.html
spec/WD/20130411/json-ld/diff-20120712.html
spec/WD/20130411/json-ld/index.html
spec/WD/20130411/json-ld/linked-data-graph.png
spec/WD/json-ld-api/20130411/diff-20120712.html
spec/WD/json-ld-api/20130411/index.html
spec/WD/json-ld/20130411/diff-20120712.html
spec/WD/json-ld/20130411/index.html
spec/WD/json-ld/20130411/linked-data-graph.png
--- a/spec/WD/20130411/json-ld-api/diff-20120712.html	Mon Apr 08 11:44:09 2013 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42008 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
-<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" prefix='bibo: http://purl.org/ontology/bibo/' typeof="bibo:Document">
-<head>
-<title>JSON-LD 1.0 Processing Algorithms and API</title>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-<style type="text/css">
-  .diff {
-    font-weight:bold; color:#0a3;
-  }
-  .error a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-  }
-  .atrisk-head {
-    font-style: italic;
-  }
-</style>
-<style>
-/* --- INLINES --- */
-em.rfc2119 {
-    text-transform:     lowercase;
-    font-variant:       small-caps;
-    font-style:         normal;
-    color:              #900;
-}
-
-h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
-h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
-    border: none;
-}
-
-dfn {
-    font-weight:    bold;
-}
-
-a.internalDFN {
-    color:  inherit;
-    border-bottom:  1px solid #99c;
-    text-decoration:    none;
-}
-
-a.externalDFN {
-    color:  inherit;
-    border-bottom:  1px dotted #ccc;
-    text-decoration:    none;
-}
-
-a.bibref {
-    text-decoration:    none;
-}
-
-cite .bibref {
-    font-style: normal;
-}
-
-code {
-    color:  #ff4500;
-}
-
-
-/* --- --- */
-ol.algorithm { counter-reset:numsection; list-style-type: none; }
-ol.algorithm li { margin: 0.5em 0; }
-ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
-
-/* --- TOC --- */
-.toc a, .tof a {
-    text-decoration:    none;
-}
-
-a .secno, a .figno {
-    color:  #000;
-}
-
-ul.tof, ol.tof {
-    list-style: none outside none;
-}
-
-.caption {
-    margin-top: 0.5em;
-    font-style:   italic;
-}
-
-/* --- TABLE --- */
-table.simple {
-    border-spacing: 0;
-    border-collapse:    collapse;
-    border-bottom:  3px solid #005a9c;
-}
-
-.simple th {
-    background: #005a9c;
-    color:  #fff;
-    padding:    3px 5px;
-    text-align: left;
-}
-
-.simple th[scope="row"] {
-    background: inherit;
-    color:  inherit;
-    border-top: 1px solid #ddd;
-}
-
-.simple td {
-    padding:    3px 10px;
-    border-top: 1px solid #ddd;
-}
-
-.simple tr:nth-child(even) {
-    background: #f0f6ff;
-}
-
-/* --- DL --- */
-.section dd > p:first-child {
-    margin-top: 0;
-}
-
-.section dd > p:last-child {
-    margin-bottom: 0;
-}
-
-.section dd {
-    margin-bottom:  1em;
-}
-
-.section dl.attrs dd, .section dl.eldef dd {
-    margin-bottom:  0;
-}
-</style><style>/* --- EXAMPLES --- */
-div.example-title {
-    min-width: 7.5em;
-    color: #b9ab2d;
-}
-div.example-title span {
-    text-transform: uppercase;
-}
-aside.example, div.example, div.illegal-example {
-    padding: 0.5em;
-    margin: 1em 0;
-    position: relative;
-    clear: both;
-}
-div.illegal-example { color: red }
-div.illegal-example p { color: black }
-aside.example, div.example {
-    padding: .5em;
-    border-left-width: .5em;
-    border-left-style: solid;
-    border-color: #e0cb52;
-    background: #fcfaee;
-}
-
-aside.example div.example {
-    border-left-width: .1em;
-    border-color: #999;
-    background: #fff;
-}
-aside.example div.example div.example-title {
-    color: #999;
-}
-</style><style>/* --- ISSUES/NOTES --- */
-div.issue-title, div.note-title {
-    padding-right:  1em;
-    min-width: 7.5em;
-    color: #b9ab2d;
-}
-div.issue-title { color: #e05252; }
-div.note-title { color: #52e052; }
-div.issue-title span, div.note-title span {
-    text-transform: uppercase;
-}
-div.note, div.issue {
-    margin-top: 1em;
-    margin-bottom: 1em;
-}
-.note > p:first-child, .issue > p:first-child { margin-top: 0 }
-.issue, .note {
-    padding: .5em;
-    border-left-width: .5em;
-    border-left-style: solid;
-}
-div.issue, div.note {
-    padding: 0.5em;
-    margin: 1em 0;
-    position: relative;
-    clear: both;
-}
-span.note, span.issue { padding: .1em .5em .15em; }
-
-.issue {
-    border-color: #e05252;
-    background: #fbe9e9;
-}
-.note {
-    border-color: #52e052;
-    background: #e9fbe9;
-}
-
-
-</style><style>/* --- WEB IDL --- */
-pre.idl {
-    border-top: 1px solid #90b8de;
-    border-bottom: 1px solid #90b8de;
-    padding:    1em;
-    line-height:    120%;
-}
-
-pre.idl::before {
-    content:    "WebIDL";
-    display:    block;
-    width:      150px;
-    background: #90b8de;
-    color:  #fff;
-    font-family:    initial;
-    padding:    3px;
-    font-weight:    bold;
-    margin: -1em 0 1em -1em;
-}
-
-.idlType {
-    color:  #ff4500;
-    font-weight:    bold;
-    text-decoration:    none;
-}
-
-/*.idlModule*/
-/*.idlModuleID*/
-/*.idlInterface*/
-.idlInterfaceID, .idlDictionaryID, .idlCallbackID, .idlEnumID {
-    font-weight:    bold;
-    color:  #005a9c;
-}
-a.idlEnumItem {
-    color:  #000;
-    border-bottom:  1px dotted #ccc;
-    text-decoration: none;
-}
-
-.idlSuperclass {
-    font-style: italic;
-    color:  #005a9c;
-}
-
-/*.idlAttribute*/
-.idlAttrType, .idlFieldType, .idlMemberType {
-    color:  #005a9c;
-}
-.idlAttrName, .idlFieldName, .idlMemberName {
-    color:  #ff4500;
-}
-.idlAttrName a, .idlFieldName a, .idlMemberName a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-}
-
-/*.idlMethod*/
-.idlMethType, .idlCallbackType {
-    color:  #005a9c;
-}
-.idlMethName {
-    color:  #ff4500;
-}
-.idlMethName a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-}
-
-/*.idlCtor*/
-.idlCtorName {
-    color:  #ff4500;
-}
-.idlCtorName a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-}
-
-/*.idlParam*/
-.idlParamType {
-    color:  #005a9c;
-}
-.idlParamName, .idlDefaultValue {
-    font-style: italic;
-}
-
-.extAttr {
-    color:  #666;
-}
-
-/*.idlSectionComment*/
-.idlSectionComment {
-    color: gray;
-}
-
-/*.idlConst*/
-.idlConstType {
-    color:  #005a9c;
-}
-.idlConstName {
-    color:  #ff4500;
-}
-.idlConstName a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-}
-
-/*.idlException*/
-.idlExceptionID {
-    font-weight:    bold;
-    color:  #c00;
-}
-
-.idlTypedefID, .idlTypedefType {
-    color:  #005a9c;
-}
-
-.idlRaises, .idlRaises a.idlType, .idlRaises a.idlType code, .excName a, .excName a code {
-    color:  #c00;
-    font-weight:    normal;
-}
-
-.excName a {
-    font-family:    monospace;
-}
-
-.idlRaises a.idlType, .excName a.idlType {
-    border-bottom:  1px dotted #c00;
-}
-
-.excGetSetTrue, .excGetSetFalse, .prmNullTrue, .prmNullFalse, .prmOptTrue, .prmOptFalse {
-    width:  45px;
-    text-align: center;
-}
-.excGetSetTrue, .prmNullTrue, .prmOptTrue { color:  #0c0; }
-.excGetSetFalse, .prmNullFalse, .prmOptFalse { color:  #c00; }
-
-.idlImplements a {
-    font-weight:    bold;
-}
-
-dl.attributes, dl.methods, dl.constants, dl.constructors, dl.fields, dl.dictionary-members {
-    margin-left:    2em;
-}
-
-.attributes dt, .methods dt, .constants dt, .constructors dt, .fields dt, .dictionary-members dt {
-    font-weight:    normal;
-}
-
-.attributes dt code, .methods dt code, .constants dt code, .constructors dt code, .fields dt code, .dictionary-members dt code {
-    font-weight:    bold;
-    color:  #000;
-    font-family:    monospace;
-}
-
-.attributes dt code, .fields dt code, .dictionary-members dt code {
-    background:  #ffffd2;
-}
-
-.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
-    color:  #005a9c;
-    background:  transparent;
-    font-family:    inherit;
-    font-weight:    normal;
-    font-style: italic;
-}
-
-.methods dt code {
-    background:  #d9e6f8;
-}
-
-.constants dt code {
-    background:  #ddffd2;
-}
-
-.constructors dt code {
-    background:  #cfc;
-}
-
-.attributes dd, .methods dd, .constants dd, .constructors dd, .fields dd, .dictionary-members dd {
-    margin-bottom:  1em;
-}
-
-table.parameters, table.exceptions {
-    border-spacing: 0;
-    border-collapse:    collapse;
-    margin: 0.5em 0;
-    width:  100%;
-}
-table.parameters { border-bottom:  1px solid #90b8de; }
-table.exceptions { border-bottom:  1px solid #deb890; }
-
-.parameters th, .exceptions th {
-    color:  #fff;
-    padding:    3px 5px;
-    text-align: left;
-    font-family:    initial;
-    font-weight:    normal;
-    text-shadow:    #666 1px 1px 0;
-}
-.parameters th { background: #90b8de; }
-.exceptions th { background: #deb890; }
-
-.parameters td, .exceptions td {
-    padding:    3px 10px;
-    border-top: 1px solid #ddd;
-    vertical-align: top;
-}
-
-.parameters tr:first-child td, .exceptions tr:first-child td {
-    border-top: none;
-}
-
-.parameters td.prmName, .exceptions td.excName, .exceptions td.excCodeName {
-    width:  100px;
-}
-
-.parameters td.prmType {
-    width:  120px;
-}
-
-table.exceptions table {
-    border-spacing: 0;
-    border-collapse:    collapse;
-    width:  100%;
-}
-</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
-<!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
-
-<!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
-<style type='text/css'>
-.diff-old-a {
-  font-size: smaller;
-  color: red;
-}
-
-.diff-new { background-color: yellow; }
-.diff-chg { background-color: lime; }
-.diff-new:before,
-.diff-new:after
-    { content: "\2191" }
-.diff-chg:before, .diff-chg:after
-    { content: "\2195" }
-.diff-old { text-decoration: line-through; background-color: #FBB; }
-.diff-old:before,
-.diff-old:after
-    { content: "\2193" }
-:focus { border: thin red solid}
-</style>
-</head>
-
-<body><div class="head">
-<p>
-<a href="http://www.w3.org/">
-<img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" />
-</a>
-</p>
-<h1 class="title" id="title">
-JSON-LD
-<del class="diff-old">API
-</del>
-1.0
-<ins class="diff-new">Processing
-Algorithms
-and
-API
-</ins>
-</h1>
-<del class="diff-old">An
-Application
-Programming
-Interface
-for
-the
-JSON-LD
-Syntax
-</del>
-<h2 id="w3c-last-call-working-draft-11-april-2013">
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-<ins class="diff-chg">Last
-Call
-</ins>
-Working
-Draft
-<del class="diff-old">12
-July
-2012
-</del>
-<ins class="diff-chg">11
-April
-2013
-</ins>
-</h2>
-<dl>
-<dt>
-This
-version:
-</dt>
-<dd>
-<del class="diff-old">http://www.w3.org/TR/2012/WD-json-ld-api-20120712/
-</del>
-<a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/">
-<ins class="diff-chg">http://www.w3.org/TR/2013/WD-json-ld-api-20130411/
-</ins>
-</a>
-</dd>
-<dt>
-Latest
-published
-version:
-</dt>
-<dd>
-<a href="http://www.w3.org/TR/json-ld-api/">
-http://www.w3.org/TR/json-ld-api/
-</a>
-</dd>
-<dt>
-Latest
-editor's
-draft:
-</dt>
-<dd>
-<del class="diff-old">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld-api/index.html
-</del>
-<a href="http://json-ld.org/spec/latest/json-ld-api/index.html">
-<ins class="diff-chg">http://json-ld.org/spec/latest/json-ld-api/index.html
-</ins></a></dd><dt><ins class="diff-chg">
-Test
-suite:
-</ins></dt><dd><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-chg">
-http://www.w3.org/2013/json-ld-tests/
-</ins></a></dd><dt><ins class="diff-chg">
-Previous
-version:
-</ins></dt><dd><a href="http://www.w3.org/TR/2012/WD-json-ld-api-20120712/"><ins class="diff-chg">
-http://www.w3.org/TR/2012/WD-json-ld-api-20120712/
-</ins>
-</a>
-</dd>
-<dt>
-Editors:
-</dt>
-<dd rel="bibo:editor" inlist="">
-<span typeof="foaf:Person">
-<del class="diff-old">Manu
-Sporny
-</del>
-<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
-<ins class="diff-chg">Markus
-Lanthaler
-</ins>
-</a>,
-<del class="diff-old">Digital
-Bazaar
-</del>
-<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
-<ins class="diff-chg">Graz
-University
-of
-Technology
-</ins>
-</a>
-</span>
-</dd>
-<dd rel="bibo:editor" inlist="">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
-Gregg
-Kellogg
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
-Kellogg
-Associates
-</a>
-</span>
-</dd>
-<dd rel="bibo:editor" inlist="">
-<span typeof="foaf:Person">
-<del class="diff-old">Dave
-Longley
-</del>
-<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://manu.sporny.org/">
-<ins class="diff-chg">Manu
-Sporny
-</ins>
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
-Digital
-Bazaar
-</a>
-</span>
-</dd>
-<del class="diff-old">Markus
-Lanthaler
-,
-Graz
-University
-of
-Technology
-</del>
-<dt>
-Authors:
-</dt>
-<dd rel="dcterms:contributor">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Dave Longley" href="http://digitalbazaar.com/">
-Dave
-Longley
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
-Digital
-Bazaar
-</a>
-</span>
-</dd>
-<dd rel="dcterms:contributor">
-<span typeof="foaf:Person">
-<del class="diff-old">Manu
-Sporny
-,
-Digital
-Bazaar
-</del>
-<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
-Gregg
-Kellogg
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
-Kellogg
-Associates
-</a>
-</span>
-</dd>
-<dd rel="dcterms:contributor">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
-Markus
-Lanthaler
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
-Graz
-University
-of
-Technology
-</a>
-</span>
-</dd>
-<dd rel="dcterms:contributor">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://digitalbazaar.com/">
-<ins class="diff-new">Manu
-Sporny
-</ins></a>,<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/"><ins class="diff-new">
-Digital
-Bazaar
-</ins></a></span></dd>
-</dl>
-<p>
-This
-document
-is
-also
-available
-in
-this
-non-normative
-format:
-<a rel="alternate" href="diff-20120712.html">
-diff
-to
-previous
-version
-</a>
-</p>
-<p class="copyright">
-<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
-Copyright
-</a>

-<del class="diff-old">2010-2012
-</del>
-<ins class="diff-chg">2010-2013
-</ins>
-<a href="http://www.w3.org/">
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-</a>
-<sup>

-</sup>
-(
-<a href="http://www.csail.mit.edu/">
-<abbr title="Massachusetts Institute of Technology">
-MIT
-</abbr>
-</a>,
-<a href="http://www.ercim.eu/">
-<abbr title="European Research Consortium for Informatics and Mathematics">
-ERCIM
-</abbr>
-</a>,
-<a href="http://www.keio.ac.jp/">
-Keio
-</a>,
-<a href="http://ev.buaa.edu.cn/">
-<ins class="diff-new">Beihang
-</ins>
-</a>
-),
-All
-Rights
-Reserved.
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">
-liability
-</a>,
-<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
-trademark
-</a>
-and
-<a href="http://www.w3.org/Consortium/Legal/copyright-documents">
-document
-use
-</a>
-rules
-apply.
-</p>
-<hr />
-</div>
-<section id="abstract" class="introductory" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:chapter">
-<h2>
-Abstract
-</h2>
-<p>
-<del class="diff-old">JSON
-[
-RFC4627
-]
-has
-proven
-to
-be
-a
-highly
-useful
-object
-serialization
-and
-messaging
-format.
-JSON-LD
-[
-JSON-LD
-]
-harmonizes
-the
-representation
-of
-Linked
-Data
-in
-JSON
-by
-outlining
-a
-common
-JSON
-representation
-format
-for
-expressing
-directed
-graphs;
-mixing
-both
-Linked
-Data
-and
-non-Linked
-Data
-in
-a
-single
-document.
-</del>
-This
-<del class="diff-old">document
-outlines
-</del>
-<ins class="diff-chg">specification
-defines
-</ins>
-an
-Application
-Programming
-Interface
-<ins class="diff-new">(API)
-</ins>
-and
-a
-set
-of
-algorithms
-for
-<del class="diff-old">programmatically
-transforming
-</del>
-<ins class="diff-chg">programmatic
-transformations
-of
-</ins>
-JSON-LD
-<del class="diff-old">documents
-in
-order
-to
-make
-them
-easier
-to
-work
-with
-in
-programming
-environments
-like
-JavaScript,
-Python,
-and
-Ruby.
-</del>
-<ins class="diff-chg">documents.
-Restructuring
-data
-according
-the
-defined
-transformations
-often
-dramatically
-simplifies
-its
-usage.
-</ins>
-</p>
-</section>
-<section id="sotd" class="introductory" typeof="bibo:Chapter" resource="#sotd" rel="bibo:chapter">
-<h2>
-Status
-of
-This
-Document
-</h2>
-<p>
-<em>
-This
-section
-describes
-the
-status
-of
-this
-document
-at
-the
-time
-of
-its
-publication.
-Other
-documents
-may
-supersede
-this
-document.
-A
-list
-of
-current
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-publications
-and
-the
-latest
-revision
-of
-this
-technical
-report
-can
-be
-found
-in
-the
-<a href="http://www.w3.org/TR/">
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-technical
-reports
-index
-</a>
-at
-http://www.w3.org/TR/.
-</em>
-</p>
-<p>
-This
-document
-has
-been
-under
-development
-for
-over
-<del class="diff-old">18
-</del>
-<ins class="diff-chg">25
-</ins>
-months
-in
-the
-JSON
-for
-Linking
-Data
-Community
-Group.
-The
-document
-has
-recently
-been
-transferred
-to
-the
-RDF
-Working
-Group
-for
-review,
-improvement,
-and
-publication
-along
-the
-Recommendation
-track.
-<del class="diff-old">While
-this
-is
-a
-First
-Public
-Working
-Draft
-publication,
-the
-</del>
-<ins class="diff-chg">The
-</ins>
-specification
-has
-undergone
-significant
-development,
-review,
-and
-changes
-during
-the
-course
-of
-the
-last
-<del class="diff-old">18
-months
-and
-is
-more
-mature
-than
-the
-First
-Public
-Working
-Draft
-status
-implies.
-</del>
-<ins class="diff-chg">25
-months.
-</ins>
-There
-are
-<del class="diff-old">currently
-</del>
-<ins class="diff-chg">several
-independent
-</ins>
-<a href="http://json-ld.org/#impl">
-<del class="diff-old">five
-</del>
-interoperable
-implementations
-</a>
-of
-this
-<del class="diff-old">specification.
-There
-is
-</del>
-<ins class="diff-chg">specification
-and
-</ins>
-a
-fairly
-complete
-test
-suite
-<del class="diff-old">and
-a
-live
-JSON-LD
-editor
-that
-is
-capable
-of
-demonstrating
-the
-features
-described
-in
-this
-document.
-While
-development
-on
-implementations,
-the
-test
-suite
-and
-the
-live
-editor
-will
-continue,
-they
-are
-believed
-to
-be
-mature
-enough
-to
-be
-integrated
-into
-a
-non-production
-system
-at
-this
-point
-in
-time
-with
-the
-expectation
-that
-they
-could
-be
-used
-in
-a
-production
-system
-within
-the
-next
-year.
-Issue
-1
-</del>
-<ins class="diff-chg">[
-</ins><cite>
-<a class="bibref" href="#bib-JSON-LD-TESTS">
-<ins class="diff-chg">JSON-LD-TESTS
-</ins></a>
-<del class="diff-old">It
-is
-important
-for
-readers
-to
-understand
-that
-the
-scope
-of
-this
-document
-is
-currently
-under
-debate
-and
-new
-features
-may
-be
-added
-to
-the
-specification.
-Existing
-features
-may
-be
-modified
-heavily
-or
-removed
-entirely
-from
-the
-specification
-upon
-further
-review
-and
-feedback
-from
-the
-broader
-community.
-This
-is
-a
-work
-in
-progress
-and
-publication
-as
-a
-First
-Public
-Working
-Draft
-does
-not
-require
-that
-all
-Working
-Group
-members
-agree
-on
-the
-content
-of
-the
-document.
-</del>
-</cite>
-<ins class="diff-chg">].
-</ins>
-</p>
-<p>
-This
-document
-was
-published
-by
-the
-<a href="http://www.w3.org/2011/rdf-wg/">
-RDF
-Working
-Group
-</a>
-as
-a
-<del class="diff-old">First
-Public
-</del>
-<ins class="diff-chg">Last
-Call
-</ins>
-Working
-Draft.
-This
-document
-is
-intended
-to
-become
-a
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-Recommendation.
-If
-you
-wish
-to
-make
-comments
-regarding
-this
-document,
-please
-send
-them
-to
-<a href="mailto:public-rdf-comments@w3.org">
-public-rdf-comments@w3.org
-</a>
-(
-<a href="mailto:public-rdf-comments-request@w3.org?subject=subscribe">
-subscribe
-</a>,
-<a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">
-archives
-</a>
-).
-<ins class="diff-new">The
-Last
-Call
-period
-ends
-11
-May
-2013.
-</ins>
-All
-<del class="diff-old">feedback
-is
-</del>
-<ins class="diff-chg">comments
-are
-</ins>
-welcome.
-</p>
-<div style="padding: 1em; margin: 1em; border: 1px solid red;">
-<p>
-<ins class="diff-new">The
-Working
-Group
-welcomes
-reports
-of
-implementations,
-sent
-to
-the
-comments
-address.
-If
-we
-gather
-sufficient
-evidence
-of
-interoperable
-implementations,
-the
-group
-may
-request
-to
-skip
-Call
-for
-Implementations
-(Candidate
-Recommendation)
-drafts
-and
-have
-the
-next
-round
-of
-publications
-be
-Proposed
-Recommendations.
-</ins></p></div>
-<p>
-Publication
-as
-a
-<ins class="diff-new">Last
-Call
-</ins>
-Working
-Draft
-does
-not
-imply
-endorsement
-by
-the
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-Membership.
-This
-is
-a
-draft
-document
-and
-may
-be
-updated,
-replaced
-or
-obsoleted
-by
-other
-documents
-at
-any
-time.
-It
-is
-inappropriate
-to
-cite
-this
-document
-as
-other
-than
-work
-in
-progress.
-</p>
-<p>
-This
-<ins class="diff-new">is
-a
-Last
-Call
-Working
-Draft
-and
-thus
-the
-Working
-Group
-has
-determined
-that
-this
-document
-has
-satisfied
-the
-relevant
-technical
-requirements
-and
-is
-sufficiently
-stable
-to
-advance
-through
-the
-Technical
-Recommendation
-process.
-</ins></p><p><ins class="diff-new">
-This
-</ins>
-document
-was
-produced
-by
-a
-group
-operating
-under
-the
-<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">
-5
-February
-2004
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-Patent
-Policy
-</a>.
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-maintains
-a
-<a href="http://www.w3.org/2004/01/pp-impl/46168/status" rel="disclosure">
-public
-list
-of
-any
-patent
-disclosures
-</a>
-made
-in
-connection
-with
-the
-deliverables
-of
-the
-group;
-that
-page
-also
-includes
-instructions
-for
-disclosing
-a
-patent.
-An
-individual
-who
-has
-actual
-knowledge
-of
-a
-patent
-which
-the
-individual
-believes
-contains
-<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">
-Essential
-Claim(s)
-</a>
-must
-disclose
-the
-information
-in
-accordance
-with
-<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">
-section
-6
-of
-the
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-Patent
-Policy
-</a>.
-</p>
-</section>
-<section id="toc">
-<h2 class="introductory">
-Table
-of
-Contents
-</h2>
-<ul class="toc">
-<li class="tocline">
-<a href="#introduction" class="tocxref">
-<span class="secno">
-1.
-</span>
-<del class="diff-old">Preface
-1.1
-Contributing
-</del>
-<ins class="diff-chg">Introduction
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#features" class="tocxref">
-<span class="secno">
-2.
-</span>
-<del class="diff-old">Introduction
-</del>
-<ins class="diff-chg">Features
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#expansion" class="tocxref">
-<span class="secno">
-2.1
-</span>
-Expansion
-</a>
-</li>
-<li class="tocline">
-<a href="#compaction" class="tocxref">
-<span class="secno">
-2.2
-</span>
-Compaction
-</a>
-</li>
-<li class="tocline">
-<a href="#flattening" class="tocxref">
-<span class="secno">
-2.3
-</span>
-<del class="diff-old">Conversion
-to
-and
-from
-RDF
-</del>
-<ins class="diff-chg">Flattening
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#rdf-conversion" class="tocxref">
-<span class="secno">
-2.4
-</span>
-<del class="diff-old">Framing
-and
-Normalization
-</del>
-<ins class="diff-chg">RDF
-Conversion
-</ins>
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#conformance" class="tocxref">
-<span class="secno">
-3.
-</span>
-<del class="diff-old">The
-Application
-Programming
-Interface
-</del>
-<ins class="diff-chg">Conformance
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#general-terminology" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.1
-</del>
-<ins class="diff-chg">4.
-</ins>
-</span>
-General
-Terminology
-</a>
-</li>
-<li class="tocline">
-<del class="diff-old">3.2
-JsonLdProcessor
-</del>
-<a href="#algorithm-terms" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.2.1
-</del>
-<ins class="diff-chg">5.
-</ins>
-</span>
-<del class="diff-old">Methods
-</del>
-<ins class="diff-chg">Algorithm
-Terms
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#context-processing-algorithms" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.3
-</del>
-<ins class="diff-chg">6.
-</ins>
-</span>
-<del class="diff-old">Callbacks
-</del>
-<ins class="diff-chg">Context
-Processing
-Algorithms
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#context-processing-algorithm" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.3.1
-</del>
-<ins class="diff-chg">6.1
-</ins>
-</span>
-<del class="diff-old">JsonLdCallback
-</del>
-<ins class="diff-chg">Context
-Processing
-Algorithm
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#create-term-definition" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.3.1.1
-</del>
-<ins class="diff-chg">6.2
-</ins>
-</span>
-<del class="diff-old">Methods
-</del>
-<ins class="diff-chg">Create
-Term
-Definition
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#iri-expansion" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.3.2
-</del>
-<ins class="diff-chg">6.3
-</ins>
-</span>
-<del class="diff-old">QuadCallback
-</del>
-<del class="diff-old">3.3.2.1
-Methods
-</del>
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr><ins class="diff-chg">
-Expansion
-</ins>
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#expansion-algorithms" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4
-</del>
-<ins class="diff-chg">7.
-</ins>
-</span>
-<del class="diff-old">Data
-Structures
-</del>
-<ins class="diff-chg">Expansion
-Algorithms
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#expansion-algorithm" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4.1
-</del>
-<ins class="diff-chg">7.1
-</ins>
-</span>
-<del class="diff-old">URL
-</del>
-<ins class="diff-chg">Expansion
-Algorithm
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#value-expansion" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4.2
-</del>
-<ins class="diff-chg">7.2
-</ins>
-</span>
-<del class="diff-old">JsonLdOptions
-</del>
-<ins class="diff-chg">Value
-Expansion
-</ins>
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#compaction-algorithms" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4.3
-</del>
-<ins class="diff-chg">8.
-</ins>
-</span>
-<del class="diff-old">Quad
-</del>
-<ins class="diff-chg">Compaction
-Algorithms
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#compaction-algorithm" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4.3.1
-</del>
-<ins class="diff-chg">8.1
-</ins>
-</span>
-<del class="diff-old">Attributes
-</del>
-<ins class="diff-chg">Compaction
-Algorithm
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#inverse-context-creation" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4.4
-</del>
-<ins class="diff-chg">8.2
-</ins>
-</span>
-<del class="diff-old">Node
-</del>
-<ins class="diff-chg">Inverse
-Context
-Creation
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#iri-compaction" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4.5
-</del>
-<ins class="diff-chg">8.3
-</ins>
-</span>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">3.4.5.1
-Attributes
-</del>
-<ins class="diff-chg">Compaction
-</ins>
-</a>
-</li>
-<del class="diff-old">3.4.6
-Blank
-Node
-</del>
-<li class="tocline">
-<a href="#term-selection" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4.6.1
-</del>
-<ins class="diff-chg">8.4
-</ins>
-</span>
-<del class="diff-old">Attributes
-</del>
-<ins class="diff-chg">Term
-Selection
-</ins>
-</a>
-</li>
-<li class="tocline">
-<del class="diff-old">3.4.7
-Literal
-</del>
-<a href="#value-compaction" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4.7.1
-</del>
-<ins class="diff-chg">8.5
-</ins>
-</span>
-<del class="diff-old">Attributes
-</del>
-<ins class="diff-chg">Value
-Compaction
-</ins>
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#flattening-algorithms" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.
-</del>
-<ins class="diff-chg">9.
-</ins>
-</span>
-<ins class="diff-new">Flattening
-</ins>
-Algorithms
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#flattening-algorithm" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.1
-</del>
-<ins class="diff-chg">9.1
-</ins>
-</span>
-<ins class="diff-new">Flattening
-</ins>
-Algorithm
-<del class="diff-old">Terms
-</del>
-</a>
-</li>
-<li class="tocline">
-<a href="#node-map-generation" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.2
-</del>
-<ins class="diff-chg">9.2
-</ins>
-</span>
-<del class="diff-old">Context
-Processing
-</del>
-<ins class="diff-chg">Node
-Map
-Generation
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#generate-blank-node-identifier" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.3
-</del>
-<ins class="diff-chg">9.3
-</ins>
-</span>
-<del class="diff-old">IRI
-Expansion
-</del>
-<ins class="diff-chg">Generate
-Blank
-Node
-Identifier
-</ins>
-</a>
-</li>
-<del class="diff-old">4.4
-IRI
-Compaction
-</del>
-</ul>
-</li>
-<li class="tocline">
-<a href="#rdf-conversion-algorithms" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.4.1
-</del>
-<ins class="diff-chg">10.
-</ins>
-</span>
-<del class="diff-old">IRI
-Compaction
-Algorithm
-</del>
-<ins class="diff-chg">RDF
-Conversion
-Algorithms
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#convert-to-rdf-algorithm" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.4.2
-</del>
-<ins class="diff-chg">10.1
-</ins>
-</span>
-<del class="diff-old">Term
-Rank
-</del>
-<ins class="diff-chg">Convert
-to
-RDF
-</ins>
-Algorithm
-</a>
-</li>
-<li class="tocline">
-<a href="#object-to-rdf-conversion" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.5
-</del>
-<ins class="diff-chg">10.2
-</ins>
-</span>
-<del class="diff-old">Value
-Expansion
-</del>
-<ins class="diff-chg">Object
-to
-RDF
-Conversion
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#list-to-rdf-conversion" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.6
-</del>
-<ins class="diff-chg">10.3
-</ins>
-</span>
-<del class="diff-old">Value
-Compaction
-</del>
-<ins class="diff-chg">List
-to
-RDF
-Conversion
-</ins>
-</a>
-</li>
-<li class="tocline">
-<del class="diff-old">4.7
-Expansion
-</del>
-<a href="#convert-from-rdf-algorithm" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.7.1
-</del>
-<ins class="diff-chg">10.4
-</ins>
-</span>
-<del class="diff-old">Expansion
-</del>
-<ins class="diff-chg">Convert
-from
-RDF
-</ins>
-Algorithm
-</a>
-</li>
-<li class="tocline">
-<a href="#rdf-to-object-conversion" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.8
-</del>
-<ins class="diff-chg">10.5
-</ins>
-</span>
-<del class="diff-old">Compaction
-</del>
-<ins class="diff-chg">RDF
-to
-Object
-Conversion
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#data-round-tripping" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.8.1
-</del>
-<ins class="diff-chg">10.6
-</ins>
-</span>
-<del class="diff-old">Compaction
-Algorithm
-</del>
-<ins class="diff-chg">Data
-Round
-Tripping
-</ins>
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#the-application-programming-interface" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.9
-</del>
-<ins class="diff-chg">11.
-</ins>
-</span>
-<del class="diff-old">RDF
-Conversion
-</del>
-<ins class="diff-chg">The
-Application
-Programming
-Interface
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<del class="diff-old">4.9.1
-Overview
-4.9.2
-Parsing
-Examples
-</del>
-<a href="#the-jsonldprocessor-interface" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.9.3
-</del>
-<ins class="diff-chg">11.1
-</ins>
-</span>
-<del class="diff-old">Convert
-to
-RDF
-Algorithm
-</del>
-<ins class="diff-chg">The
-</ins><span class="formerLink">
-<code>
-<ins class="diff-chg">JsonLdProcessor
-</ins></code>
-<del class="diff-old">4.9.4
-</del>
-</span>
-<del class="diff-old">List
-Conversion
-</del>
-<ins class="diff-chg">Interface
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#callbacks" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.9.5
-</del>
-<ins class="diff-chg">11.2
-</ins>
-</span>
-<del class="diff-old">Convert
-from
-RDF
-Algorithm
-</del>
-<ins class="diff-chg">Callbacks
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#data-structures" class="tocxref">
-<span class="secno">
-<del class="diff-old">5.
-</del>
-<ins class="diff-chg">11.3
-</ins>
-</span>
-Data
-<del class="diff-old">Round
-Tripping
-</del>
-<ins class="diff-chg">Structures
-</ins>
-</a>
-</li>
-<del class="diff-old">A.
-Initial
-Context
-</del>
-</ul>
-</li>
-<li class="tocline">
-<a href="#acknowledgements" class="tocxref">
-<span class="secno">
-<del class="diff-old">B.
-</del>
-<ins class="diff-chg">A.
-</ins>
-</span>
-Acknowledgements
-</a>
-</li>
-<li class="tocline">
-<a href="#references" class="tocxref">
-<span class="secno">
-<del class="diff-old">C.
-</del>
-<ins class="diff-chg">B.
-</ins>
-</span>
-References
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#normative-references" class="tocxref">
-<span class="secno">
-<del class="diff-old">C.1
-</del>
-<ins class="diff-chg">B.1
-</ins>
-</span>
-Normative
-references
-</a>
-</li>
-<li class="tocline">
-<a href="#informative-references" class="tocxref">
-<span class="secno">
-<del class="diff-old">C.2
-</del>
-<ins class="diff-chg">B.2
-</ins>
-</span>
-Informative
-references
-</a>
-</li>
-</ul>
-</li>
-</ul>
-</section>
-<section class="informative" id="introduction">
-<h2>
-<span class="secno">
-1.
-</span>
-<del class="diff-old">Preface
-</del>
-<ins class="diff-chg">Introduction
-</ins>
-</h2>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-This
-document
-is
-a
-detailed
-specification
-for
-an
-Application
-Programming
-Interface
-for
-the
-JSON-LD
-<del class="diff-old">Syntax.
-</del>
-<ins class="diff-chg">syntax.
-</ins>
-The
-document
-is
-primarily
-intended
-for
-the
-following
-audiences:
-</p>
-<ul>
-<li>
-<ins class="diff-new">Developers
-who
-want
-an
-overview
-of
-the
-JSON-LD
-API.
-</ins></li><li>
-Web
-authors
-and
-developers
-<del class="diff-old">that
-</del>
-<ins class="diff-chg">who
-</ins>
-want
-a
-very
-detailed
-view
-of
-how
-a
-<a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">
-<ins class="diff-new">JSON-LD
-Processor
-</ins></a><ins class="diff-new">
-or
-a
-</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">
-JSON-LD
-<del class="diff-old">processor
-and
-the
-</del>
-API
-<ins class="diff-new">Implementation
-</ins></a>
-operates.
-</li>
-<li>
-Software
-developers
-<del class="diff-old">that
-</del>
-<ins class="diff-chg">who
-</ins>
-want
-to
-implement
-<del class="diff-old">processors
-and
-APIs
-for
-JSON-LD.
-</del>
-<ins class="diff-chg">the
-algorithms
-to
-transform
-JSON-LD
-documents.
-</ins>
-</li>
-</ul>
-<p>
-To
-understand
-the
-basics
-in
-this
-specification
-you
-must
-first
-be
-familiar
-with
-JSON,
-which
-is
-detailed
-in
-[
-<cite>
-<a class="bibref" href="#bib-RFC4627">
-RFC4627
-</a>
-</cite>
-].
-You
-must
-also
-understand
-the
-JSON-LD
-<del class="diff-old">Syntax
-</del>
-<ins class="diff-chg">syntax
-defined
-in
-</ins>
-[
-<cite>
-<a class="bibref" href="#bib-JSON-LD">
-JSON-LD
-</a>
-</cite>
-],
-which
-is
-the
-base
-syntax
-used
-by
-all
-of
-the
-algorithms
-in
-this
-document.
-To
-understand
-the
-API
-and
-how
-it
-is
-intended
-to
-operate
-in
-a
-programming
-environment,
-it
-is
-useful
-to
-have
-working
-knowledge
-of
-the
-JavaScript
-programming
-language
-[
-<cite>
-<a class="bibref" href="#bib-ECMA-262">
-ECMA-262
-</a>
-</cite>
-]
-and
-WebIDL
-[
-<cite>
-<a class="bibref" href="#bib-WEBIDL">
-WEBIDL
-</a>
-</cite>
-].
-To
-understand
-how
-JSON-LD
-maps
-to
-RDF,
-it
-is
-helpful
-to
-be
-familiar
-with
-the
-basic
-RDF
-concepts
-[
-<cite>
-<del class="diff-old">RDF-CONCEPTS
-</del>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-chg">RDF11-CONCEPTS
-</ins>
-</a>
-</cite>
-].
-</p>
-</section>
-<section class="informative" id="features">
-<h2>
-<span class="secno">
-<del class="diff-old">1.1
-</del>
-<ins class="diff-chg">2.
-</ins>
-</span>
-<del class="diff-old">Contributing
-There
-are
-a
-number
-of
-ways
-that
-one
-may
-participate
-in
-the
-development
-of
-this
-specification:
-If
-you
-want
-to
-make
-sure
-that
-your
-feedback
-is
-formally
-addressed
-by
-the
-RDF
-Working
-Group,
-you
-should
-send
-it
-to
-public-rdf-comments:
-public-rdf-comments@w3.org
-Ad-hoc
-technical
-discussion
-primarily
-occurs
-on
-the
-public
-community
-mailing
-list:
-public-linked-json@w3.org
-</del>
-<ins class="diff-chg">Features
-</ins></h2>
-<del class="diff-old">Public
-JSON-LD
-Community
-Group
-teleconferences
-are
-held
-on
-Tuesdays
-at
-1500UTC
-every
-week.
-RDF
-Working
-Group
-teleconferences
-are
-held
-on
-Wednesdays
-at
-1500UTC
-every
-week.
-Participation
-is
-limited
-to
-RDF
-Working
-Group
-members.
-Specification
-bugs
-and
-issues
-should
-be
-reported
-in
-the
-issue
-tracker
-if
-you
-do
-not
-want
-to
-send
-an
-e-mail
-to
-the
-public-rdf-comments
-mailing
-list.
-</del>
-<p>
-<del class="diff-old">Source
-code
-for
-the
-specification
-can
-be
-found
-on
-Github.
-The
-#json-ld
-IRC
-channel
-</del>
-<em>
-<ins class="diff-chg">This
-section
-</ins>
-is
-<del class="diff-old">available
-for
-real-time
-discussion
-on
-irc.freenode.net.
-</del>
-<ins class="diff-chg">non-normative.
-</ins></em>
-<del class="diff-old">2.
-Introduction
-</del>
-</p>
-<p>
-The
-JSON-LD
-Syntax
-specification
-[
-<cite>
-<a class="bibref" href="#bib-JSON-LD">
-JSON-LD
-</a>
-</cite>
-]
-<del class="diff-old">outlines
-</del>
-<ins class="diff-chg">defines
-</ins>
-a
-<del class="diff-old">language
-that
-may
-be
-used
-</del>
-<ins class="diff-chg">syntax
-</ins>
-to
-express
-Linked
-Data
-in
-JSON.
-<del class="diff-old">Often,
-</del>
-<ins class="diff-chg">Because
-there
-is
-more
-than
-one
-way
-to
-express
-Linked
-Data
-using
-this
-syntax,
-</ins>
-it
-is
-<ins class="diff-new">often
-</ins>
-useful
-to
-be
-able
-to
-transform
-JSON-LD
-documents
-so
-that
-they
-may
-be
-<ins class="diff-new">more
-</ins>
-easily
-<del class="diff-old">processed
-</del>
-<ins class="diff-chg">consumed
-by
-specific
-applications.
-</ins></p><p><ins class="diff-chg">
-JSON-LD
-uses
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-contexts
-</ins></a><ins class="diff-chg">
-to
-allow
-Linked
-Data
-to
-be
-expressed
-</ins>
-in
-a
-<del class="diff-old">programming
-environment
-like
-JavaScript,
-Python
-</del>
-<ins class="diff-chg">way
-that
-is
-specifically
-tailored
-to
-a
-particular
-person
-</ins>
-or
-<del class="diff-old">Ruby.
-</del>
-<ins class="diff-chg">application.
-By
-providing
-a
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>,<ins class="diff-chg">
-JSON
-data
-can
-be
-expressed
-in
-a
-way
-that
-is
-a
-natural
-fit
-for
-a
-particular
-person
-or
-application
-whilst
-also
-indicating
-how
-the
-data
-should
-be
-understood
-at
-a
-global
-scale.
-In
-order
-for
-people
-or
-applications
-to
-share
-data
-that
-was
-created
-using
-a
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-that
-is
-different
-from
-their
-own,
-a
-JSON-LD
-processor
-must
-be
-able
-to
-transform
-a
-document
-from
-one
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-to
-another.
-Instead
-of
-requiring
-JSON-LD
-processors
-to
-write
-specific
-code
-for
-every
-imaginable
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-switching
-scenario,
-it
-is
-much
-easier
-to
-specify
-a
-single
-algorithm
-that
-can
-remove
-any
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>.<ins class="diff-chg">
-Similarly,
-another
-algorithm
-can
-be
-specified
-to
-subsequently
-apply
-any
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>.<ins class="diff-chg">
-These
-two
-algorithms
-represent
-the
-most
-basic
-transformations
-of
-JSON-LD
-documents.
-They
-are
-referred
-to
-as
-</ins><a class="tref internalDFN" title="expansion" href="#dfn-expansion"><ins class="diff-chg">
-expansion
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
-compaction
-</ins></a>,<ins class="diff-chg">
-respectively.
-</ins>
-</p>
-<p>
-There
-are
-<del class="diff-old">three
-</del>
-<ins class="diff-chg">four
-</ins>
-major
-types
-of
-transformation
-that
-are
-discussed
-in
-this
-<del class="diff-old">document;
-compaction,
-</del>
-<ins class="diff-chg">document:
-</ins>
-expansion,
-<ins class="diff-new">compaction,
-flattening,
-</ins>
-and
-RDF
-conversion.
-</p>
-<section class="informative" id="expansion">
-<h3>
-<span class="secno">
-2.1
-</span>
-Expansion
-</h3>
-<p>
-<del class="diff-old">Software
-algorithms
-are
-easiest
-to
-write
-when
-the
-data
-</del>
-<em>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-The
-algorithm
-</ins>
-that
-<del class="diff-old">they
-are
-processing
-have
-</del>
-<ins class="diff-chg">removes
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-is
-called
-</ins><dfn title="expansion" id="dfn-expansion"><ins class="diff-chg">
-expansion
-</ins></dfn>.<ins class="diff-chg">
-Before
-performing
-any
-other
-transformations
-on
-</ins>
-a
-<del class="diff-old">regular
-form.
-Since
-information
-can
-be
-represented
-by
-</del>
-JSON-LD
-<del class="diff-old">in
-a
-variety
-of
-different
-ways,
-transforming
-all
-</del>
-<ins class="diff-chg">document,
-it
-is
-easiest
-to
-remove
-any
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-from
-it
-and
-to
-make
-data
-structures
-more
-regular.
-</ins></p><p><ins class="diff-chg">
-To
-get
-an
-idea
-</ins>
-of
-<del class="diff-old">these
-methods
-into
-a
-uniform
-structure
-allows
-</del>
-<ins class="diff-chg">how
-context
-and
-data
-structuring
-affects
-</ins>
-the
-<del class="diff-old">developer
-to
-simplify
-their
-processing
-code.
-For
-example,
-note
-</del>
-<ins class="diff-chg">same
-data,
-here
-is
-an
-example
-of
-JSON-LD
-</ins>
-that
-<del class="diff-old">the
-following
-input
-</del>
-uses
-only
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">terms
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-and
-is
-fairly
-compact:
-</p>
-<del class="diff-old">  var input1 = {
-  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-</del>
-    <div class="example"><div class="example-title"><span>Example 1</span>: Sample JSON-LD document</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;
-</ins>
-}
-</pre>
-</div>
-<p>
-The
-next
-input
-example
-uses
-one
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-to
-express
-a
-<del class="diff-old">property,
-</del>
-<ins class="diff-chg">property
-and
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-to
-encapsulate
-another,
-</ins>
-but
-leaves
-the
-rest
-of
-the
-information
-untouched.
-</p>
-<del class="diff-old">  var input2 = {
-  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;
-  &quot;&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-</del>
-    <div class="example"><div class="example-title"><span>Example 2</span>: Sample JSON-LD document using an IRI instead of a term to express a property</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;: {
-</ins>    <span class="diff">&quot;website&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;</span><ins class="diff-chg">
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;<span class="diff">http://xmlns.com/foaf/0.1/name</span>&quot;: &quot;Markus Lanthaler&quot;,
-</ins>  <span class="diff">&quot;website&quot;</span>: <span class="diff">{ &quot;@id&quot;:</span> &quot;http://www.markus-lanthaler.com/&quot; <span class="diff">}</span>
-}
-</pre>
-</div>
-<p>
-<del class="diff-old">While
-</del>
-<ins class="diff-chg">Note
-that
-</ins>
-both
-inputs
-are
-valid
-<del class="diff-old">JSON-LD,
-writing
-a
-program
-to
-handle
-every
-permutation
-of
-possible
-inputs
-can
-be
-difficult,
-especially
-when
-</del>
-<ins class="diff-chg">JSON-LD
-and
-both
-represent
-</ins>
-the
-<del class="diff-old">incoming
-</del>
-<ins class="diff-chg">same
-information.
-The
-difference
-is
-in
-their
-</ins><a class="tref internalDFN" title="context" href="#dfn-context">
-context
-<del class="diff-old">could
-change
-as
-well.
-To
-</del>
-</a>
-<ins class="diff-chg">information
-and
-in
-the
-data
-structures
-used.
-A
-JSON-LD
-processor
-can
-remove
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-and
-</ins>
-ensure
-that
-the
-data
-<del class="diff-old">can
-be
-given
-a
-</del>
-<ins class="diff-chg">is
-</ins>
-more
-<del class="diff-old">uniform
-structure,
-JSON-LD
-introduces
-the
-notion
-of
-expansion.
-</del>
-<ins class="diff-chg">regular
-by
-employing
-</ins><a class="tref internalDFN" title="expansion" href="#dfn-expansion"><ins class="diff-chg">
-expansion
-</ins></a>.</p><p><a class="tref internalDFN" title="expansion" href="#dfn-expansion">
-Expansion
-<del class="diff-old">performs
-</del>
-</a>
-<ins class="diff-chg">has
-</ins>
-two
-important
-<del class="diff-old">operations.
-The
-first
-is
-to
-expand
-</del>
-<ins class="diff-chg">goals:
-removing
-any
-contextual
-information
-from
-the
-document,
-and
-ensuring
-</ins>
-all
-values
-<del class="diff-old">that
-</del>
-are
-<del class="diff-old">IRI
-s
-to
-their
-fully
-expanded
-</del>
-<ins class="diff-chg">represented
-in
-a
-regular
-</ins>
-form.
-<del class="diff-old">The
-second
-is
-</del>
-<ins class="diff-chg">These
-goals
-are
-accomplished
-by
-expanding
-all
-properties
-</ins>
-to
-<del class="diff-old">express
-</del>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-IRIs
-</ins></a><ins class="diff-chg">
-and
-by
-expressing
-</ins>
-all
-values
-in
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">arrays
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">
-expanded
-form
-<del class="diff-old">.
-To
-transform
-both
-inputs
-above
-to
-</del>
-</a>.
-<a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">
-<ins class="diff-chg">Expanded
-form
-</ins></a><ins class="diff-chg">
-is
-</ins>
-the
-<del class="diff-old">same
-representation,
-</del>
-<ins class="diff-chg">most
-verbose
-and
-regular
-way
-of
-expressing
-of
-values
-in
-JSON-LD;
-all
-contextual
-information
-from
-</ins>
-the
-<del class="diff-old">developer
-could
-do
-</del>
-<ins class="diff-chg">document
-is
-instead
-stored
-locally
-with
-each
-value.
-Running
-</ins>
-the
-<del class="diff-old">following:
-  function expansionCallback(output) {
-   console.log(output);
-}
-</del>
-<a href="#expansion-algorithm">
-<ins class="diff-chg">Expansion
-algorithm
-</ins></a><ins class="diff-chg">
-(
-</ins><code class="idlMemberName">
-<del class="diff-old">// the second parameter is 'null' because the developer does not wish to
-// inject another context value
-jsonld.expand(input1, null, expansionCallback);
-jsonld.expand(input2,
-null,
-expansionCallback);
-</del>
-<a href="#widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">
-<ins class="diff-chg">expand
-</ins></a>
-<del class="diff-old">The
-output
-for
-both
-calls
-</del>
-</code>
-<ins class="diff-chg">operation)
-against
-the
-</ins>
-above
-<del class="diff-old">will
-be:
-</del>
-<ins class="diff-chg">examples
-results
-in
-the
-following
-output:
-</ins>
-</p>
-<del class="diff-old">  [{
-  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{
-    &quot;@value&quot;: &quot;Manu Sporny&quot;
-  }],
-  &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [{
-    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
-  }]
-}]
-</del>
-    <div class="example"><div class="example-title"><span>Example 3</span>: Expanded sample document</div><pre class="example">[
-<ins class="diff-chg">  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
-    ]
-  }
-]
-</ins>
-</pre>
-</div>
-<p>
-Note
-that
-in
-the
-<del class="diff-old">example
-above;
-</del>
-<ins class="diff-chg">output
-above
-</ins>
-all
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-definitions
-have
-been
-removed,
-all
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">terms
-</ins>
-</a>
-and
-<del class="diff-old">prefixes
-</del>
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-<ins class="diff-chg">compact
-IRIs
-</ins></a>
-have
-been
-expanded
-to
-<del class="diff-old">full
-IRIs,
-</del>
-<ins class="diff-chg">absolute
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>,
-and
-all
-<del class="diff-old">literal
-</del>
-<a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">
-<ins class="diff-chg">JSON-LD
-values
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-are
-expressed
-in
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">arrays
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">
-expanded
-form
-</a>.
-While
-the
-output
-is
-more
-<ins class="diff-new">verbose
-and
-</ins>
-difficult
-for
-a
-human
-to
-read,
-it
-<del class="diff-old">is
-easier
-for
-</del>
-<ins class="diff-chg">establishes
-</ins>
-a
-<del class="diff-old">software
-program
-to
-process
-</del>
-<ins class="diff-chg">baseline
-that
-makes
-JSON-LD
-processing
-easier
-</ins>
-because
-of
-its
-very
-regular
-structure.
-</p>
-</section>
-<section class="informative" id="compaction">
-<h3>
-<span class="secno">
-2.2
-</span>
-Compaction
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-While
-<a class="tref internalDFN" title="expansion" href="#dfn-expansion">
-expansion
-<del class="diff-old">expands
-</del>
-</a>
-<ins class="diff-chg">removes
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-from
-</ins>
-a
-given
-<del class="diff-old">input
-as
-much
-as
-possible,
-compaction
-performs
-</del>
-<ins class="diff-chg">input,
-</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
-compaction's
-</ins></a><ins class="diff-chg">
-primary
-function
-is
-to
-perform
-</ins>
-the
-opposite
-<del class="diff-old">operation
--
-expressing
-</del>
-<ins class="diff-chg">operation:
-to
-express
-</ins>
-a
-given
-input
-<del class="diff-old">as
-succinctly
-as
-possible.
-While
-expansion
-is
-meant
-</del>
-<ins class="diff-chg">according
-</ins>
-to
-<del class="diff-old">produce
-something
-</del>
-<ins class="diff-chg">a
-particular
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>.<dfn title="compaction" id="dfn-compaction"><ins class="diff-chg">
-Compaction
-</ins></dfn><ins class="diff-chg">
-applies
-a
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>
-that
-<ins class="diff-new">specifically
-tailors
-the
-way
-information
-</ins>
-is
-<del class="diff-old">easy
-to
-process
-by
-software
-programs,
-compaction
-is
-meant
-to
-produce
-something
-</del>
-<ins class="diff-chg">expressed
-for
-a
-particular
-person
-or
-application.
-This
-simplifies
-applications
-</ins>
-that
-<del class="diff-old">is
-easy
-</del>
-<ins class="diff-chg">consume
-JSON
-or
-JSON-LD
-by
-expressing
-the
-data
-in
-application-specific
-terms,
-and
-it
-makes
-the
-data
-easier
-</ins>
-to
-<del class="diff-old">ready
-</del>
-<ins class="diff-chg">read
-</ins>
-by
-<del class="diff-old">software
-developers.
-</del>
-<ins class="diff-chg">humans.
-</ins></p><p><a class="tref internalDFN" title="compaction" href="#dfn-compaction">
-Compaction
-</a>
-uses
-a
-developer-supplied
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-to
-<del class="diff-old">compresses
-all
-</del>
-<ins class="diff-chg">shorten
-</ins>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<del class="diff-old">IRI
-</del>
-<ins class="diff-chg">IRIs
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-to
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">terms
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-or
-<del class="diff-old">prefix
-</del>
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-<ins class="diff-chg">compact
-IRIs
-</ins>
-</a>
-<del class="diff-old">es,
-</del>
-and
-<del class="diff-old">compacts
-all
-literal
-</del>
-<a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">
-<ins class="diff-chg">JSON-LD
-values
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-expressed
-in
-<a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">
-expanded
-form
-</a>
-<ins class="diff-new">to
-simple
-values
-such
-</ins>
-as
-<del class="diff-old">much
-as
-possible.
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">strings
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-numbers
-</ins></a>.
-</p>
-<p>
-<del class="diff-old">The
-</del>
-<ins class="diff-chg">For
-example,
-assume
-the
-</ins>
-following
-<del class="diff-old">example
-expresses
-</del>
-<ins class="diff-chg">expanded
-JSON-LD
-</ins>
-input
-<del class="diff-old">that
-has
-already
-been
-fully
-expanded:
-</del>
-<ins class="diff-chg">document:
-</ins>
-</p>
-<del class="diff-old">  var expandedInput = [{
-  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{
-    &quot;@value&quot;: &quot;Manu Sporny&quot;
-  }],
-  &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [{
-    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
-  }]
-}]
-</del>
-    <div class="example"><div class="example-title"><span>Example 4</span>: Expanded sample document</div><pre class="example">[
-<ins class="diff-chg">  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
-    ]
-  }
-]
-</ins>
-</pre>
-</div>
-<p>
-<del class="diff-old">A
-developer
-that
-wants
-to
-transform
-the
-data
-above
-into
-a
-more
-human-readable
-form,
-could
-do
-</del>
-<ins class="diff-chg">Additionally,
-assume
-</ins>
-the
-following
-<del class="diff-old">using
-the
-</del>
-<ins class="diff-chg">developer-supplied
-</ins>
-JSON-LD
-<del class="diff-old">API:
-</del>
-<a class="tref internalDFN" title="context" href="#dfn-context">
-<ins class="diff-chg">context
-</ins></a>:
-</p>
-<del class="diff-old">  function compactionCallback(output) {
-   console.log(output);
-</del>
-    <div class="example"><div class="example-title"><span>Example 5</span>: JSON-LD context</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  }
-</ins>
-}
-<del class="diff-old">jsonld.compact(expandedInput,
-&quot;http://json-ld.org/contexts/person.jsonld&quot;,
-compactionCallback);
-</del>
-</pre>
-</div>
-<p>
-<del class="diff-old">The
-following
-would
-be
-</del>
-<ins class="diff-chg">Running
-the
-</ins><a href="#compaction-algorithm"><ins class="diff-chg">
-Compaction
-Algorithm
-</ins></a><ins class="diff-chg">
-(
-</ins><code class="idlMemberName"><a href="#widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><ins class="diff-chg">
-compact
-</ins></a></code><ins class="diff-chg">
-operation)
-given
-</ins>
-the
-<ins class="diff-new">context
-supplied
-above
-against
-the
-JSON-LD
-input
-document
-provided
-above
-would
-</ins>
-result
-<del class="diff-old">of
-</del>
-<ins class="diff-chg">in
-</ins>
-the
-<del class="diff-old">call
-above:
-</del>
-<ins class="diff-chg">following
-output:
-</ins>
-</p>
-<del class="diff-old">  {
-  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-</del>
-    <div class="example"><div class="example-title"><span>Example 6</span>: Compacted sample document</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;
-</ins>
-}
-</pre>
-</div>
-<p>
-Note
-that
-all
-<del class="diff-old">of
-the
-term
-</del>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<ins class="diff-chg">IRIs
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-have
-been
-<del class="diff-old">compressed
-and
-</del>
-<ins class="diff-chg">compacted
-to
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a><ins class="diff-chg">
-as
-specified
-in
-</ins>
-the
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>,
-<ins class="diff-chg">which
-</ins>
-has
-been
-injected
-into
-the
-output.
-While
-compacted
-output
-is
-<del class="diff-old">most
-</del>
-useful
-to
-humans,
-it
-<del class="diff-old">can
-</del>
-<ins class="diff-chg">is
-</ins>
-also
-<del class="diff-old">be
-carefully
-</del>
-used
-to
-generate
-structures
-that
-are
-easy
-to
-<del class="diff-old">use
-for
-</del>
-<ins class="diff-chg">program
-against.
-Compaction
-enables
-</ins>
-developers
-to
-<del class="diff-old">program
-against
-as
-well.
-</del>
-<ins class="diff-chg">map
-any
-expanded
-document
-into
-an
-application-specific
-compacted
-document.
-While
-the
-context
-provided
-above
-mapped
-</ins><code><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/name
-</ins></code><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-name
-</ins></code>,<ins class="diff-chg">
-it
-could
-also
-have
-been
-mapped
-to
-any
-other
-term
-provided
-by
-the
-developer.
-</ins>
-</p>
-</section>
-<section class="informative" id="flattening">
-<h3>
-<span class="secno">
-2.3
-</span>
-<del class="diff-old">Conversion
-</del>
-<ins class="diff-chg">Flattening
-</ins></h3><p><em><ins class="diff-chg">
-This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-While
-expansion
-ensures
-that
-a
-document
-is
-in
-a
-uniform
-structure,
-flattening
-goes
-a
-step
-further
-</ins>
-to
-<ins class="diff-new">ensure
-that
-the
-shape
-of
-the
-data
-is
-deterministic.
-In
-expanded
-documents,
-the
-properties
-of
-a
-single
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
-node
-</ins></a><ins class="diff-new">
-may
-be
-spread
-across
-a
-number
-of
-different
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-objects
-</ins></a>.<ins class="diff-new">
-By
-flattening
-a
-document,
-all
-properties
-of
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
-node
-</ins></a><ins class="diff-new">
-are
-collected
-in
-a
-single
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a>
-and
-<del class="diff-old">from
-</del>
-<ins class="diff-chg">all
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a><ins class="diff-chg">
-are
-labeled
-with
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>.<ins class="diff-chg">
-This
-may
-drastically
-simplify
-the
-code
-required
-to
-process
-JSON-LD
-data
-in
-certain
-applications.
-</ins></p><p><ins class="diff-chg">
-For
-example,
-assume
-the
-following
-JSON-LD
-input
-document:
-</ins></p>    <div class="example"><div class="example-title"><span>Example 7</span>: Sample JSON-LD document</div><pre class="example">{<ins class="diff-chg">
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;knows&quot;: [
-    {
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    }
-  ]
-}
-</ins></pre></div><p><ins class="diff-chg">
-Running
-the
-</ins><a href="#flattening-algorithm"><ins class="diff-chg">
-Flattening
-algorithm
-</ins></a><ins class="diff-chg">
-(
-</ins><code class="idlMemberName"><a href="#widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><ins class="diff-chg">
-flatten
-</ins></a></code><ins class="diff-chg">
-operation)
-with
-a
-context
-set
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-to
-prevent
-compaction
-returns
-the
-following
-document:
-</ins></p>    <div class="example"><div class="example-title"><span>Example 8</span>: Flattened sample document in expanded form</div><pre class="example">[<ins class="diff-chg">
-  {
-    &quot;@id&quot;: &quot;_:t0&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Dave Longley&quot; }
-    ]
-  },
-  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/knows&quot;: [
-      { &quot;@id&quot;: &quot;_:t0&quot; }
-    ]
-  }
-]
-</ins></pre></div><p><ins class="diff-chg">
-Note
-how
-in
-the
-output
-above
-all
-properties
-of
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a><ins class="diff-chg">
-are
-collected
-in
-a
-single
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-and
-how
-the
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-node
-</ins></a><ins class="diff-chg">
-representing
-&quot;Dave
-Longley&quot;
-has
-been
-assigned
-the
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a><code><ins class="diff-chg">
-_:t0
-</ins></code>.</p><p><ins class="diff-chg">
-To
-make
-it
-easier
-for
-humans
-to
-read
-or
-for
-certain
-applications
-to
-process
-it,
-a
-flattened
-document
-can
-be
-compacted
-by
-passing
-a
-context.
-Using
-the
-same
-context
-as
-the
-input
-document,
-the
-flattened
-and
-compacted
-document
-looks
-as
-follows:
-</ins></p>    <div class="example"><div class="example-title"><span>Example 9</span>: Flattened and compacted sample document</div><pre class="example">{<ins class="diff-chg">
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@graph&quot;: [
-    {
-      &quot;@id&quot;: &quot;_:t0&quot;,
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-      &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-      &quot;knows&quot;: { &quot;@id&quot;: &quot;_:t0&quot; }
-    }
-  ]
-}
-</ins></pre></div><p><ins class="diff-chg">
-Please
-note
-that
-the
-result
-of
-flattening
-and
-compacting
-a
-document
-is
-always
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-which
-contains
-an
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-member
-that
-represents
-the
-</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
-default
-graph
-</ins></a>.</p></section><section class="informative" id="rdf-conversion"><h3><span class="secno"><ins class="diff-chg">
-2.4
-</ins></span>
-RDF
-<ins class="diff-new">Conversion
-</ins>
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-JSON-LD
-can
-be
-used
-to
-<del class="diff-old">losslessly
-express
-the
-RDF
-</del>
-<ins class="diff-chg">serialize
-</ins>
-data
-<del class="diff-old">model
-</del>
-<ins class="diff-chg">expressed
-in
-RDF
-</ins>
-as
-described
-in
-<del class="diff-old">the
-RDF
-Concepts
-document
-</del>
-[
-<cite>
-<del class="diff-old">RDF-CONCEPTS
-</del>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-chg">RDF11-CONCEPTS
-</ins>
-</a>
-</cite>
-].
-This
-ensures
-that
-data
-can
-be
-round-tripped
-<ins class="diff-new">to
-and
-</ins>
-from
-any
-RDF
-<del class="diff-old">syntax,
-like
-N-Triples
-or
-TURTLE,
-</del>
-<ins class="diff-chg">syntax
-</ins>
-without
-any
-loss
-in
-<del class="diff-old">the
-fidelity
-of
-the
-data.
-Assume
-</del>
-<ins class="diff-chg">fidelity.
-</ins></p><p><ins class="diff-chg">
-For
-example,
-assume
-</ins>
-the
-following
-RDF
-input
-<ins class="diff-new">serialized
-</ins>
-in
-<del class="diff-old">N-Triples
-format:
-</del>
-<ins class="diff-chg">Turtle
-[
-</ins><cite><a class="bibref" href="#bib-TURTLE"><ins class="diff-chg">
-TURTLE
-</ins></a></cite><ins class="diff-chg">
-]:
-</ins>
-</p>
-<del class="diff-old">  var data = &quot;
-&lt;http://manu.sporny.org/about/#manu&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; \&quot;Manu Sporny\&quot; .\n
-&lt;http://manu.sporny.org/about/#manu&gt;
-</del>
-    <div class="example"><div class="example-title"><span>Example 10</span>: Sample Turtle document</div><pre class="example">&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Markus Lanthaler&quot; .
-<ins class="diff-chg">&lt;http://me.markus-lanthaler.com/&gt;
-</ins>
-&lt;http://xmlns.com/foaf/0.1/homepage&gt;
-<del class="diff-old">&lt;http://manu.sporny.org/&gt;
-.&quot;;
-</del>
-<ins class="diff-chg">&lt;http://www.markus-lanthaler.com/&gt;
-.
-</ins>
-</pre>
-</div>
-<p>
-<del class="diff-old">A
-developer
-can
-use
-</del>
-<ins class="diff-chg">Using
-</ins>
-the
-<del class="diff-old">JSON-LD
-API
-to
-</del>
-<a href="#convert-from-rdf-algorithm">
-<ins class="diff-chg">Convert
-from
-RDF
-algorithm
-</ins></a><ins class="diff-chg">
-a
-developer
-could
-</ins>
-transform
-<del class="diff-old">the
-markup
-above
-</del>
-<ins class="diff-chg">this
-document
-</ins>
-into
-<del class="diff-old">a
-JSON-LD
-document:
-  function conversionCallback(result)
-{
-  console.log(&quot;JSON-LD Document: &quot;, result);
-};
-jsonld.fromRDF(data,
-conversionCallback,
-{&quot;format&quot;:
-&quot;ntriples&quot;});
-The
-following
-</del>
-expanded
-<del class="diff-old">output
-would
-be
-the
-result
-of
-the
-call
-above:
-</del>
-<ins class="diff-chg">JSON-LD:
-</ins>
-</p>
-<del class="diff-old">  [{
-  &quot;@id&quot;: &quot;http://manu.sporny.org/about/#manu&quot;,
-  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{
-    &quot;@value&quot;: &quot;Manu Sporny&quot;
-  }],
-  &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [{
-    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
-  }]
-}]
-</del>
-    <div class="example"><div class="example-title"><span>Example 11</span>: Sample Turtle document converted to JSON-LD</div><pre class="example">[
-<ins class="diff-chg">  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
-    ]
-  }
-]
-</ins>
-</pre>
-</div>
-<p>
-Note
-that
-the
-output
-<del class="diff-old">above,
-</del>
-<ins class="diff-chg">above
-</ins>
-could
-easily
-be
-compacted
-<del class="diff-old">to
-produce
-the
-following
-</del>
-using
-the
-technique
-outlined
-in
-the
-previous
-<del class="diff-old">section:
-  {
-  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,
-  &quot;@id&quot;: &quot;http://manu.sporny.org/about/#manu&quot;,
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-}
-Transforming
-</del>
-<ins class="diff-chg">section.
-It
-is
-also
-possible
-to
-transform
-</ins>
-the
-<del class="diff-old">object
-above
-</del>
-<ins class="diff-chg">JSON-LD
-document
-</ins>
-back
-to
-RDF
-<del class="diff-old">is
-as
-simple
-as
-calling
-</del>
-<ins class="diff-chg">using
-</ins>
-the
-<del class="diff-old">toRDF()
-method:
-</del>
-<a href="#convert-to-rdf-algorithm">
-<ins class="diff-chg">Convert
-to
-RDF
-algorithm
-</ins></a>.
-</p>
-<del class="diff-old">  var jsonldDocument = ...; // assign the JSON-LD document here
-function rdfCallback(quads)
-{
-  console.log(&quot;RDF Data: &quot;, quads);
-};
-jsonld.toRDF(jsonldDocument,
-rdfCallback);
-</del>
-</section>
-</section>
-<section id="conformance">
-<h2>
-<span class="secno">
-<del class="diff-old">2.4
-</del>
-<ins class="diff-chg">3.
-</ins>
-</span>
-<del class="diff-old">Framing
-</del>
-<ins class="diff-chg">Conformance
-</ins></h2><p><ins class="diff-chg">
-All
-examples
-</ins>
-and
-<del class="diff-old">Normalization
-Issue
-2
-</del>
-<ins class="diff-chg">notes
-as
-well
-as
-sections
-marked
-as
-non-normative
-in
-this
-specification
-are
-non-normative.
-Everything
-else
-in
-this
-specification
-is
-normative.
-</ins></p><p><ins class="diff-chg">
-The
-keywords
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em>,<em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em>,<em class="rfc2119" title="REQUIRED"><ins class="diff-chg">
-REQUIRED
-</ins></em>,<em class="rfc2119" title="SHOULD"><ins class="diff-chg">
-SHOULD
-</ins></em>,<em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
-SHOULD
-NOT
-</ins></em>,<em class="rfc2119" title="RECOMMENDED"><ins class="diff-chg">
-RECOMMENDED
-</ins></em>,<em class="rfc2119" title="MAY"><ins class="diff-chg">
-MAY
-</ins></em>,<ins class="diff-chg">
-and
-</ins><em class="rfc2119" title="OPTIONAL"><ins class="diff-chg">
-OPTIONAL
-</ins></em><ins class="diff-chg">
-in
-this
-specification
-are
-to
-be
-interpreted
-as
-described
-in
-[
-</ins><cite>
-<a class="bibref" href="#bib-RFC2119">
-<ins class="diff-chg">RFC2119
-</ins></a>
-</cite>
-<ins class="diff-chg">].
-</ins></p><p>
-There
-are
-<del class="diff-old">currently
-two
-other
-API
-methods
-</del>
-<ins class="diff-chg">three
-classes
-of
-products
-</ins>
-that
-<del class="diff-old">are
-in
-active
-development
-and
-were
-not
-ready
-for
-publication
-at
-the
-time
-this
-document
-was
-published.
-Framing
-allows
-a
-developer
-</del>
-<ins class="diff-chg">can
-claim
-conformance
-</ins>
-to
-<del class="diff-old">force
-a
-different
-layout
-for
-the
-data
-</del>
-<ins class="diff-chg">this
-specification:
-</ins><a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor"><ins class="diff-chg">
-JSON-LD
-Processors
-</ins></a>,<a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation"><ins class="diff-chg">
-JSON-LD
-API
-Implementations
-</ins></a>,
-and
-<del class="diff-old">effectively
-perform
-query-by-example
-on
-</del>
-<a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter">
-<ins class="diff-chg">JSON-LD-RDF
-Converters
-</ins></a>.</p><p><ins class="diff-chg">
-A
-conforming
-</ins><dfn title="json-ld-processor" id="dfn-json-ld-processor">
-JSON-LD
-<del class="diff-old">documents
--
-this
-</del>
-<ins class="diff-chg">Processor
-</ins></dfn>
-is
-<del class="diff-old">most
-useful
-when
-</del>
-a
-<del class="diff-old">JSON-LD-based
-REST
-API
-does
-not
-know
-the
-exact
-form
-of
-</del>
-<ins class="diff-chg">system
-which
-can
-perform
-</ins>
-the
-<del class="diff-old">data
-it
-is
-getting
-in,
-but
-still
-wants
-to
-operate
-upon
-it
-if
-some
-bare
-essentials
-are
-found
-</del>
-<a href="#expansion-algorithm">
-<ins class="diff-chg">Expansion
-</ins></a>,<a href="#compaction-algorithm"><ins class="diff-chg">
-Compaction
-</ins></a>,<ins class="diff-chg">
-and
-</ins><a href="#flattening-algorithm"><ins class="diff-chg">
-Flattening
-</ins></a><ins class="diff-chg">
-operations
-defined
-</ins>
-in
-<del class="diff-old">the
-data.
-</del>
-<ins class="diff-chg">this
-specification.
-</ins></p><p><ins class="diff-chg">
-A
-conforming
-</ins><dfn title="json-ld-api-implementation" id="dfn-json-ld-api-implementation">
-JSON-LD
-<del class="diff-old">normalization
-allows
-</del>
-<ins class="diff-chg">API
-Implementation
-</ins></dfn><ins class="diff-chg">
-is
-a
-conforming
-</ins><a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">
-JSON-LD
-<del class="diff-old">documents
-to
-be
-deterministically
-serialized
-such
-</del>
-<ins class="diff-chg">Processor
-</ins></a>
-that
-<del class="diff-old">they
-can
-be
-digitally
-signed
-or
-be
-used
-to
-find
-</del>
-<ins class="diff-chg">exposes
-</ins>
-the
-<del class="diff-old">differences
-between
-two
-linked
-data
-graph
-</del>
-<a href="#the-application-programming-interface">
-<ins class="diff-chg">Application
-Programming
-Interface
-(API)
-</ins>
-</a>
-<del class="diff-old">s.
-</del>
-<ins class="diff-chg">defined
-in
-this
-specification.
-</ins>
-It
-<del class="diff-old">is
-expected
-that
-framing
-will
-be
-a
-part
-of
-</del>
-<em class="rfc2119" title="MUST">
-<ins class="diff-chg">MUST
-</ins></em><ins class="diff-chg">
-implement
-</ins>
-the
-<del class="diff-old">final
-API.
-It
-is
-expected
-that
-normalization
-will
-be
-an
-optional
-feature
-that
-JSON-LD
-processors
-may
-implement.
-</del>
-<code>
-<ins class="diff-chg">json-ld-1.0
-</ins></code><ins class="diff-chg">
-processing
-mode
-(for
-further
-details,
-see
-the
-</ins><code class="idlMemberName">
-<a href="#widl-JsonLdOptions-processingMode">
-<ins class="diff-chg">processingMode
-</ins></a>
-<del class="diff-old">3.
-The
-Application
-Programming
-Interface
-</del>
-</code>
-<ins class="diff-chg">option
-of
-</ins><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-chg">
-JsonLdOptions
-</ins></code></a><ins class="diff-chg">
-).
-</ins></p>
-<p>
-<del class="diff-old">This
-</del>
-<a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">
-<ins class="diff-chg">JSON-LD
-Processors
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">
-API
-<del class="diff-old">provides
-a
-clean
-mechanism
-that
-enables
-developers
-</del>
-<ins class="diff-chg">Implementations
-</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em><ins class="diff-chg">
-attempt
-</ins>
-to
-<del class="diff-old">convert
-JSON-LD
-data
-into
-a
-</del>
-<ins class="diff-chg">correct
-malformed
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-or
-language
-tags;
-however,
-they
-</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
-MAY
-</ins></em><ins class="diff-chg">
-issue
-validation
-warnings.
-IRIs
-are
-not
-modified
-other
-than
-converted
-between
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
-relative
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-IRIs
-</ins></a>.</p><p><ins class="diff-chg">
-A
-conforming
-</ins><dfn title="json-ld-rdf-converter" id="dfn-json-ld-rdf-converter"><ins class="diff-chg">
-JSON-LD-RDF
-Converter
-</ins></dfn><ins class="diff-chg">
-is
-</ins>
-a
-<del class="diff-old">variety
-of
-output
-formats
-</del>
-<ins class="diff-chg">system
-</ins>
-that
-<del class="diff-old">are
-easier
-</del>
-<ins class="diff-chg">can
-perform
-</ins><a href="#convert-to-rdf-algorithm"><ins class="diff-chg">
-Conversion
-</ins>
-to
-<del class="diff-old">work
-with
-</del>
-<ins class="diff-chg">RDF
-</ins></a><ins class="diff-chg">
-and
-</ins><a href="#convert-from-rdf-algorithm"><ins class="diff-chg">
-Conversion
-from
-RDF
-</ins></a>.</p><p><ins class="diff-chg">
-The
-algorithms
-</ins>
-in
-<del class="diff-old">various
-programming
-languages.
-If
-a
-</del>
-<ins class="diff-chg">this
-specification
-are
-generally
-written
-with
-more
-concern
-for
-clarity
-than
-efficiency.
-Thus,
-</ins><a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">
-JSON-LD
-<ins class="diff-new">Processors
-</ins></a><ins class="diff-new">
-and
-</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">
-API
-<del class="diff-old">is
-provided
-</del>
-<ins class="diff-chg">Implementations
-</ins></a><ins class="diff-chg">
-may
-implement
-the
-algorithms
-given
-</ins>
-in
-<del class="diff-old">a
-programming
-environment,
-</del>
-<ins class="diff-chg">this
-specification
-in
-any
-way
-desired,
-so
-long
-as
-</ins>
-the
-<del class="diff-old">entirety
-of
-</del>
-<ins class="diff-chg">end
-result
-is
-indistinguishable
-from
-</ins>
-the
-<del class="diff-old">following
-API
-must
-</del>
-<ins class="diff-chg">result
-that
-would
-</ins>
-be
-<del class="diff-old">implemented.
-</del>
-<ins class="diff-chg">obtained
-by
-the
-specification's
-algorithms.
-</ins>
-</p>
-<del class="diff-old">3.1
-General
-Terminology
-</del>
-<div class="note">
-<div class="note-title">
-<span>
-<del class="diff-old">Issue
-3
-</del>
-<ins class="diff-chg">Note
-</ins>
-</span>
-</div>
-<p class="">
-<del class="diff-old">The
-intent
-of
-the
-Working
-Group
-and
-the
-Editors
-</del>
-<ins class="diff-chg">Implementers
-can
-partially
-check
-their
-level
-</ins>
-of
-<del class="diff-old">this
-specification
-is
-</del>
-<ins class="diff-chg">conformance
-</ins>
-to
-<del class="diff-old">eventually
-align
-terminology
-used
-in
-</del>
-this
-<del class="diff-old">document
-with
-</del>
-<ins class="diff-chg">specification
-by
-successfully
-passing
-</ins>
-the
-<del class="diff-old">terminology
-used
-in
-</del>
-<ins class="diff-chg">test
-cases
-of
-</ins>
-the
-<del class="diff-old">RDF
-Concepts
-document
-to
-</del>
-<ins class="diff-chg">JSON-LD
-test
-suite
-[
-</ins><cite><a class="bibref" href="#bib-JSON-LD-TESTS"><ins class="diff-chg">
-JSON-LD-TESTS
-</ins></a></cite><ins class="diff-chg">
-].
-Note,
-however,
-that
-passing
-all
-</ins>
-the
-<del class="diff-old">extent
-to
-which
-it
-makes
-sense
-to
-do
-so.
-In
-general,
-if
-there
-is
-an
-analogue
-to
-terminology
-used
-in
-this
-document
-</del>
-<ins class="diff-chg">tests
-</ins>
-in
-the
-<del class="diff-old">RDF
-Concepts
-document,
-the
-preference
-is
-</del>
-<ins class="diff-chg">test
-suite
-does
-not
-imply
-complete
-conformance
-</ins>
-to
-<del class="diff-old">use
-</del>
-<ins class="diff-chg">this
-specification.
-It
-only
-implies
-that
-</ins>
-the
-<del class="diff-old">terminology
-in
-</del>
-<ins class="diff-chg">implementation
-conforms
-to
-aspects
-tested
-by
-</ins>
-the
-<del class="diff-old">RDF
-Concepts
-document.
-</del>
-<ins class="diff-chg">test
-suite.
-</ins>
-</p>
-</div>
-</section>
-<section id="general-terminology">
-<h2>
-<span class="secno">
-<ins class="diff-new">4.
-</ins></span><ins class="diff-new">
-General
-Terminology
-</ins></h2>
-<p>
-<del class="diff-old">The
-</del>
-<ins class="diff-chg">This
-document
-uses
-the
-</ins>
-following
-<del class="diff-old">is
-an
-explanation
-of
-</del>
-<ins class="diff-chg">terms
-as
-defined
-in
-JSON
-[
-</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
-RFC4627
-</ins></a></cite><ins class="diff-chg">
-].
-Refer
-to
-</ins>
-the
-<del class="diff-old">general
-terminology
-used
-</del>
-<em>
-<ins class="diff-chg">JSON
-Grammar
-</ins></em><ins class="diff-chg">
-section
-</ins>
-in
-<del class="diff-old">this
-document:
-</del>
-<ins class="diff-chg">[
-</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
-RFC4627
-</ins></a></cite><ins class="diff-chg">
-]
-for
-formal
-definitions.
-</ins>
-</p>
-<dl>
-<dt>
-<dfn title="json-object" id="dfn-json-object">
-JSON
-object
-</dfn>
-</dt>
-<dd>
-An
-object
-structure
-is
-represented
-as
-a
-pair
-of
-curly
-brackets
-surrounding
-zero
-or
-more
-<del class="diff-old">name-value
-</del>
-<ins class="diff-chg">key-value
-</ins>
-pairs.
-A
-<del class="diff-old">name
-</del>
-<ins class="diff-chg">key
-</ins>
-is
-a
-<a class="tref internalDFN" title="string" href="#dfn-string">
-string
-</a>.
-A
-single
-colon
-comes
-after
-each
-<del class="diff-old">name,
-</del>
-<ins class="diff-chg">key,
-</ins>
-separating
-the
-<del class="diff-old">name
-</del>
-<ins class="diff-chg">key
-</ins>
-from
-the
-value.
-A
-single
-comma
-separates
-a
-value
-from
-a
-following
-<del class="diff-old">name.
-The
-names
-within
-</del>
-<ins class="diff-chg">key.
-In
-contrast
-to
-JSON,
-in
-JSON-LD
-the
-keys
-in
-</ins>
-an
-object
-<del class="diff-old">should
-</del>
-<ins class="diff-chg">must
-</ins>
-be
-unique.
-</dd>
-<dt>
-<dfn title="array" id="dfn-array">
-array
-</dfn>
-</dt>
-<dd>
-An
-array
-<ins class="diff-new">structure
-</ins>
-is
-represented
-as
-square
-brackets
-surrounding
-zero
-or
-more
-<del class="diff-old">values
-that
-</del>
-<ins class="diff-chg">values.
-Values
-</ins>
-are
-separated
-by
-commas.
-<ins class="diff-new">In
-JSON,
-an
-array
-is
-an
-</ins><em><ins class="diff-new">
-ordered
-</ins></em><ins class="diff-new">
-sequence
-of
-zero
-or
-more
-values.
-While
-JSON-LD
-uses
-the
-same
-array
-representation
-as
-JSON,
-the
-collection
-is
-</ins><em><ins class="diff-new">
-unordered
-</ins></em><ins class="diff-new">
-by
-default.
-While
-order
-is
-preserved
-in
-regular
-JSON
-arrays,
-it
-is
-not
-in
-regular
-JSON-LD
-arrays
-unless
-specifically
-defined
-(see
-</ins><cite><a href="../json-ld/#sets-and-lists"><ins class="diff-new">
-Sets
-and
-Lists
-</ins></a></cite><ins class="diff-new">
-in
-the
-JSON-LD
-specification
-[
-</ins><cite><a class="bibref" href="#bib-JSON-LD"><ins class="diff-new">
-JSON-LD
-</ins></a></cite><ins class="diff-new">
-]).
-</ins>
-</dd>
-<dt>
-<dfn title="string" id="dfn-string">
-string
-</dfn>
-</dt>
-<dd>
-A
-string
-is
-a
-sequence
-of
-zero
-or
-more
-Unicode
-<del class="diff-old">(UTF-8)
-</del>
-characters,
-wrapped
-in
-double
-quotes,
-using
-backslash
-escapes
-(if
-necessary).
-A
-character
-is
-represented
-as
-a
-single
-character
-string.
-</dd>
-<dt>
-<dfn title="number" id="dfn-number">
-number
-</dfn>
-</dt>
-<dd>
-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.
-</dd>
-<dt>
-<dfn title="true" id="dfn-true">
-true
-</dfn>
-and
-<dfn title="false" id="dfn-false">
-false
-</dfn>
-</dt>
-<dd>
-Values
-that
-are
-used
-to
-express
-one
-of
-two
-possible
-boolean
-states.
-</dd>
-<dt>
-<dfn title="null" id="dfn-null">
-null
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">Unless
-otherwise
-specified,
-a
-JSON-LD
-processor
-must
-act
-as
-if
-</del>
-<ins class="diff-chg">The
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-value.
-A
-key-value
-pair
-in
-the
-</ins><code><ins class="diff-chg">
-@context
-</ins></code><ins class="diff-chg">
-where
-the
-value,
-or
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-of
-the
-value,
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-explicitly
-decouples
-</ins>
-a
-<ins class="diff-new">term's
-association
-with
-an
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>.<ins class="diff-new">
-A
-</ins>
-key-value
-pair
-in
-the
-body
-of
-a
-JSON-LD
-document
-<del class="diff-old">was
-never
-declared
-when
-the
-</del>
-<ins class="diff-chg">whose
-</ins>
-value
-<del class="diff-old">equals
-</del>
-<ins class="diff-chg">is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null">
-null
-<del class="diff-old">.
-</del>
-</a>
-<ins class="diff-chg">has
-the
-same
-meaning
-as
-if
-the
-key-value
-pair
-was
-not
-defined.
-</ins>
-If
-<code>
-@value
-</code>,
-<code>
-@list
-</code>,
-or
-<code>
-@set
-</code>
-is
-set
-to
-<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>
-in
-expanded
-form,
-then
-the
-entire
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-is
-ignored.
-<del class="diff-old">If
-@context
-is
-set
-to
-null
-,
-</del>
-</dd>
-</dl>
-<p>
-<ins class="diff-chg">Furthermore,
-</ins>
-the
-<del class="diff-old">active
-context
-</del>
-<ins class="diff-chg">following
-terminology
-</ins>
-is
-<del class="diff-old">reset
-and
-when
-</del>
-used
-<del class="diff-old">within
-a
-context
-,
-it
-removes
-any
-definition
-associated
-with
-the
-key,
-unless
-otherwise
-specified.
-</del>
-<ins class="diff-chg">throughout
-this
-document:
-</ins></p><dl>
-<dt>
-<del class="diff-old">subject
-definition
-</del>
-<dfn title="keyword" id="dfn-keyword">
-<ins class="diff-chg">keyword
-</ins>
-</dfn>
-</dt>
-<dd>
-A
-JSON
-<del class="diff-old">object
-used
-to
-represent
-a
-subject
-and
-one
-or
-more
-properties
-of
-</del>
-<ins class="diff-chg">key
-</ins>
-that
-<del class="diff-old">subject.
-A
-JSON
-object
-</del>
-is
-<del class="diff-old">a
-subject
-definition
-if
-it
-does
-not
-contain
-they
-keys
-@value
-,
-@list
-or
-@set
-and
-it
-has
-one
-or
-more
-keys
-other
-than
-@id
-.
-</del>
-<ins class="diff-chg">specific
-to
-JSON-LD,
-specified
-in
-the
-section
-</ins><cite>
-<del class="diff-old">subject
-reference
-</del>
-<a href="../json-ld/#syntax-tokens-and-keywords">
-<ins class="diff-chg">Syntax
-Tokens
-and
-Keywords
-</ins></a>
-</cite>
-<ins class="diff-chg">of
-the
-JSON-LD
-specification
-[
-</ins><cite>
-<del class="diff-old">A
-JSON
-object
-</del>
-<a class="bibref" href="#bib-JSON-LD">
-<ins class="diff-chg">JSON-LD
-</ins>
-</a>
-<del class="diff-old">used
-to
-reference
-a
-subject
-having
-only
-the
-@id
-key.
-</del>
-</cite>
-<ins class="diff-chg">].
-</ins>
-</dd>
-<dt>
-<del class="diff-old">Linked
-Data
-</del>
-<dfn title="context" id="dfn-context">
-<ins class="diff-chg">context
-</ins>
-</dfn>
-</dt>
-<dd>
-A
-set
-of
-<del class="diff-old">documents,
-each
-containing
-a
-representation
-of
-</del>
-<ins class="diff-chg">rules
-for
-interpreting
-</ins>
-a
-<del class="diff-old">linked
-data
-graph
-.
-linked
-data
-graph
-or
-dataset
-</del>
-<ins class="diff-chg">JSON-LD
-document
-as
-specified
-in
-the
-section
-</ins><cite>
-<del class="diff-old">An
-unordered
-labeled
-directed
-graph,
-where
-node
-s
-are
-subject
-</del>
-<a href="../json-ld/#the-context">
-<ins class="diff-chg">The
-Context
-</ins>
-</a>
-<del class="diff-old">s
-or
-object
-</del>
-</cite>
-<ins class="diff-chg">of
-the
-JSON-LD
-specification
-[
-</ins><cite><a class="bibref" href="#bib-JSON-LD"><ins class="diff-chg">
-JSON-LD
-</ins>
-</a>
-<del class="diff-old">s,
-and
-edges
-are
-properties.
-</del>
-</cite>
-<ins class="diff-chg">].
-</ins>
-</dd>
-<dt>
-<del class="diff-old">node
-</del>
-<dfn title="json-ld-document" id="dfn-json-ld-document">
-<ins class="diff-chg">JSON-LD
-document
-</ins>
-</dfn>
-</dt>
-<dd>
-A
-<del class="diff-old">piece
-of
-information
-that
-</del>
-<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
-<ins class="diff-chg">JSON-LD
-document
-</ins></a>
-is
-<del class="diff-old">represented
-in
-</del>
-a
-<del class="diff-old">linked
-data
-</del>
-<ins class="diff-chg">serialization
-of
-a
-collection
-of
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-JSON-LD
-graphs
-</ins></a><ins class="diff-chg">
-and
-comprises
-exactly
-one
-</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
-default
-</ins>
-graph
-</a>
-<ins class="diff-new">and
-zero
-or
-more
-</ins><a class="tref internalDFN" title="named-graph" href="#dfn-named-graph"><ins class="diff-new">
-named
-graphs
-</ins>
-</a>.
-</dd>
-<dt>
-<dfn title="named-graph" id="dfn-named-graph">
-named
-graph
-</dfn>
-</dt>
-<dd>
-A
-<del class="diff-old">linked
-data
-</del>
-<ins class="diff-chg">named
-</ins>
-graph
-<del class="diff-old">that
-has
-one
-or
-more
-</del>
-<ins class="diff-chg">is
-a
-pair
-consisting
-of
-an
-</ins>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">that
-are
-used
-to
-refer
-to
-it.
-</del>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-node
-</ins></a><ins class="diff-chg">
-(the
-</ins><dfn title="graph-name" id="dfn-graph-name">
-graph
-name
-</dfn>
-<del class="diff-old">An
-IRI
-that
-is
-a
-reference
-to
-</del>
-<ins class="diff-chg">)
-and
-</ins>
-a
-<del class="diff-old">named
-</del>
-<a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
-<ins class="diff-chg">JSON-LD
-</ins>
-graph
-</a>.
-</dd>
-<dt>
-<dfn title="default-graph" id="dfn-default-graph">
-default
-graph
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">When
-executing
-an
-algorithm,
-</del>
-<ins class="diff-chg">The
-default
-graph
-is
-</ins>
-the
-<ins class="diff-new">only
-</ins>
-graph
-<del class="diff-old">where
-data
-should
-be
-placed
-if
-</del>
-<ins class="diff-chg">in
-</ins>
-a
-<del class="diff-old">named
-</del>
-<ins class="diff-chg">JSON-LD
-document
-which
-has
-no
-</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
-graph
-<del class="diff-old">is
-not
-specified.
-</del>
-<ins class="diff-chg">name
-</ins></a>.
-</dd>
-<dt>
-<del class="diff-old">subject
-</del>
-<dfn title="json-ld-graph" id="dfn-json-ld-graph">
-<ins class="diff-chg">JSON-LD
-graph
-</ins>
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">Any
-node
-in
-</del>
-<ins class="diff-chg">A
-labeled
-directed
-graph,
-i.e.,
-</ins>
-a
-<del class="diff-old">linked
-data
-graph
-</del>
-<ins class="diff-chg">set
-of
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-nodes
-</ins>
-</a>
-<del class="diff-old">with
-at
-least
-one
-outgoing
-edge.
-IRI
-An
-Internationalized
-Resource
-Identifier
-</del>
-<ins class="diff-chg">connected
-by
-</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
-edges
-</ins></a>,
-as
-<del class="diff-old">described
-</del>
-<ins class="diff-chg">specified
-</ins>
-in
-<del class="diff-old">[
-</del>
-<ins class="diff-chg">the
-</ins>
-<cite>
-<del class="diff-old">RFC3987
-</del>
-<a href="../json-ld/#data-model">
-<ins class="diff-chg">Data
-Model
-</ins>
-</a>
-</cite>
-<del class="diff-old">]).
-object
-A
-node
-in
-a
-linked
-data
-graph
-with
-at
-least
-one
-incoming
-edge.
-property
-An
-edge
-of
-the
-linked
-data
-graph
-.
-literal
-An
-object
-with
-a
-label
-that
-is
-not
-an
-IRI
-.
-quad
-A
-piece
-</del>
-<ins class="diff-chg">section
-</ins>
-of
-<del class="diff-old">information
-that
-contains
-four
-items;
-a
-subject
-,
-a
-property
-,
-a
-object
-,
-and
-a
-graph
-name
-.
-context
-A
-JSON
-object
-that
-contains
-rules
-for
-interpreting
-a
-JSON-LD
-document.
-keyword
-A
-JSON
-key
-that
-is
-specific
-to
-JSON-LD,
-specified
-in
-</del>
-the
-JSON-LD
-<del class="diff-old">Syntax
-</del>
-specification
-[
-<cite>
-<a class="bibref" href="#bib-JSON-LD">
-JSON-LD
-</a>
-</cite>
-<del class="diff-old">]
-in
-the
-section
-titled
-Syntax
-Tokens
-and
-Keywords
-.
-</del>
-<ins class="diff-chg">].
-</ins>
-</dd>
-<del class="diff-old">3.2
-JsonLdProcessor
-The
-JSON-LD
-Processor
-interface
-is
-the
-high-level
-programming
-structure
-that
-developers
-use
-to
-access
-the
-JSON-LD
-transformation
-methods.
-    ]
-interface  {
-};
-3.2.1
-Methods
-</del>
-<dt>
-<del class="diff-old">compact
-</del>
-<dfn title="edge" id="dfn-edge">
-<ins class="diff-chg">edge
-</ins></dfn>
-</dt>
-<dd>
-<del class="diff-old">Compacts
-</del>
-<ins class="diff-chg">Every
-</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
-edge
-</ins>
-</a>
-<del class="diff-old">the
-given
-input
-using
-the
-context
-according
-to
-the
-steps
-in
-the
-Compaction
-Algorithm
-.
-The
-input
-must
-be
-copied,
-compacted
-</del>
-<ins class="diff-chg">has
-a
-direction
-associated
-with
-it
-</ins>
-and
-<del class="diff-old">returned
-if
-there
-are
-no
-errors.
-If
-the
-compaction
-fails,
-an
-appropriate
-exception
-must
-be
-thrown.
-Parameter
-Type
-Nullable
-Optional
-Description
-input
-object
-or
-object[]
-or
-URL
-✘
-✘
-The
-JSON-LD
-object
-or
-array
-of
-JSON-LD
-objects
-to
-perform
-the
-compaction
-upon
-or
-</del>
-<ins class="diff-chg">is
-labeled
-with
-</ins>
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">referencing
-the
-JSON-LD
-document
-to
-compact.
-context
-object
-</del>
-or
-<del class="diff-old">URL
-✘
-✘
-The
-context
-to
-use
-when
-compacting
-the
-input
-;
-either
-in
-the
-form
-of
-an
-JSON
-object
-or
-as
-IRI
-.
-callback
-JsonLdCallback
-✘
-✘
-A
-callback
-that
-is
-called
-when
-processing
-is
-complete
-on
-the
-given
-input
-.
-options
-JsonLdOptions
-✘
-✔
-A
-set
-of
-options
-that
-may
-affect
-the
-expansion
-algorithm
-such
-as,
-e.g.,
-the
-input
-document's
-base
-IRI
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins>
-</a>.
-<del class="diff-old">This
-also
-includes
-optimize
-,
-which
-if
-set
-will
-cause
-processor-specific
-optimization.
-Return
-type:
-void
-expand
-Expands
-the
-given
-input
-according
-to
-the
-steps
-in
-</del>
-<ins class="diff-chg">Within
-</ins>
-the
-<del class="diff-old">Expansion
-Algorithm
-.
-The
-input
-must
-be
-copied,
-expanded
-and
-returned
-if
-there
-</del>
-<ins class="diff-chg">JSON-LD
-syntax
-these
-edge
-labels
-</ins>
-are
-<del class="diff-old">no
-errors.
-If
-the
-expansion
-fails,
-</del>
-<ins class="diff-chg">called
-</ins><dfn title="property" id="dfn-property"><ins class="diff-chg">
-properties
-</ins></dfn>.<ins class="diff-chg">
-Whenever
-possible,
-</ins>
-an
-<del class="diff-old">appropriate
-exception
-must
-be
-thrown.
-Parameter
-Type
-Nullable
-Optional
-Description
-input
-object
-or
-object[]
-or
-URL
-</del>
-<a class="tref internalDFN" title="edge" href="#dfn-edge">
-<ins class="diff-chg">edge
-</ins>
-</a>
-<del class="diff-old">✘
-✘
-The
-JSON-LD
-object
-or
-array
-of
-JSON-LD
-objects
-to
-perform
-the
-expansion
-upon
-or
-</del>
-<ins class="diff-chg">should
-be
-labeled
-with
-</ins>
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">referencing
-the
-JSON-LD
-document
-to
-expand.
-context
-object
-or
-URL
-✔
-✘
-An
-optional
-external
-context
-to
-use
-additionally
-to
-the
-context
-embedded
-in
-input
-when
-expanding
-the
-input
-.
-callback
-JsonLdCallback
-✘
-✘
-A
-callback
-that
-is
-called
-when
-processing
-is
-complete
-on
-the
-given
-input
-.
-options
-JsonLdOptions
-✘
-✔
-A
-set
-of
-options
-that
-may
-affect
-the
-expansion
-algorithm
-such
-as,
-e.g.,
-the
-input
-document's
-base
-IRI
-</del>
-</a>.
-<del class="diff-old">Return
-type:
-void
-</del>
-</dd>
-<dt>
-<del class="diff-old">fromRDF
-Creates
-a
-JSON-LD
-document
-given
-an
-set
-of
-Quads
-.
-Parameter
-Type
-Nullable
-Optional
-Description
-input
-Quad
-[]
-✘
-✘
-A
-dataset
-represented
-as
-an
-array
-of
-Quads
-.
-callback
-JsonLdCallback
-✘
-✘
-A
-callback
-that
-is
-called
-when
-processing
-is
-complete
-on
-the
-given
-input
-.
-options
-JsonLdOptions
-✘
-✔
-A
-set
-of
-options
-that
-will
-affect
-the
-algorithm.
-This
-includes
-notType
-,
-which
-if
-set
-to
-true
-causes
-the
-resulting
-document
-to
-use
-rdf:type
-as
-a
-property,
-instead
-of
-@type
-.
-Return
-type:
-void
-toRDF
-</del>
-<dfn title="node" id="dfn-node">
-<ins class="diff-chg">node
-</ins></dfn>
-</dt>
-<dd>
-<del class="diff-old">Processes
-the
-input
-according
-to
-the
-Convert
-to
-RDF
-Algorithm
-,
-calling
-the
-provided
-callback
-for
-each
-Quad
-generated.
-Parameter
-Type
-Nullable
-Optional
-Description
-input
-object
-or
-object[]
-or
-URL
-✘
-✘
-The
-JSON-LD
-object
-or
-array
-of
-JSON-LD
-objects
-to
-convert
-to
-RDF
-or
-a
-URL
-referencing
-the
-JSON-LD
-document
-to
-convert
-to
-RDF.
-callback
-QuadCallback
-✘
-✘
-A
-callback
-that
-is
-called
-when
-a
-Quad
-</del>
-<ins class="diff-chg">Every
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins>
-</a>
-is
-<del class="diff-old">created
-from
-processing
-the
-given
-input
-.
-options
-JsonLdOptions
-✘
-✔
-A
-set
-of
-options
-that
-may
-affect
-the
-conversion
-to
-RDF
-such
-as,
-e.g.,
-the
-input
-document's
-base
-</del>
-<ins class="diff-chg">an
-</ins>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">.
-Return
-type:
-void
-3.3
-Callbacks
-3.3.1
-JsonLdCallback
-The
-JsonLdCallback
-is
-used
-to
-return
-</del>
-</a>,
-a
-<del class="diff-old">processed
-</del>
-<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
-<ins class="diff-chg">blank
-node
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">
-JSON-LD
-<del class="diff-old">representation
-as
-the
-result
-of
-processing
-an
-API
-method.
-    ]
-interface  {
-};
-3.3.1.1
-Methods
-jsonLd
-This
-callback
-is
-invoked
-when
-processing
-is
-complete.
-Parameter
-Type
-Nullable
-Optional
-Description
-jsonld
-object
-</del>
-<ins class="diff-chg">value
-</ins></a>,
-or
-<del class="diff-old">object
-[]
-✘
-✘
-The
-processed
-JSON-LD
-document.
-Return
-type:
-void
-3.3.2
-QuadCallback
-The
-QuadCallback
-is
-called
-whenever
-the
-processor
-generates
-</del>
-a
-<del class="diff-old">quad
-during
-the
-quad()
-call.
-    ]
-interface  {
-};
-3.3.2.1
-Methods
-quad
-This
-callback
-is
-invoked
-whenever
-a
-quad
-is
-generated
-by
-the
-processor.
-Parameter
-Type
-Nullable
-Optional
-Description
-quad
-Quad
-✘
-✘
-The
-quad.
-Return
-type:
-void
-</del>
-<a class="tref internalDFN" title="list" href="#dfn-list">
-<ins class="diff-chg">list
-</ins></a>.
-</dd>
-<dt>
-<del class="diff-old">3.4
-Data
-Structures
-This
-section
-describes
-datatype
-definitions
-used
-within
-the
-JSON-LD
-API.
-3.4.1
-URL
-The
-URL
-datatype
-is
-a
-string
-representation
-of
-an
-</del>
-<dfn title="iri" id="dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">.
-typedef
-DOMString
-URL
-;
-</del>
-</dfn>
-<del class="diff-old">This
-datatype
-indicates
-that
-the
-</del>
-</dt>
-<dd>
-<ins class="diff-chg">An
-</ins>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">is
-interpreted
-as
-a
-Universal
-</del>
-<ins class="diff-chg">(Internationalized
-</ins>
-Resource
-<del class="diff-old">Locator
-identifying
-a
-document,
-which
-when
-parsed
-as
-JSON
-yields
-either
-a
-JSON
-object
-or
-array
-.
-3.4.2
-JsonLdOptions
-The
-JsonLdOptions
-type
-</del>
-<ins class="diff-chg">Identifier)
-</ins>
-is
-<del class="diff-old">used
-to
-convert
-</del>
-a
-<del class="diff-old">set
-of
-options
-</del>
-<ins class="diff-chg">string
-that
-conforms
-</ins>
-to
-<del class="diff-old">an
-interface
-method.
-typedef
-</del>
-<ins class="diff-chg">the
-syntax
-defined
-in
-[
-</ins><cite>
-<del class="diff-old">object
-</del>
-<a class="bibref" href="#bib-RFC3987">
-<ins class="diff-chg">RFC3987
-</ins>
-</a>
-<del class="diff-old">JsonLdOptions
-;
-</del>
-</cite>
-<ins class="diff-chg">].
-</ins></dd>
-<dt>
-<del class="diff-old">URL
-base
-The
-Base
-</del>
-<dfn title="absolute-iri" id="dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">to
-use
-when
-expanding
-the
-document.
-This
-overrides
-the
-value
-of
-input
-if
-it
-is
-a
-</del>
-<del class="diff-old">URL
-</del>
-</dfn>
-<del class="diff-old">or
-if
-it
-is
-a
-object
-or
-object[]
-.
-boolean
-optimize
-If
-set
-to
-true
-,
-the
-JSON-LD
-processor
-is
-allowed
-to
-optimize
-the
-output
-of
-the
-Compaction
-Algorithm
-to
-produce
-even
-compacter
-representations.
-The
-algorithm
-for
-compaction
-optimization
-is
-beyond
-the
-scope
-of
-this
-specification
-and
-thus
-not
-defined.
-Consequently,
-different
-implementations
-may
-implement
-different
-optimization
-algorithms.
-boolean
-noType
-</del>
-</dt>
-<dd>
-<del class="diff-old">If
-set
-to
-true
-,
-the
-JSON-LD
-processor
-will
-not
-use
-the
-@type
-property
-when
-generating
-the
-output,
-and
-will
-use
-the
-expanded
-rdf:type
-</del>
-<ins class="diff-chg">An
-absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">as
-the
-property
-instead
-of
-@type
-.
-The
-following
-data
-structures
-are
-used
-for
-representing
-data
-about
-RDF
-quads.
-They
-are
-used
-for
-normalization,
-fromRDF
-,
-and
-from
-toRDF
-interfaces.
-3.4.3
-Quad
-The
-Quad
-interface
-represents
-an
-RDF
-Quad.
-See
-</del>
-<ins class="diff-chg">is
-defined
-in
-</ins>
-[
-<cite>
-<del class="diff-old">RDF-CONCEPTS
-</del>
-<a class="bibref" href="#bib-RFC3987">
-<ins class="diff-chg">RFC3987
-</ins>
-</a>
-</cite>
-]
-<del class="diff-old">definition
-for
-RDF
-triple
-,
-which
-most
-closely
-aligns
-to
-Quad
-.
-    ]
-interface  {
-};
-3.4.3.1
-Attributes
-graphName
-of
-type
-Node
-,
-readonly,
-nullable
-If
-present,
-the
-name
-associated
-with
-the
-Quad
-identifying
-it
-as
-a
-member
-of
-</del>
-<ins class="diff-chg">containing
-</ins>
-a
-<del class="diff-old">named
-graph
-.
-If
-it
-is
-missing,
-the
-quad
-is
-</del>
-<em>
-<ins class="diff-chg">scheme
-</ins></em><ins class="diff-chg">
-along
-with
-</ins>
-a
-<del class="diff-old">member
-of
-the
-default
-graph
-.
-Issue
-4
-This
-element
-is
-at
-risk,
-</del>
-<em>
-<ins class="diff-chg">path
-</ins></em>
-and
-<del class="diff-old">may
-be
-removed.
-object
-of
-type
-Node
-,
-readonly
-The
-object
-associated
-with
-the
-Quad
-.
-</del>
-<ins class="diff-chg">optional
-</ins><em><ins class="diff-chg">
-query
-</ins></em><ins class="diff-chg">
-and
-fragment
-segments.
-</ins>
-</dd>
-<dt>
-<del class="diff-old">predicate
-of
-type
-Node
-,
-readonly
-The
-predicate
-associated
-with
-the
-Quad
-</del>
-<dfn title="relative-iri" id="dfn-relative-iri">
-<ins class="diff-chg">relative
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-<del class="diff-old">.
-Within
-JSON-LD,
-an
-RDF
-predicate
-</del>
-</dfn>
-<del class="diff-old">is
-refered
-to
-as
-a
-property
-subject
-of
-type
-</del>
-<del class="diff-old">Node
-,
-readonly
-</del>
-</dt>
-<dd>
-<del class="diff-old">The
-subject
-associated
-with
-the
-Quad
-.
-3.4.4
-Node
-Node
-is
-the
-base
-class
-of
-</del>
-<ins class="diff-chg">A
-relative
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">,
-BlankNode
-,
-and
-Literal
-.
-It
-</del>
-is
-<del class="diff-old">the
-IDL
-representation
-of
-a
-linked
-data
-graph
-node
-.
-    ]
-interface  {
-};
-3.4.5
-</del>
-<ins class="diff-chg">an
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">A
-node
-</del>
-that
-is
-<del class="diff-old">an
-</del>
-<ins class="diff-chg">relative
-some
-other
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">.
-    ]
-interface  {
-};
-3.4.5.1
-Attributes
-value
-of
-type
-DOMString
-</del>
-</a>
-<del class="diff-old">,
-readonly
-The
-IRI
-identifier
-</del>
-<ins class="diff-chg">;
-in
-the
-case
-</ins>
-of
-<ins class="diff-new">JSON-LD
-this
-is
-</ins>
-the
-<del class="diff-old">node
-as
-a
-[
-UNICODE
-]
-string.
-</del>
-<ins class="diff-chg">base
-location
-of
-the
-document.
-</ins>
-</dd>
-<dt>
-<del class="diff-old">3.4.6
-Blank
-Node
-</del>
-<dfn title="blank-node" id="dfn-blank-node">
-<ins class="diff-chg">blank
-node
-</ins>
-</dfn>
-</dt>
-<dd>
-A
-<a class="tref internalDFN" title="node" href="#dfn-node">
-node
-</a>
-in
-<del class="diff-old">the
-linked
-data
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-JSON-LD
-</ins>
-graph
-</a>
-that
-<del class="diff-old">does
-not
-contain
-a
-de-reference-able
-identifier
-because
-it
-</del>
-is
-<del class="diff-old">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
-_:
-and
-</del>
-<ins class="diff-chg">neither
-</ins>
-an
-<del class="diff-old">implementation
-dependent,
-auto-generated
-suffix
-that
-is
-unique
-to
-all
-information
-associated
-with
-the
-particular
-blank
-node.
-    ]
-interface  {
-};
-3.4.6.1
-Attributes
-</del>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr>
-</a>,
-<ins class="diff-chg">nor
-a
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
-JSON-LD
-value
-</ins></a>,<ins class="diff-chg">
-nor
-a
-</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
-list
-</ins></a>.</dd><dt>
-<dfn title="blank-node-identifier" id="dfn-blank-node-identifier">
-<ins class="diff-chg">blank
-node
-</ins>
-identifier
-<del class="diff-old">of
-type
-DOMString
-</del>
-</dfn>
-<del class="diff-old">,
-readonly
-</del>
-</dt>
-<dd>
-<del class="diff-old">The
-temporary
-identifier
-of
-the
-</del>
-<ins class="diff-chg">A
-</ins>
-blank
-node
-<del class="diff-old">.
-The
-</del>
-identifier
-<del class="diff-old">must
-not
-be
-relied
-upon
-in
-any
-way
-between
-two
-separate
-processing
-runs
-of
-the
-same
-document
-or
-with
-</del>
-<ins class="diff-chg">is
-</ins>
-a
-<del class="diff-old">different
-document.
-Note
-Developers
-and
-authors
-must
-not
-assume
-</del>
-<ins class="diff-chg">string
-</ins>
-that
-<del class="diff-old">the
-value
-of
-</del>
-<ins class="diff-chg">can
-be
-used
-as
-an
-identifier
-for
-</ins>
-a
-<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
-blank
-node
-</a>
-<del class="diff-old">will
-remain
-the
-same
-between
-two
-processing
-runs.
-BlankNode
-values
-are
-only
-valid
-for
-the
-most
-recent
-processing
-run
-on
-</del>
-<ins class="diff-chg">within
-</ins>
-the
-<ins class="diff-new">scope
-of
-a
-JSON-LD
-</ins>
-document.
-<ins class="diff-chg">Blank
-node
-identifiers
-begin
-with
-</ins>
-<code>
-<del class="diff-old">BlankNode
-values
-will
-often
-be
-generated
-differently
-by
-different
-processors.
-Note
-Implementers
-must
-ensure
-that
-</del>
-<ins class="diff-chg">_:
-</ins></code>.</dd><dt>
-<del class="diff-old">BlankNode
-</del>
-<dfn title="json-ld-value" id="dfn-json-ld-value">
-<ins class="diff-chg">JSON-LD
-value
-</ins></dfn>
-</dt>
-<dd>
-<ins class="diff-new">A
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-new">
-JSON-LD
-value
-</ins>
-</a>
-<del class="diff-old">values
-are
-unique
-within
-the
-current
-environment,
-two
-BlankNodes
-</del>
-<ins class="diff-chg">is
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-number
-</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins>
-</a>
-<del class="diff-old">are
-considered
-equal
-if,
-and
-only
-if,
-their
-values
-are
-strictly
-equal.
-</del>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
-typed
-value
-</ins></a>,<ins class="diff-chg">
-or
-a
-</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-chg">
-language-tagged
-string
-</ins></a>.</dd><dt>
-<dfn title="typed-value" id="dfn-typed-value">
-<ins class="diff-chg">typed
-value
-</ins></dfn>
-<del class="diff-old">3.4.7
-Literal
-Literals
-represent
-values
-such
-as
-numbers,
-dates
-and
-strings
-in
-RDF
-data.
-</del>
-</dt>
-<dd>
-A
-<del class="diff-old">Literal
-</del>
-<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
-<ins class="diff-chg">typed
-value
-</ins>
-</a>
-<del class="diff-old">is
-comprised
-</del>
-<ins class="diff-chg">consists
-</ins>
-of
-<del class="diff-old">three
-attributes:
-</del>
-a
-<del class="diff-old">lexical
-form
-of
-the
-value
-an
-optional
-language
-tag
-</del>
-<ins class="diff-chg">value,
-which
-is
-</ins>
-a
-<del class="diff-old">datatype
-specified
-by
-</del>
-<ins class="diff-chg">string,
-and
-a
-type,
-which
-is
-</ins>
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-</dd>
-<dt>
-<dfn title="language-tagged-string" id="dfn-language-tagged-string">
-<ins class="diff-chg">language-tagged
-string
-</ins></dfn>
-<del class="diff-old">Literals
-representing
-plain
-text
-in
-</del>
-</dt>
-<dd>
-<ins class="diff-chg">A
-</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-chg">
-language-tagged
-string
-</ins></a><ins class="diff-chg">
-consists
-of
-</ins>
-a
-<del class="diff-old">natural
-language
-may
-have
-</del>
-<ins class="diff-chg">string
-and
-</ins>
-a
-<ins class="diff-chg">non-empty
-</ins>
-language
-tag
-<del class="diff-old">specified
-by
-a
-string
-token,
-</del>
-as
-<del class="diff-old">specified
-in
-</del>
-<ins class="diff-chg">defined
-by
-</ins>
-[
-<cite>
-<a class="bibref" href="#bib-BCP47">
-BCP47
-</a>
-</cite>
-<del class="diff-old">],
-normalized
-to
-lowercase
-(e.g.,
-'en'
-,
-'fr'
-,
-'en-gb'
-).
-They
-also
-have
-a
-datatype
-attribute
-such
-as
-xsd:string
-.
-If
-unspecified,
-the
-datatype
-defaults
-</del>
-<ins class="diff-chg">].
-The
-language
-tag
-must
-be
-well-formed
-according
-</ins>
-to
-<del class="diff-old">xsd:string
-.
-Literals
-representing
-values
-with
-a
-specific
-datatype,
-such
-as
-the
-integer
-72,
-may
-have
-a
-datatype
-attribute
-specified
-in
-the
-form
-of
-a
-IRI
-(e.g.,
-xsd:integer
-).
-See[
-RDF-CONCEPTS
-]
-definition
-for
-literal
-.
-      ]
-interface  {
-};
-3.4.7.1
-Attributes
-datatype
-</del>
-<a href="http://tools.ietf.org/html/bcp47#section-2.2.9">
-<ins class="diff-chg">section
-2.2.9
-Classes
-</ins>
-of
-<del class="diff-old">type
-IRI
-</del>
-<ins class="diff-chg">Conformance
-</ins>
-</a>
-<del class="diff-old">,
-readonly,
-nullable
-An
-optional
-datatype
-identified
-by
-a
-IRI
-.
-language
-</del>
-of
-<del class="diff-old">type
-DOMString
-,
-readonly,
-nullable
-An
-optional
-language
-tag
-as
-defined
-in
-</del>
-[
-<cite>
-<a class="bibref" href="#bib-BCP47">
-BCP47
-</a>
-</cite>
-],
-<ins class="diff-new">and
-is
-</ins>
-normalized
-to
-lowercase.
-</dd>
-<dt>
-<del class="diff-old">value
-of
-type
-DOMString
-</del>
-<dfn title="list" id="dfn-list">
-<ins class="diff-chg">list
-</ins></dfn>
-<del class="diff-old">,
-readonly
-</del>
-</dt>
-<dd>
-<del class="diff-old">The
-lexical
-form
-</del>
-<ins class="diff-chg">A
-</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
-list
-</ins></a><ins class="diff-chg">
-is
-an
-ordered
-sequence
-</ins>
-of
-<del class="diff-old">the
-Literal's
-value.
-</del>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<ins class="diff-chg">IRIs
-</ins></a>,<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
-JSON-LD
-values
-</ins></a>.
-</dd>
-</dl>
-</section>
-<section id="algorithm-terms">
-<h2>
-<span class="secno">
-<del class="diff-old">4.
-Algorithms
-All
-algorithms
-described
-in
-this
-section
-are
-intended
-to
-operate
-on
-language-native
-data
-structures.
-That
-is,
-the
-serialization
-to
-a
-text-based
-JSON
-document
-isn't
-required
-as
-input
-or
-output
-to
-any
-of
-these
-algorithms
-and
-language-native
-data
-structures
-must
-be
-used
-where
-applicable.
-4.1
-</del>
-<ins class="diff-chg">5.
-</ins>
-</span>
-Algorithm
-Terms
-</h2>
-<dl>
-<dt>
-<del class="diff-old">initial
-context
-</del>
-<dfn title="active-graph" id="dfn-active-graph">
-<ins class="diff-chg">active
-graph
-</ins>
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">a
-context
-that
-is
-specified
-to
-the
-algorithm
-before
-processing
-begins.
-</del>
-The
-<del class="diff-old">contents
-</del>
-<ins class="diff-chg">name
-</ins>
-of
-the
-<del class="diff-old">initial
-context
-is
-defined
-in
-Appendix
-A
-.
-active
-subject
-the
-</del>
-currently
-active
-<del class="diff-old">subject
-</del>
-<ins class="diff-chg">graph
-</ins>
-that
-the
-processor
-should
-use
-when
-processing.
-</dd>
-<dt>
-<dfn title="active-subject" id="dfn-active-subject">
-active
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">subject
-</ins>
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">the
-</del>
-<ins class="diff-chg">The
-</ins>
-currently
-active
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">subject
-</ins>
-that
-the
-processor
-should
-use
-when
-processing.
-<del class="diff-old">The
-active
-property
-is
-represented
-in
-the
-original
-lexical
-form,
-which
-is
-used
-for
-finding
-coercion
-mappings
-in
-the
-active
-context
-.
-</del>
-</dd>
-<dt>
-<dfn title="active-property" id="dfn-active-property">
-active
-<del class="diff-old">object
-</del>
-<ins class="diff-chg">property
-</ins>
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">the
-</del>
-<ins class="diff-chg">The
-</ins>
-currently
-active
-<del class="diff-old">object
-</del>
-<a class="tref internalDFN" title="property" href="#dfn-property">
-<ins class="diff-chg">property
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>
-that
-the
-processor
-should
-use
-when
-processing.
-</dd>
-<dt>
-<dfn title="active-context" id="dfn-active-context">
-active
-context
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">a
-</del>
-<ins class="diff-chg">A
-</ins>
-context
-that
-is
-used
-to
-resolve
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">terms
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-while
-the
-processing
-algorithm
-is
-running.
-<del class="diff-old">The
-active
-</del>
-</dd>
-<dt>
-<dfn title="local-context" id="dfn-local-context">
-<ins class="diff-chg">local
-</ins>
-context
-<del class="diff-old">is
-the
-</del>
-</dfn>
-</dt>
-<dd>
-<ins class="diff-chg">A
-</ins>
-context
-<del class="diff-old">contained
-</del>
-<ins class="diff-chg">that
-is
-specified
-</ins>
-within
-<ins class="diff-new">a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a>,<ins class="diff-new">
-specified
-via
-</ins>
-the
-<del class="diff-old">processor
-state
-</del>
-<code>
-<ins class="diff-chg">@context
-</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins>
-</a>.
-</dd>
-<dt>
-<dfn title="json-ld-input" id="dfn-json-ld-input">
-<ins class="diff-chg">JSON-LD
-input
-</ins></dfn></dt><dd><ins class="diff-chg">
-The
-JSON-LD
-data
-structure
-that
-is
-provided
-as
-input
-to
-the
-algorithm.
-</ins></dd><dt><dfn title="term" id="dfn-term"><ins class="diff-chg">
-term
-</ins></dfn></dt><dd><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-is
-a
-short
-word
-defined
-in
-a
-context
-that
-may
-be
-expanded
-to
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a></dd><dt><dfn title="compact-iri" id="dfn-compact-iri">
-compact
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">a
-</del>
-<ins class="diff-chg">A
-</ins>
-compact
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">is
-</del>
-has
-the
-form
-of
-<dfn title="prefix" id="dfn-prefix">
-prefix
-<del class="diff-old">and
-</del>
-</dfn>:
-<em>
-suffix
-</em>
-and
-is
-used
-as
-a
-way
-of
-expressing
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-without
-needing
-to
-define
-separate
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-definitions
-for
-each
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-contained
-within
-a
-common
-vocabulary
-identified
-by
-<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
-prefix
-</a>.
-</dd>
-<dt>
-<del class="diff-old">local
-context
-</del>
-<dfn title="node-object" id="dfn-node-object">
-<ins class="diff-chg">node
-object
-</ins>
-</dfn>
-</dt>
-<dd>
-<ins class="diff-new">A
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a><ins class="diff-new">
-represents
-zero
-or
-more
-properties
-of
-</ins>
-a
-<del class="diff-old">context
-that
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">node
-</ins></a><ins class="diff-chg">
-in
-the
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-JSON-LD
-graph
-</ins></a><ins class="diff-chg">
-serialized
-by
-the
-JSON-LD
-document.
-A
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>
-is
-<del class="diff-old">specified
-within
-</del>
-a
-<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
-<ins class="diff-chg">node
-object
-</ins></a><ins class="diff-chg">
-if
-it
-exists
-outside
-of
-the
-JSON-LD
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-and:
-</ins><ul><li><ins class="diff-chg">
-it
-does
-not
-contain
-the
-</ins><code><ins class="diff-chg">
-@value
-</ins></code>,<code><ins class="diff-chg">
-@list
-</ins></code>,<ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@set
-</ins></code><ins class="diff-chg">
-keywords,
-or
-</ins></li><li><ins class="diff-chg">
-it
-is
-not
-the
-top-most
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-<del class="diff-old">,
-specified
-via
-</del>
-</a>
-<ins class="diff-chg">in
-</ins>
-the
-<ins class="diff-new">JSON-LD
-document
-consisting
-of
-no
-other
-members
-than
-</ins>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">@graph
-</ins>
-</code>
-<del class="diff-old">keyword
-.
-</del>
-<ins class="diff-chg">and
-</ins><code><ins class="diff-chg">
-@context
-</ins></code>.</li></ul>
-</dd>
-<dt>
-<del class="diff-old">processor
-state
-</del>
-<dfn title="value-object" id="dfn-value-object">
-<ins class="diff-chg">value
-object
-</ins>
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">the
-processor
-state
-,
-which
-includes
-the
-active
-context
-,
-active
-subject
-,
-and
-active
-property
-.
-The
-processor
-state
-</del>
-<ins class="diff-chg">A
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins>
-</a>
-is
-<del class="diff-old">managed
-as
-a
-stack
-with
-elements
-from
-the
-previous
-processor
-state
-copied
-into
-a
-new
-processor
-state
-when
-entering
-</del>
-a
-<del class="diff-old">new
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-<del class="diff-old">.
-</del>
-</a>
-<ins class="diff-chg">that
-has
-an
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-member.
-</ins>
-</dd>
-<dt>
-<del class="diff-old">JSON-LD
-input
-</del>
-<dfn title="list-object" id="dfn-list-object">
-<ins class="diff-chg">list
-object
-</ins>
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">The
-JSON-LD
-data
-structure
-that
-</del>
-<ins class="diff-chg">A
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins></a>
-is
-<del class="diff-old">provided
-as
-input
-to
-the
-algorithm.
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-that
-has
-an
-</ins><code><ins class="diff-chg">
-@list
-</ins></code><ins class="diff-chg">
-member.
-</ins>
-</dd>
-<dt>
-<del class="diff-old">JSON-LD
-output
-</del>
-<dfn title="set-object" id="dfn-set-object">
-<ins class="diff-chg">set
-object
-</ins>
-</dfn>
-</dt>
-<dd>
-<del class="diff-old">The
-JSON-LD
-data
-structure
-that
-</del>
-<ins class="diff-chg">A
-</ins><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-chg">
-set
-object
-</ins></a>
-is
-<del class="diff-old">produced
-as
-output
-by
-the
-algorithm.
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-that
-has
-an
-</ins><code><ins class="diff-chg">
-@set
-</ins></code><ins class="diff-chg">
-member.
-</ins>
-</dd>
-<dt>
-<del class="diff-old">term
-</del>
-<dfn title="scalar" id="dfn-scalar">
-<ins class="diff-chg">scalar
-</ins>
-</dfn>
-</dt>
-<dd>
-A
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">scalar
-</ins>
-is
-<ins class="diff-new">either
-</ins>
-a
-<del class="diff-old">short
-word
-defined
-in
-a
-context
-that
-may
-be
-expanded
-to
-an
-IRI
-</del>
-<ins class="diff-chg">JSON
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,<a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-number
-</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>.
-</dd>
-<dt>
-<del class="diff-old">prefix
-</del>
-<dfn title="rdf-subject" id="dfn-rdf-subject">
-<ins class="diff-chg">RDF
-subject
-</ins>
-</dfn>
-</dt>
-<dd>
-A
-<del class="diff-old">prefix
-is
-a
-term
-</del>
-<a class="tref externalDFN" title="subject" href="http://www.w3.org/TR/rdf11-concepts/#dfn-subject">
-<ins class="diff-chg">subject
-</ins>
-</a>
-<del class="diff-old">that
-expands
-to
-a
-vocabulary
-base
-IRI
-.
-It
-is
-typically
-used
-along
-with
-a
-suffix
-to
-form
-a
-compact
-IRI
-</del>
-<ins class="diff-chg">as
-specified
-by
-[
-</ins><cite>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-new">RDF11-CONCEPTS
-</ins>
-</a>
-<del class="diff-old">to
-create
-an
-IRI
-within
-a
-vocabulary.
-</del>
-</cite>
-<ins class="diff-chg">].
-</ins>
-</dd>
-<dt>
-<del class="diff-old">language-tagged
-literal
-</del>
-<dfn title="rdf-predicate" id="dfn-rdf-predicate">
-<ins class="diff-chg">RDF
-predicate
-</ins>
-</dfn>
-</dt>
-<dd>
-A
-<del class="diff-old">language-tagged
-literal
-is
-a
-literal
-</del>
-<a class="tref externalDFN" title="predicate" href="http://www.w3.org/TR/rdf11-concepts/#dfn-predicate">
-<ins class="diff-chg">predicate
-</ins>
-</a>
-<del class="diff-old">without
-a
-datatype,
-including
-a
-language.
-See
-</del>
-<ins class="diff-chg">as
-specified
-by
-[
-</ins>
-<cite>
-<del class="diff-old">literal
-</del>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-chg">RDF11-CONCEPTS
-</ins>
-</a>
-</cite>
-<del class="diff-old">in
-</del>
-<ins class="diff-chg">].
-</ins></dd><dt><dfn title="rdf-object" id="dfn-rdf-object"><ins class="diff-chg">
-RDF
-object
-</ins></dfn></dt><dd><ins class="diff-chg">
-An
-</ins><a class="tref externalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object"><ins class="diff-chg">
-object
-</ins></a><ins class="diff-chg">
-as
-specified
-by
-</ins>
-[
-<cite>
-<del class="diff-old">RDF-CONCEPTS
-</del>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-chg">RDF11-CONCEPTS
-</ins>
-</a>
-</cite>
-].
-</dd>
-<dt>
-<del class="diff-old">typed
-literal
-</del>
-<dfn title="rdf-triple" id="dfn-rdf-triple">
-<ins class="diff-chg">RDF
-triple
-</ins>
-</dfn>
-</dt>
-<dd>
-A
-<del class="diff-old">typed
-literal
-is
-a
-literal
-with
-an
-associated
-IRI
-</del>
-<a class="tref externalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">
-<ins class="diff-chg">triple
-</ins>
-</a>
-<del class="diff-old">which
-indicates
-the
-literal's
-datatype.
-See
-</del>
-<ins class="diff-chg">as
-specified
-by
-[
-</ins>
-<cite>
-<del class="diff-old">language-tagged
-string
-</del>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-chg">RDF11-CONCEPTS
-</ins>
-</a>
-</cite>
-<del class="diff-old">in
-</del>
-<ins class="diff-chg">].
-</ins></dd><dt><dfn title="rdf-dataset" id="dfn-rdf-dataset"><ins class="diff-chg">
-RDF
-dataset
-</ins></dfn></dt><dd><ins class="diff-chg">
-A
-</ins><a class="tref externalDFN" title="dataset" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset"><ins class="diff-chg">
-dataset
-</ins></a><ins class="diff-chg">
-as
-specified
-by
-</ins>
-[
-<cite>
-<del class="diff-old">RDF-CONCEPTS
-</del>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-chg">RDF11-CONCEPTS
-</ins>
-</a>
-</cite>
-<del class="diff-old">].
-</del>
-<ins class="diff-chg">]
-representing
-a
-collection
-of
-</ins><a class="tref externalDFN" title="rdf-graphs" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-graph"><ins class="diff-chg">
-RDF
-graphs
-</ins></a>.
-</dd>
-</dl>
-</section>
-<section id="context-processing-algorithms">
-<h2>
-<span class="secno">
-<del class="diff-old">4.2
-</del>
-<ins class="diff-chg">6.
-</ins></span><ins class="diff-chg">
-Context
-Processing
-Algorithms
-</ins></h2><section id="context-processing-algorithm"><h3><span class="secno"><ins class="diff-chg">
-6.1
-</ins>
-</span>
-Context
-Processing
-<ins class="diff-new">Algorithm
-</ins>
-</h3>
-<p>
-<del class="diff-old">Processing
-of
-</del>
-<ins class="diff-chg">When
-processing
-a
-</ins>
-JSON-LD
-data
-<del class="diff-old">structure
-is
-managed
-recursively.
-During
-processing,
-</del>
-<ins class="diff-chg">structure,
-</ins>
-each
-<ins class="diff-new">processing
-</ins>
-rule
-is
-applied
-using
-information
-provided
-by
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>.
-<del class="diff-old">Processing
-begins
-by
-pushing
-a
-new
-processor
-state
-</del>
-<ins class="diff-chg">This
-section
-describes
-how
-to
-produce
-an
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>.</p><p><ins class="diff-chg">
-The
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins>
-</a>
-<del class="diff-old">onto
-</del>
-<ins class="diff-chg">contains
-</ins>
-the
-<del class="diff-old">processor
-state
-</del>
-<ins class="diff-chg">active
-</ins><dfn title="term-definition" id="dfn-term-definition"><ins class="diff-chg">
-term
-definitions
-</ins></dfn><ins class="diff-chg">
-which
-specify
-how
-properties
-and
-values
-have
-to
-be
-interpreted
-as
-well
-as
-the
-current
-</ins><dfn title="base-iri" id="dfn-base-iri"><ins class="diff-chg">
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></dfn>,<ins class="diff-chg">
-the
-</ins><dfn title="vocabulary-mapping" id="dfn-vocabulary-mapping"><ins class="diff-chg">
-vocabulary
-mapping
-</ins></dfn><ins class="diff-chg">
-and
-the
-</ins><dfn title="default-language" id="dfn-default-language"><ins class="diff-chg">
-default
-language
-</ins></dfn>.<ins class="diff-chg">
-Each
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins>
-</a>
-<del class="diff-old">stack
-</del>
-<ins class="diff-chg">consists
-of
-an
-</ins><dfn title="iri-mapping" id="dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></dfn>,<ins class="diff-chg">
-a
-boolean
-flag
-</ins><dfn title="reverse-property" id="dfn-reverse-property"><ins class="diff-chg">
-reverse
-property
-</ins></dfn>,<ins class="diff-chg">
-an
-optional
-</ins><dfn title="type-mapping" id="dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></dfn><ins class="diff-chg">
-or
-</ins><dfn title="language-mapping" id="dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></dfn>,
-and
-<del class="diff-old">initializing
-</del>
-<ins class="diff-chg">an
-optional
-</ins><dfn title="container-mapping" id="dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></dfn>.<ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-can
-not
-only
-be
-used
-to
-map
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-to
-an
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>,<ins class="diff-chg">
-but
-also
-to
-map
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-to
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>,<ins class="diff-chg">
-in
-which
-case
-it
-is
-referred
-to
-as
-a
-</ins><dfn title="keyword-alias" id="dfn-keyword-alias"><ins class="diff-chg">
-keyword
-alias
-</ins></dfn>.</p><p><ins class="diff-chg">
-When
-processing,
-</ins>
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-<del class="diff-old">with
-the
-initial
-context
-</del>
-<ins class="diff-chg">is
-initialized
-without
-any
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definitions
-</ins></a>,<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
-vocabulary
-mapping
-</ins></a>,<ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
-default
-language
-</ins>
-</a>.
-If
-a
-<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-local
-context
-</a>
-is
-<del class="diff-old">encountered,
-</del>
-<ins class="diff-chg">encountered
-during
-processing,
-a
-new
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-is
-created
-by
-cloning
-the
-existing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>.<ins class="diff-chg">
-Then
-the
-</ins>
-information
-from
-the
-<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-local
-context
-</a>
-is
-merged
-into
-the
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>.
-<ins class="diff-new">Given
-that
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
-local
-contexts
-</ins></a><ins class="diff-new">
-may
-contain
-references
-to
-remote
-contexts,
-this
-includes
-their
-retrieval.
-</ins>
-</p>
-<section class="informative">
-<h4 id="overview">
-<ins class="diff-new">Overview
-</ins></h4>
-<p>
-<del class="diff-old">The
-</del>
-<em>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-First
-we
-prepare
-a
-new
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-<del class="diff-old">is
-used
-for
-expanding
-properties
-and
-values
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i><ins class="diff-chg">
-by
-cloning
-the
-current
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>.<ins class="diff-chg">
-Then
-we
-normalize
-the
-form
-of
-the
-passed
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-Local
-contexts
-</ins></a><ins class="diff-chg">
-may
-be
-in
-the
-form
-</ins>
-of
-a
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-<del class="diff-old">(or
-elements
-of
-</del>
-</a>,
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,<ins class="diff-chg">
-or
-</ins>
-an
-<del class="diff-old">array)
-using
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a><ins class="diff-chg">
-containing
-</ins>
-a
-<del class="diff-old">term
-mapping
-.
-It
-</del>
-<ins class="diff-chg">combination
-of
-the
-two.
-Finally
-we
-process
-each
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-contained
-in
-the
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-as
-follows.
-</ins></p><p><ins class="diff-chg">
-If
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>
-is
-<del class="diff-old">also
-used
-to
-maintain
-coercion
-mapping
-s
-from
-terms
-to
-datatypes,
-language
-mapping
-s
-from
-terms
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,<ins class="diff-chg">
-it
-represents
-a
-reference
-</ins>
-to
-<del class="diff-old">language
-codes,
-and
-list
-mapping
-s
-</del>
-<ins class="diff-chg">a
-remote
-context.
-We
-dereference
-the
-remote
-context
-</ins>
-and
-<del class="diff-old">set
-mapping
-s
-for
-terms.
-Processors
-must
-use
-</del>
-<ins class="diff-chg">replace
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-with
-</ins>
-the
-<del class="diff-old">lexical
-form
-</del>
-<ins class="diff-chg">value
-</ins>
-of
-the
-<del class="diff-old">property
-when
-creating
-a
-mapping,
-as
-lookup
-</del>
-<code>
-<ins class="diff-chg">@context
-</ins></code><ins class="diff-chg">
-key
-of
-the
-top-level
-object
-in
-the
-retrieved
-JSON-LD
-document.
-If
-there's
-no
-such
-key,
-an
-invalid
-remote
-context
-has
-been
-detected.
-Otherwise,
-we
-process
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-by
-recursively
-using
-this
-algorithm
-ensuring
-that
-there
-</ins>
-is
-<del class="diff-old">performed
-on
-lexical
-forms,
-not
-expanded
-IRI
-representations.
-</del>
-<ins class="diff-chg">no
-cyclical
-reference.
-</ins>
-</p>
-<p>
-<del class="diff-old">A
-local
-</del>
-<ins class="diff-chg">If
-</ins><a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-is
-<del class="diff-old">identified
-within
-</del>
-a
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>,
-<ins class="diff-new">we
-first
-update
-the
-</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-new">
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>,<ins class="diff-new">
-the
-</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
-vocabulary
-mapping
-</ins></a>,<ins class="diff-new">
-and
-the
-</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-new">
-default
-language
-</ins>
-</a>
-<del class="diff-old">having
-a
-</del>
-<ins class="diff-chg">by
-processing
-three
-specific
-keywords:
-</ins>
-<code>
-<del class="diff-old">@context
-property
-with
-a
-string
-</del>
-<ins class="diff-chg">@base
-</ins></code>,<code><ins class="diff-chg">
-@vocab
-</ins></code>,<ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-@language
-</ins></code>.<ins class="diff-chg">
-These
-are
-handled
-before
-any
-other
-keys
-in
-the
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-because
-they
-affect
-how
-the
-other
-keys
-are
-processed.
-</ins></p><p><ins class="diff-chg">
-Then,
-for
-every
-other
-key
-in
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins>
-</a>,
-<del class="diff-old">array
-</del>
-<ins class="diff-chg">we
-update
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins>
-</a>
-<del class="diff-old">or
-a
-JSON
-object
-</del>
-<ins class="diff-chg">in
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.<ins class="diff-chg">
-Since
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definitions
-</ins>
-</a>
-<del class="diff-old">value.
-When
-processing
-</del>
-<ins class="diff-chg">in
-</ins>
-a
-<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-local
-context
-</a>
-<ins class="diff-new">may
-themselves
-contain
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-terms
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
-compact
-IRIs
-</ins>
-</a>,
-<del class="diff-old">special
-processing
-rules
-apply:
-</del>
-<ins class="diff-chg">we
-may
-need
-to
-recurse.
-When
-doing
-so,
-we
-must
-ensure
-that
-there
-is
-no
-cyclical
-dependency,
-which
-is
-an
-error.
-After
-we
-have
-processed
-any
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-dependencies,
-we
-update
-the
-current
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a>,<ins class="diff-chg">
-which
-may
-be
-a
-</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
-keyword
-alias
-</ins></a>.
-</p>
-<del class="diff-old">Create
-</del>
-<p>
-<ins class="diff-chg">Finally,
-we
-return
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-as
-the
-new
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>.</p></section><section><h4 id="algorithm"><ins class="diff-chg">
-Algorithm
-</ins></h4><p><ins class="diff-chg">
-This
-algorithm
-specifies
-how
-</ins>
-a
-<del class="diff-old">new,
-empty
-</del>
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-is
-updated
-with
-a
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-local
-context
-</a>.
-<del class="diff-old">Let
-context
-be
-the
-value
-of
-@context
-If
-</del>
-<ins class="diff-chg">The
-algorithm
-takes
-three
-input
-variables:
-an
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-</ins>
-context
-<del class="diff-old">equals
-null
-</del>
-</a>,
-<del class="diff-old">reset
-the
-active
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-</ins>
-context
-</a>,
-<ins class="diff-new">and
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins>
-</a>
-<i>
-<ins class="diff-new">remote
-contexts
-</ins></i><ins class="diff-new">
-which
-is
-used
-to
-detect
-cyclical
-context
-inclusions.
-If
-</ins><i><ins class="diff-new">
-remote
-contexts
-</ins></i><ins class="diff-new">
-is
-not
-passed,
-it
-is
-initialized
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>.</p><ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-result
-</ins></i>
-to
-the
-<del class="diff-old">initial
-</del>
-<ins class="diff-chg">result
-of
-cloning
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-</ins>
-context
-</a>.
-</li>
-<li>
-If
-<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-<ins class="diff-chg">local
-</ins>
-context
-</a>
-is
-<ins class="diff-new">not
-</ins>
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>,
-<del class="diff-old">process
-</del>
-<ins class="diff-chg">set
-it
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-containing
-only
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>.</li><li><ins class="diff-chg">
-For
-</ins>
-each
-<del class="diff-old">element
-as
-</del>
-<ins class="diff-chg">item
-</ins><i>
-context
-</i>
-in
-<del class="diff-old">order
-by
-starting
-at
-Step
-2.1
-.
-</del>
-<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-<ins class="diff-chg">local
-context
-</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-set
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-a
-newly-initialized
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-and
-continue
-with
-the
-next
-</ins><i><ins class="diff-chg">
-context
-</ins></i>.
-</li>
-<li>
-If
-<i>
-context
-</i>
-is
-a
-<a class="tref internalDFN" title="string" href="#dfn-string">
-string
-</a>,
-<del class="diff-old">it
-must
-have
-</del>
-<ol class="algorithm">
-<li>
-<ins class="diff-chg">Set
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-resolving
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-against
-the
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-which
-is
-established
-as
-specified
-in
-</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1"><ins class="diff-chg">
-section
-5.1
-Establishing
-</ins>
-a
-<del class="diff-old">lexical
-form
-</del>
-<ins class="diff-chg">Base
-URI
-</ins></a></cite>
-of
-<del class="diff-old">absolute
-</del>
-<ins class="diff-chg">[
-</ins><cite><a class="bibref" href="#bib-RFC3986"><ins class="diff-chg">
-RFC3986
-</ins></a></cite><ins class="diff-chg">
-].
-Only
-the
-basic
-algorithm
-in
-</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-5.2"><ins class="diff-chg">
-section
-5.2
-</ins></a></cite><ins class="diff-chg">
-of
-[
-</ins><cite><a class="bibref" href="#bib-RFC3986"><ins class="diff-chg">
-RFC3986
-</ins></a></cite><ins class="diff-chg">
-]
-is
-used;
-neither
-</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.2"><ins class="diff-chg">
-Syntax-Based
-Normalization
-</ins></a></cite><ins class="diff-chg">
-nor
-</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.3"><ins class="diff-chg">
-Scheme-Based
-Normalization
-</ins></a></cite><ins class="diff-chg">
-are
-performed.
-Characters
-additionally
-allowed
-in
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<ins class="diff-new">references
-are
-treated
-in
-the
-same
-way
-that
-unreserved
-characters
-are
-treated
-in
-URI
-references,
-per
-</ins><cite><a href="http://tools.ietf.org/html/rfc3987#section-6.5"><ins class="diff-new">
-section
-6.5
-</ins></a></cite><ins class="diff-new">
-of
-[
-</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-new">
-RFC3987
-</ins></a></cite><ins class="diff-new">
-].
-</ins></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-context
-</ins></i><ins class="diff-new">
-is
-in
-the
-</ins><i><ins class="diff-new">
-remote
-contexts
-</ins></i><ins class="diff-new">
-array,
-a
-</ins><code class="error">
-<a href="#idl-def-JsonLdErrorCode.recursive-context-inclusion">
-<ins class="diff-new">recursive
-context
-inclusion
-</ins></a></code><ins class="diff-new">
-error
-has
-been
-detected
-and
-processing
-is
-aborted;
-otherwise,
-add
-</ins><i><ins class="diff-new">
-context
-</ins></i><ins class="diff-new">
-to
-</ins><i><ins class="diff-new">
-remote
-contexts
-</ins></i>.</li><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-context
-no
-base
-</ins></i><ins class="diff-new">
-to
-the
-result
-of
-cloning
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins>
-</a>.
-</li>
-<li>
-<del class="diff-old">Dereference
-</del>
-<ins class="diff-chg">Remove
-the
-</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-of
-</ins><i>
-context
-<del class="diff-old">.
-</del>
-<ins class="diff-chg">no
-base
-</ins></i>.
-</li>
-<li>
-<ins class="diff-new">Dereference
-</ins><i><ins class="diff-new">
-context
-</ins></i>.
-If
-the
-<del class="diff-old">resulting
-</del>
-<ins class="diff-chg">dereferenced
-</ins>
-document
-<del class="diff-old">is
-a
-JSON
-document,
-extract
-the
-</del>
-<ins class="diff-chg">has
-no
-</ins>
-top-level
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-new">JSON
-object
-</ins></a><ins class="diff-new">
-with
-an
-</ins>
-<code>
-@context
-</code>
-<del class="diff-old">element
-using
-the
-JSON
-Pointer
-&quot;/@context&quot;
-as
-described
-in
-[
-</del>
-<ins class="diff-chg">member,
-an
-</ins><code class="error">
-<del class="diff-old">JSON-POINTER
-</del>
-<a href="#idl-def-JsonLdErrorCode.invalid-remote-context">
-<ins class="diff-chg">invalid
-remote
-context
-</ins>
-</a>
-<del class="diff-old">].
-</del>
-</code>
-<ins class="diff-chg">has
-been
-detected
-and
-processing
-is
-aborted;
-otherwise,
-set
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-to
-the
-value
-of
-that
-member.
-</ins></li><li>
-Set
-<i>
-context
-</i>
-to
-the
-<del class="diff-old">extracted
-content
-</del>
-<ins class="diff-chg">result
-of
-recursively
-calling
-this
-algorithm,
-passing
-</ins><i><ins class="diff-chg">
-context
-no
-base
-</ins></i><ins class="diff-chg">
-for
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-for
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>,
-and
-<del class="diff-old">process
-it
-by
-starting
-at
-Step
-2.1
-.
-</del>
-<i>
-<ins class="diff-chg">remote
-contexts
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-has
-no
-</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-but
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-does,
-set
-the
-</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-to
-the
-one
-of
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li><li><ins class="diff-chg">
-Overwrite
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-with
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-and
-continue
-with
-the
-next
-</ins><i><ins class="diff-chg">
-context
-</ins></i>.
-</li>
-</ol>
-</li>
-<li>
-If
-<i>
-context
-</i>
-is
-<ins class="diff-new">not
-</ins>
-a
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>,
-<del class="diff-old">perform
-the
-following
-steps:
-</del>
-<ins class="diff-chg">an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-local-context"><ins class="diff-chg">
-invalid
-local
-context
-</ins></a></code><ins class="diff-chg">
-error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li>
-<li>
-If
-<i>
-context
-</i>
-has
-<del class="diff-old">a
-</del>
-<ins class="diff-chg">an
-</ins>
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@base
-</ins>
-</code>
-<del class="diff-old">property,
-it
-must
-have
-a
-value
-of
-a
-simple
-string
-</del>
-<ins class="diff-chg">key:
-</ins><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-chg">
-Feature
-at
-Risk
-1
-</ins></span>:<ins class="diff-chg">
-@base
-keyword
-</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-chg">
-Note:
-This
-feature
-is
-</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-chg">
-&quot;at
-risk&quot;
-</ins>
-</a>
-<del class="diff-old">or
-null
-</del>
-<ins class="diff-chg">and
-may
-be
-removed
-from
-this
-specification
-based
-on
-feedback.
-Please
-send
-feedback
-to
-</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-chg">
-public-rdf-comments@w3.org
-</ins>
-</a>.
-<del class="diff-old">Add
-</del>
-<ins class="diff-chg">For
-</ins>
-the
-<del class="diff-old">language
-to
-</del>
-<ins class="diff-chg">current
-status
-see
-</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
-features
-&quot;at
-risk&quot;
-in
-JSON-LD
-1.0
-</ins></a></p><p><ins class="diff-chg">
-Support
-for
-</ins>
-the
-<del class="diff-old">local
-context
-.
-Otherwise,
-</del>
-<code>
-<ins class="diff-chg">@base
-</ins></code><ins class="diff-chg">
-keyword
-might
-be
-removed
-from
-JSON-LD
-1.0
-if
-implementation
-experience
-reveals
-that
-the
-fact
-that
-a
-document
-may
-have
-multiple
-base
-IRIs
-is
-confusing
-</ins>
-for
-<del class="diff-old">each
-property
-in
-context
-perform
-</del>
-<ins class="diff-chg">developers.
-It
-is
-also
-being
-discussed
-whether
-relative
-IRIs
-are
-allowed
-as
-values
-of
-</ins><code><ins class="diff-chg">
-@base
-</ins></code><ins class="diff-chg">
-or
-whether
-</ins>
-the
-<del class="diff-old">following
-steps:
-</del>
-<ins class="diff-chg">empty
-string
-should
-be
-used
-to
-explicitly
-specify
-that
-there
-isn't
-a
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>,<ins class="diff-chg">
-which
-could
-be
-used
-to
-ensure
-that
-relative
-IRIs
-remain
-relative
-when
-expanding.
-</ins></p></div></div>
-<ol class="algorithm">
-<li>
-<ins class="diff-new">Initialize
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-to
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-new">
-@base
-</ins></code><ins class="diff-new">
-key.
-</ins></li><li>
-If
-<i>
-<ins class="diff-new">value
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-remove
-</ins>
-the
-<del class="diff-old">property's
-</del>
-<a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">
-<ins class="diff-chg">base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i>
-value
-</i>
-is
-<del class="diff-old">a
-simple
-string
-</del>
-<ins class="diff-chg">an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>,
-<del class="diff-old">determine
-</del>
-the
-<a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">
-<ins class="diff-new">base
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">mapping
-</del>
-</a>
-<ins class="diff-chg">of
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-is
-set
-to
-</ins><i>
-value
-<del class="diff-old">by
-performing
-</del>
-</i>.
-<ins class="diff-chg">If
-it
-is
-not
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>,
-<ins class="diff-new">an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-base-IRI"><ins class="diff-new">
-invalid
-base
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">Expansion
-</del>
-</a>
-<del class="diff-old">on
-</del>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li></ol></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-has
-an
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code><ins class="diff-chg">
-key:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<ins class="diff-new">value
-</ins>
-associated
-<del class="diff-old">value.
-If
-</del>
-<ins class="diff-chg">with
-</ins>
-the
-<code>
-<ins class="diff-new">@vocab
-</ins></code><ins class="diff-new">
-key.
-</ins></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-remove
-any
-</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
-vocabulary
-mapping
-</ins></a><ins class="diff-new">
-from
-</ins><i>
-result
-<del class="diff-old">of
-the
-</del>
-</i>.
-</li>
-<li>
-<ins class="diff-chg">Otherwise,
-if
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>,
-<ins class="diff-new">the
-</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
-vocabulary
-</ins>
-mapping
-</a>
-<ins class="diff-new">of
-</ins><i><ins class="diff-new">
-result
-</ins></i><ins class="diff-new">
-is
-set
-to
-</ins><i><ins class="diff-new">
-value
-</ins></i>.<ins class="diff-new">
-If
-it
-</ins>
-is
-<ins class="diff-new">not
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>,
-<del class="diff-old">merge
-the
-property
-into
-the
-local
-context
-term
-</del>
-<ins class="diff-chg">an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-vocab-mapping"><ins class="diff-chg">
-invalid
-vocab
-</ins>
-mapping
-<del class="diff-old">,
-unless
-the
-property
-</del>
-</a>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-</ins>
-is
-<del class="diff-old">a
-JSON-LD
-keyword
-,
-in
-which
-case
-throw
-an
-exception.
-</del>
-<ins class="diff-chg">aborted.
-</ins></li></ol>
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-has
-an
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-key:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<del class="diff-old">property's
-</del>
-value
-<ins class="diff-new">associated
-with
-the
-</ins><code><ins class="diff-new">
-@language
-</ins></code><ins class="diff-new">
-key.
-</ins></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-value
-</ins></i>
-is
-<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>,
-remove
-<del class="diff-old">mapping,
-coercion,
-container
-and
-</del>
-<ins class="diff-chg">any
-</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
-default
-</ins>
-language
-<del class="diff-old">information
-associated
-with
-property
-</del>
-</a>
-from
-<del class="diff-old">the
-local
-context
-.
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i>.
-</li>
-<li>
-Otherwise,
-<ins class="diff-new">if
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-string
-</ins></a>,
-the
-<del class="diff-old">property
-'s
-</del>
-<a class="tref internalDFN" title="default-language" href="#dfn-default-language">
-<ins class="diff-chg">default
-language
-</ins></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-is
-set
-to
-lowercased
-</ins><i>
-value
-<del class="diff-old">must
-be
-a
-JSON
-object
-.
-</del>
-</i>.
-If
-<del class="diff-old">the
-property
-</del>
-<ins class="diff-chg">it
-</ins>
-is
-<ins class="diff-new">not
-</ins>
-a
-<del class="diff-old">JSON-LD
-keyword
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">string
-</ins></a>,<ins class="diff-chg">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-default-language"><ins class="diff-chg">
-invalid
-default
-language
-</ins>
-</a>
-</code>
-<ins class="diff-new">error
-has
-been
-detected
-</ins>
-and
-<del class="diff-old">the
-value
-</del>
-<ins class="diff-chg">processing
-is
-aborted.
-</ins></li></ol></li><li><ins class="diff-chg">
-Create
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-to
-use
-to
-keep
-track
-of
-whether
-or
-not
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>
-has
-<ins class="diff-new">already
-been
-defined
-or
-currently
-being
-defined
-during
-recursion.
-</ins></li><li><ins class="diff-new">
-For
-each
-</ins><i><ins class="diff-new">
-key
-</ins></i><ins class="diff-new">
--
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-pair
-in
-</ins><i><ins class="diff-new">
-context
-</ins></i><ins class="diff-new">
-where
-</ins><i><ins class="diff-new">
-key
-</ins></i><ins class="diff-new">
-is
-not
-</ins>
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">@base
-</ins>
-</code>,
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@vocab
-</ins></code>,
-or
-<code>
-<del class="diff-old">@type
-properties,
-throw
-an
-exception.
-</del>
-<ins class="diff-chg">@language
-</ins></code>,<ins class="diff-chg">
-invoke
-the
-</ins><a href="#create-term-definition"><ins class="diff-chg">
-Create
-Term
-Definition
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-for
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-for
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>,<i><ins class="diff-chg">
-key
-</ins></i>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-defined
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Return
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li></ol></section></section><section id="create-term-definition"><h3>
-<del class="diff-old">Issue
-5
-</del>
-<span class="secno">
-<ins class="diff-chg">6.2
-</ins>
-</span>
-<del class="diff-old">Undecided
-if
-@type
-or
-@graph
-can
-take
-</del>
-<ins class="diff-chg">Create
-Term
-Definition
-</ins></h3><p><ins class="diff-chg">
-This
-algorithm
-is
-called
-from
-the
-</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
-Context
-Processing
-algorithm
-</ins></a><ins class="diff-chg">
-to
-create
-</ins>
-a
-<del class="diff-old">@container
-with
-@set
-.
-If
-</del>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-<ins class="diff-chg">term
-definition
-</ins></a><ins class="diff-chg">
-in
-</ins>
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-new">active
-context
-</ins></a><ins class="diff-new">
-for
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-being
-processed
-in
-a
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
-local
-context
-</ins></a>.</p><section class="informative"><h4 id="overview-1"><ins class="diff-new">
-Overview
-</ins></h4><p>
-<em>
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins>
-</em>
-<del class="diff-old">has
-</del>
-</p>
-<p>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-<ins class="diff-chg">Term
-definitions
-</ins></a><ins class="diff-chg">
-are
-created
-by
-parsing
-</ins>
-the
-<del class="diff-old">form
-of
-</del>
-<ins class="diff-chg">information
-in
-the
-given
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-for
-the
-given
-</ins>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-<del class="diff-old">,
-its
-value
-must
-have
-an
-@id
-property
-with
-a
-string
-value
-which
-must
-have
-</del>
-</a>.
-<ins class="diff-chg">If
-</ins>
-the
-<del class="diff-old">form
-of
-a
-</del>
-<ins class="diff-chg">given
-</ins>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-<del class="diff-old">,
-</del>
-</a>
-<ins class="diff-chg">is
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-compact
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>,
-<del class="diff-old">or
-absolute
-IRI
-</del>
-<ins class="diff-chg">it
-may
-omit
-an
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<del class="diff-old">.
-Determine
-the
-</del>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-mapping
-</a>
-by
-<del class="diff-old">performing
-IRI
-Expansion
-</del>
-<ins class="diff-chg">depending
-on
-its
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
-prefix
-</ins></a><ins class="diff-chg">
-having
-its
-own
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a>.<ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
-prefix
-</ins></a><ins class="diff-chg">
-is
-a
-key
-in
-the
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>,<ins class="diff-chg">
-then
-its
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins>
-</a>
-<ins class="diff-new">must
-first
-be
-created,
-through
-recursion,
-before
-continuing.
-Because
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
-term
-definition
-</ins></a><ins class="diff-new">
-can
-depend
-</ins>
-on
-<ins class="diff-new">other
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
-term
-definitions
-</ins></a>,<ins class="diff-new">
-a
-mechanism
-must
-be
-used
-to
-detect
-cyclical
-dependencies.
-The
-solution
-employed
-here
-uses
-a
-map,
-</ins><i><ins class="diff-new">
-defined
-</ins></i>,<ins class="diff-new">
-that
-keeps
-track
-of
-whether
-or
-not
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-has
-been
-defined
-or
-is
-currently
-in
-</ins>
-the
-<del class="diff-old">associated
-value.
-If
-</del>
-<ins class="diff-chg">process
-of
-being
-defined.
-This
-map
-is
-checked
-before
-any
-recursion
-is
-attempted.
-</ins></p><p><ins class="diff-chg">
-After
-all
-dependencies
-for
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-have
-been
-defined,
-</ins>
-the
-<del class="diff-old">result
-</del>
-<ins class="diff-chg">rest
-</ins>
-of
-the
-<del class="diff-old">IRI
-mapping
-</del>
-<ins class="diff-chg">information
-in
-the
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-for
-the
-given
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>
-is
-<del class="diff-old">an
-absolute
-</del>
-<ins class="diff-chg">taken
-into
-account,
-creating
-the
-appropriate
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<ins class="diff-chg">mapping
-</ins>
-</a>,
-<del class="diff-old">merge
-the
-property
-into
-</del>
-<a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">
-<ins class="diff-chg">container
-mapping
-</ins></a>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-for
-</ins>
-the
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a>.</p></section><section><h4 id="algorithm-1"><ins class="diff-chg">
-Algorithm
-</ins></h4><p><ins class="diff-chg">
-The
-algorithm
-has
-four
-required
-inputs
-which
-are:
-an
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-local
-context
-</a>,
-<ins class="diff-chg">a
-</ins><i>
-term
-<del class="diff-old">mapping
-.
-</del>
-</i>,
-<ins class="diff-chg">and
-a
-map
-</ins><i><ins class="diff-chg">
-defined
-</ins></i>.</p><ol class="algorithm">
-<li>
-If
-<i>
-<ins class="diff-new">defined
-</ins></i><ins class="diff-new">
-contains
-</ins>
-the
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">key
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-and
-the
-associated
-value
-is
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-(indicating
-that
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a>
-has
-<ins class="diff-new">already
-been
-created),
-return.
-Otherwise,
-if
-</ins>
-the
-<del class="diff-old">form
-of
-of
-</del>
-<ins class="diff-chg">value
-is
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>,
-a
-<del class="diff-old">compact
-</del>
-<code class="error">
-<a href="#idl-def-JsonLdErrorCode.cyclic-IRI-mapping">
-<ins class="diff-chg">cyclic
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<ins class="diff-new">mapping
-</ins></a>
-</code>
-<ins class="diff-new">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-new">
-Set
-the
-value
-associated
-with
-</ins><i><ins class="diff-new">
-defined
-</ins></i><ins class="diff-new">
-'s
-</ins><i><ins class="diff-new">
-term
-</ins></i><ins class="diff-new">
-key
-to
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
-false
-</ins></a>.<ins class="diff-new">
-This
-indicates
-that
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
-term
-definition
-</ins>
-</a>
-<del class="diff-old">or
-absolute
-IRI
-</del>
-<ins class="diff-chg">is
-now
-being
-created
-but
-is
-not
-yet
-complete.
-</ins></li><li><ins class="diff-chg">
-Since
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a><ins class="diff-chg">
-cannot
-be
-overridden,
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-must
-not
-be
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>.<ins class="diff-chg">
-Otherwise,
-a
-</ins><code class="error">
-<del class="diff-old">,
-</del>
-<a href="#idl-def-JsonLdErrorCode.keyword-redefinition">
-<ins class="diff-chg">keyword
-redefinition
-</ins></a></code><ins class="diff-chg">
-error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Remove
-any
-existing
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>.</li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-value
-<del class="diff-old">may
-have
-</del>
-<ins class="diff-chg">associated
-with
-the
-key
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-or
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-</ins>
-a
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-new">JSON
-object
-</ins></a><ins class="diff-new">
-containing
-the
-key-value
-pair
-</ins>
-<code>
-@id
-</code>
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">-
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-set
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-set
-the
-value
-associated
-</ins>
-with
-<i>
-<ins class="diff-new">defined
-</ins></i><ins class="diff-new">
-'s
-key
-</ins><i><ins class="diff-new">
-term
-</ins></i><ins class="diff-new">
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a>,<ins class="diff-new">
-and
-return.
-</ins></li><li><ins class="diff-new">
-Otherwise,
-if
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-is
-</ins>
-a
-<a class="tref internalDFN" title="string" href="#dfn-string">
-string
-</a>:
-<ol class="algorithm">
-<li>
-<ins class="diff-new">Expand
-</ins><i>
-value
-<del class="diff-old">which
-must
-have
-</del>
-</i>
-<ins class="diff-chg">by
-setting
-it
-to
-</ins>
-the
-<del class="diff-old">form
-</del>
-<ins class="diff-chg">result
-</ins>
-of
-<del class="diff-old">a
-term
-,
-compact
-IRI
-,
-or
-absolute
-IRI
-.
-Determine
-</del>
-<ins class="diff-chg">using
-</ins>
-the
-<del class="diff-old">IRI
-mapping
-by
-performing
-</del>
-<a href="#iri-expansion">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-Expansion
-<ins class="diff-new">algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<i><ins class="diff-new">
-value
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins>
-</a>
-<del class="diff-old">on
-the
-associated
-value.
-</del>
-<ins class="diff-chg">for
-</ins><i><ins class="diff-chg">
-vocab
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-document
-relative
-</ins></i>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-defined
-</ins></i>.</li><li>
-If
-<del class="diff-old">the
-result
-of
-the
-IRI
-mapping
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i>
-is
-<code>
-<ins class="diff-new">@context
-</ins></code>,
-an
-<del class="diff-old">absolute
-</del>
-<code class="error">
-<a href="#idl-def-JsonLdErrorCode.invalid-keyword-alias">
-<ins class="diff-chg">invalid
-keyword
-alias
-</ins></a></code><ins class="diff-chg">
-error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Set
-the
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">,
-merge
-the
-property
-into
-</del>
-<ins class="diff-chg">mapping
-</ins></a><ins class="diff-chg">
-for
-</ins>
-the
-<del class="diff-old">local
-</del>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-<ins class="diff-chg">term
-definition
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-</ins>
-context
-</a>
-<ins class="diff-chg">to
-</ins><i><ins class="diff-chg">
-value
-</ins></i>,<ins class="diff-chg">
-set
-the
-value
-associated
-with
-</ins><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-'s
-key
-</ins><i>
-term
-<del class="diff-old">mapping
-.
-</del>
-</i>
-<ins class="diff-chg">to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<ins class="diff-chg">
-and
-return.
-</ins></li></ol>
-</li>
-<li>
-<del class="diff-old">If
-the
-</del>
-<ins class="diff-chg">Otherwise,
-</ins><i>
-value
-</i>
-<ins class="diff-chg">must
-be
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>,<ins class="diff-chg">
-if
-not,
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-term-definition"><ins class="diff-chg">
-invalid
-term
-definition
-</ins></a></code><ins class="diff-chg">
-error
-</ins>
-has
-<ins class="diff-new">been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-new">
-Create
-</ins>
-a
-<ins class="diff-new">new
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
-term
-definition
-</ins></a>,<i><ins class="diff-new">
-definition
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-contains
-the
-key
-</ins><code><ins class="diff-new">
-@reverse
-</ins></code>:<ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-contains
-an
-</ins><code><ins class="diff-new">
-@id
-</ins></code>,<ins class="diff-new">
-an
-</ins>
-<code>
-@type
-</code>,
-<ins class="diff-new">or
-an
-</ins><code><ins class="diff-new">
-@language
-</ins></code>,<ins class="diff-new">
-member,
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property"><ins class="diff-new">
-invalid
-reverse
-property
-</ins></a>
-</code>
-<del class="diff-old">property,
-its
-</del>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-If
-the
-</ins>
-value
-<del class="diff-old">must
-have
-</del>
-<ins class="diff-chg">associated
-with
-</ins>
-the
-<del class="diff-old">form
-of
-</del>
-<code>
-<ins class="diff-chg">@reverse
-</ins></code><ins class="diff-chg">
-key
-is
-not
-</ins>
-a
-<del class="diff-old">term
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">string
-</ins>
-</a>,
-<del class="diff-old">compact
-IRI
-</del>
-<ins class="diff-chg">an
-</ins><code class="error">
-<del class="diff-old">,
-absolute
-</del>
-<a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">
-<ins class="diff-chg">invalid
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">,
-or
-the
-keyword
-</del>
-<ins class="diff-chg">mapping
-</ins>
-</a>
-<del class="diff-old">@id
-.
-Determine
-</del>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Otherwise,
-set
-</ins>
-the
-<a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">by
-performing
-</del>
-<ins class="diff-chg">mapping
-</ins></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-using
-the
-</ins>
-<a href="#iri-expansion">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-Expansion
-<del class="diff-old">on
-</del>
-<ins class="diff-chg">algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,
-the
-<ins class="diff-new">value
-</ins>
-associated
-<del class="diff-old">value.
-</del>
-<ins class="diff-chg">with
-the
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-key
-for
-</ins><i><ins class="diff-chg">
-value
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-vocab
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-document
-relative
-</ins></i>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-defined
-</ins></i>.
-If
-the
-result
-<del class="diff-old">of
-the
-IRI
-mapping
-</del>
-is
-<ins class="diff-new">not
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>,
-<ins class="diff-new">i.e.,
-it
-contains
-no
-colon
-(
-</ins><code>:</code><ins class="diff-new">
-),
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping"><ins class="diff-new">
-invalid
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-mapping
-</ins>
-</a>
-<del class="diff-old">or
-@id
-,
-merge
-into
-</del>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Set
-</ins>
-the
-<del class="diff-old">local
-context
-coercion
-</del>
-<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
-<ins class="diff-chg">type
-</ins>
-mapping
-</a>
-<del class="diff-old">using
-the
-lexical
-value
-</del>
-of
-<del class="diff-old">the
-property
-.
-</del>
-<i>
-<ins class="diff-chg">definition
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@id
-</ins></code>.
-</li>
-<li>
-If
-<del class="diff-old">the
-</del>
-<i>
-value
-<del class="diff-old">has
-a
-</del>
-</i>
-<ins class="diff-chg">contains
-an
-</ins>
-<code>
-@container
-</code>
-<del class="diff-old">property,
-its
-value
-must
-be
-</del>
-<ins class="diff-chg">member,
-set
-the
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-to
-</ins>
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@index
-</ins>
-</code>
-<del class="diff-old">or
-@set
-.
-Merge
-</del>
-<ins class="diff-chg">if
-that
-is
-</ins>
-the
-<del class="diff-old">list
-mapping
-</del>
-<ins class="diff-chg">value
-of
-the
-</ins><code><ins class="diff-chg">
-@container
-</ins></code><ins class="diff-chg">
-member;
-otherwise
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property"><ins class="diff-chg">
-invalid
-reverse
-property
-</ins>
-</a>
-<del class="diff-old">or
-set
-mapping
-</del>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-(reverse
-properties
-only
-support
-index-containers)
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Set
-the
-</ins><a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property"><ins class="diff-chg">
-reverse
-property
-</ins>
-</a>
-<del class="diff-old">into
-</del>
-<ins class="diff-chg">flag
-of
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>.</li><li><ins class="diff-chg">
-Set
-</ins>
-the
-<del class="diff-old">local
-</del>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-<ins class="diff-chg">term
-definition
-</ins></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-</ins>
-context
-</a>
-<del class="diff-old">using
-</del>
-<ins class="diff-chg">to
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-and
-</ins>
-the
-<del class="diff-old">lexical
-</del>
-value
-<del class="diff-old">of
-</del>
-<ins class="diff-chg">associated
-with
-</ins><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-'s
-key
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-and
-return.
-</ins></li></ol></li><li><ins class="diff-chg">
-Set
-</ins>
-the
-<a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">
-<ins class="diff-chg">reverse
-</ins>
-property
-<del class="diff-old">.
-</del>
-</a>
-<ins class="diff-chg">flag
-of
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>.
-</li>
-<li>
-If
-<del class="diff-old">the
-</del>
-<i>
-value
-<del class="diff-old">has
-a
-@language
-property
-but
-no
-</del>
-</i>
-<ins class="diff-chg">contains
-the
-key
-</ins>
-<code>
-<del class="diff-old">@type
-property,
-</del>
-<ins class="diff-chg">@id
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins>
-the
-value
-<del class="diff-old">of
-</del>
-<ins class="diff-chg">associated
-with
-</ins>
-the
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@id
-</ins>
-</code>
-<del class="diff-old">property
-must
-be
-</del>
-<ins class="diff-chg">key
-is
-not
-</ins>
-a
-<a class="tref internalDFN" title="string" href="#dfn-string">
-string
-</a>,
-<ins class="diff-new">an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping"><ins class="diff-new">
-invalid
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-mapping
-</ins>
-</a>
-<del class="diff-old">or
-null
-.
-Merge
-</del>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Otherwise,
-set
-</ins>
-the
-<del class="diff-old">language
-</del>
-<a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr>
-mapping
-</a>
-<del class="diff-old">into
-</del>
-<ins class="diff-chg">of
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<del class="diff-old">local
-context
-</del>
-<ins class="diff-chg">result
-of
-</ins>
-using
-the
-<del class="diff-old">lexical
-</del>
-<a href="#iri-expansion">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr><ins class="diff-chg">
-Expansion
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<ins class="diff-chg">
-the
-</ins>
-value
-<del class="diff-old">of
-</del>
-<ins class="diff-chg">associated
-with
-</ins>
-the
-<del class="diff-old">property
-.
-</del>
-<code>
-<ins class="diff-chg">@id
-</ins></code><ins class="diff-chg">
-key
-for
-</ins><i><ins class="diff-chg">
-value
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-vocab
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-document
-relative
-</ins></i>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-defined
-</ins></i>.
-</li>
-</ol>
-</li>
-<li>
-<del class="diff-old">Merge
-</del>
-<ins class="diff-chg">Otherwise
-if
-</ins>
-the
-<i>
-<ins class="diff-chg">term
-</ins></i><ins class="diff-chg">
-contains
-a
-colon
-(
-</ins><code>:</code><ins class="diff-chg">
-):
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-with
-a
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
-prefix
-</ins></a><ins class="diff-chg">
-that
-is
-a
-key
-in
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-local
-context
-</a>
-<del class="diff-old">into
-the
-</del>
-<ins class="diff-chg">a
-dependency
-has
-been
-found.
-Use
-this
-algorithm
-recursively
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-<del class="diff-old">.
-</del>
-</a>,
-<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-<ins class="diff-chg">local
-context
-</ins></a>,<ins class="diff-chg">
-the
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
-prefix
-</ins></a><ins class="diff-chg">
-as
-</ins><i><ins class="diff-chg">
-term
-</ins></i>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-defined
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Repeat
-Step
-2.4.2
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-'s
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
-prefix
-</ins>
-</a>
-<del class="diff-old">until
-no
-entries
-are
-added
-to
-the
-local
-</del>
-<ins class="diff-chg">has
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-</ins>
-context
-<del class="diff-old">.
-Note
-</del>
-</a>,
-<ins class="diff-chg">set
-the
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<del class="diff-old">It
-can
-be
-difficult
-to
-distinguish
-between
-a
-compact
-</del>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<ins class="diff-new">mapping
-</ins></a><ins class="diff-new">
-of
-</ins><i><ins class="diff-new">
-definition
-</ins></i><ins class="diff-new">
-to
-the
-result
-of
-concatenating
-the
-value
-associated
-with
-the
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-new">
-prefix
-</ins></a><ins class="diff-new">
-'s
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-new">IRI
-</ins></abbr><ins class="diff-new">
-mapping
-</ins>
-</a>
-and
-<ins class="diff-new">the
-</ins><i><ins class="diff-new">
-term
-</ins></i><ins class="diff-new">
-'s
-</ins><i><ins class="diff-new">
-suffix
-</ins></i>.</li><li><ins class="diff-new">
-Otherwise,
-</ins><i><ins class="diff-new">
-term
-</ins></i><ins class="diff-new">
-is
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">,
-as
-a
-compact
-</del>
-</a>.
-<ins class="diff-chg">Set
-the
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<ins class="diff-chg">mapping
-</ins>
-</a>
-<del class="diff-old">may
-seem
-</del>
-<ins class="diff-chg">of
-</ins><i><ins class="diff-chg">
-definition
-</ins></i>
-to
-<del class="diff-old">be
-</del>
-<i>
-<ins class="diff-chg">term
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-has
-</ins>
-a
-<del class="diff-old">valid
-IRI
-scheme
-.
-When
-performing
-repeated
-</del>
-<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">
-<ins class="diff-chg">vocabulary
-mapping
-</ins></a>,<ins class="diff-chg">
-the
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">expansion,
-a
-</del>
-<ins class="diff-chg">mapping
-</ins></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-is
-set
-to
-the
-result
-of
-concatenating
-the
-value
-associated
-with
-the
-</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
-vocabulary
-mapping
-</ins></a><ins class="diff-chg">
-and
-</ins><i>
-term
-<del class="diff-old">used
-as
-a
-prefix
-may
-</del>
-</i>.
-<ins class="diff-chg">If
-it
-does
-</ins>
-not
-have
-a
-<del class="diff-old">valid
-</del>
-<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">
-<ins class="diff-chg">vocabulary
-</ins>
-mapping
-<del class="diff-old">due
-</del>
-</a>,
-<ins class="diff-chg">an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping"><ins class="diff-chg">
-invalid
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></a></code><ins class="diff-chg">
-error
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins><code><ins class="diff-chg">
-@type
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-type
-</ins></i>
-to
-<del class="diff-old">dependencies
-in
-resolving
-term
-definitions.
-By
-continuing
-Step
-2.3.2
-</del>
-<ins class="diff-chg">the
-value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-key,
-which
-must
-be
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>.<ins class="diff-chg">
-Otherwise,
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-mapping"><ins class="diff-chg">
-invalid
-type
-mapping
-</ins>
-</a>
-<del class="diff-old">until
-no
-changes
-are
-made,
-mappings
-</del>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Set
-</ins><i><ins class="diff-chg">
-type
-</ins></i>
-to
-<del class="diff-old">IRIs
-created
-</del>
-<ins class="diff-chg">the
-result
-of
-</ins>
-using
-<ins class="diff-new">the
-</ins><a href="#iri-expansion"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-Expansion
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<i><ins class="diff-new">
-type
-</ins></i><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-value
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-vocab
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-document
-relative
-</ins></i>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
-local
-context
-</ins></a>,<ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-defined
-</ins></i>.<ins class="diff-new">
-If
-the
-expanded
-</ins><i><ins class="diff-new">
-type
-</ins></i><ins class="diff-new">
-is
-neither
-</ins><code><ins class="diff-new">
-@id
-</ins></code>,<ins class="diff-new">
-nor
-</ins><code><ins class="diff-new">
-@vocab
-</ins></code>,<ins class="diff-new">
-nor
-</ins>
-an
-<del class="diff-old">undefined
-term
-prefix
-will
-eventually
-resolve
-to
-</del>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">s.
-</del>
-</a>,
-<ins class="diff-chg">an
-</ins><code class="error">
-<a href="#idl-def-JsonLdErrorCode.invalid-type-mapping">
-<ins class="diff-chg">invalid
-type
-mapping
-</ins></a>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Set
-the
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-type
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins><code><ins class="diff-chg">
-@container
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-container
-</ins></i><ins class="diff-chg">
-to
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@container
-</ins></code><ins class="diff-chg">
-key,
-which
-must
-be
-either
-</ins><code><ins class="diff-chg">
-@list
-</ins></code>,<code><ins class="diff-chg">
-@set
-</ins></code>,<code><ins class="diff-chg">
-@index
-</ins></code>,<ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@language
-</ins></code>.<ins class="diff-chg">
-Otherwise,
-an
-</ins><code class="error">
-<del class="diff-old">Issue
-6
-</del>
-<a href="#idl-def-JsonLdErrorCode.invalid-container-mapping">
-<ins class="diff-chg">invalid
-container
-mapping
-</ins></a>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Set
-the
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-container
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-and
-does
-not
-contain
-the
-key
-</ins><code><ins class="diff-chg">
-@type
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-language
-</ins></i><ins class="diff-chg">
-to
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-key,
-which
-must
-be
-either
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-or
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>.<ins class="diff-chg">
-Otherwise,
-an
-</ins><code class="error">
-<a href="#idl-def-JsonLdErrorCode.invalid-language-mapping">
-<ins class="diff-chg">invalid
-language
-mapping
-</ins></a>
-<del class="diff-old">Issue
-43
-</del>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-language
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins>
-</a>
-<del class="diff-old">concerns
-performing
-IRI
-expansion
-in
-</del>
-<ins class="diff-chg">set
-it
-to
-lowercased
-</ins><i><ins class="diff-chg">
-language
-</ins></i>.<ins class="diff-chg">
-Set
-</ins>
-the
-<del class="diff-old">key
-position
-</del>
-<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
-<ins class="diff-chg">language
-mapping
-</ins></a>
-of
-<del class="diff-old">a
-</del>
-<i>
-<ins class="diff-chg">definition
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-language
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Set
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-</ins>
-context
-<del class="diff-old">definition.
-</del>
-</a>
-<ins class="diff-chg">to
-</ins><i><ins class="diff-chg">
-definition
-</ins></i><ins class="diff-chg">
-and
-set
-the
-value
-associated
-with
-</ins><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-'s
-key
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>.</li></ol></section></section><section id="iri-expansion">
-<h3>
-<span class="secno">
-<del class="diff-old">4.3
-</del>
-<ins class="diff-chg">6.3
-</ins>
-</span>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-Expansion
-</h3>
-<p>
-<del class="diff-old">Keys
-and
-</del>
-<ins class="diff-chg">In
-JSON-LD
-documents,
-</ins>
-some
-<ins class="diff-new">keys
-and
-</ins>
-values
-<del class="diff-old">are
-evaluated
-to
-produce
-an
-</del>
-<ins class="diff-chg">may
-represent
-</ins>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<del class="diff-old">IRI
-</del>
-<ins class="diff-chg">IRIs
-</ins>
-</a>.
-This
-section
-defines
-an
-algorithm
-for
-transforming
-a
-<del class="diff-old">value
-representing
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">string
-</ins></a><ins class="diff-chg">
-that
-represents
-</ins>
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-into
-an
-<del class="diff-old">actual
-</del>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-<del class="diff-old">.
-</del>
-</abbr>
-</a>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>.<ins class="diff-chg">
-It
-also
-covers
-transforming
-</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
-keyword
-aliases
-</ins></a><ins class="diff-chg">
-into
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a>.
-</p>
-<p>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">s
-</del>
-<ins class="diff-chg">expansion
-</ins>
-may
-<ins class="diff-new">occur
-during
-context
-processing
-or
-during
-any
-of
-the
-other
-JSON-LD
-algorithms.
-If
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-expansion
-occurs
-during
-context
-processing,
-then
-the
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
-local
-context
-</ins></a><ins class="diff-new">
-and
-its
-related
-</ins><i><ins class="diff-new">
-defined
-</ins></i><ins class="diff-new">
-map
-from
-the
-</ins><a href="#context-processing-algorithm"><ins class="diff-new">
-Context
-Processing
-algorithm
-</ins></a><ins class="diff-new">
-are
-passed
-to
-this
-algorithm.
-This
-allows
-for
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
-term
-definition
-</ins></a><ins class="diff-new">
-dependencies
-to
-</ins>
-be
-<del class="diff-old">represented
-as
-</del>
-<ins class="diff-chg">processed
-via
-the
-</ins><a href="#create-term-definition"><ins class="diff-chg">
-Create
-Term
-Definition
-algorithm
-</ins></a>.</p><section class="informative"><h4 id="overview-2"><ins class="diff-chg">
-Overview
-</ins></h4><p><em><ins class="diff-chg">
-This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-In
-order
-to
-expand
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>,
-<ins class="diff-new">we
-must
-first
-determine
-if
-it
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,
-a
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-<del class="diff-old">or
-</del>
-</a>,
-a
-<del class="diff-old">compact
-</del>
-<a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">
-<ins class="diff-chg">keyword
-alias
-</ins></a>,<ins class="diff-chg">
-or
-some
-form
-of
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-<del class="diff-old">An
-</del>
-<ins class="diff-chg">Based
-on
-what
-we
-find,
-we
-handle
-the
-specific
-kind
-of
-expansion;
-for
-example,
-we
-expand
-a
-</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
-keyword
-alias
-</ins></a><ins class="diff-chg">
-to
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-and
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-to
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<ins class="diff-chg">according
-to
-its
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></a><ins class="diff-chg">
-in
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>.<ins class="diff-chg">
-While
-inspecting
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-we
-may
-also
-find
-that
-we
-need
-to
-create
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-dependencies
-because
-we're
-running
-this
-algorithm
-during
-context
-processing.
-We
-can
-tell
-whether
-or
-not
-we're
-running
-during
-context
-processing
-by
-checking
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-against
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.<ins class="diff-chg">
-We
-know
-we
-need
-to
-create
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-in
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-when
-</ins><i><ins class="diff-chg">
-value
-</ins></i>
-is
-<del class="diff-old">defined
-</del>
-<ins class="diff-chg">a
-key
-</ins>
-in
-<del class="diff-old">[
-RFC3987
-</del>
-<ins class="diff-chg">the
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins>
-</a>
-<del class="diff-old">]
-containing
-</del>
-<ins class="diff-chg">and
-the
-</ins><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-map
-does
-not
-have
-</ins>
-a
-<del class="diff-old">scheme
-along
-</del>
-<ins class="diff-chg">key
-for
-</ins><i><ins class="diff-chg">
-value
-</ins></i>
-with
-<del class="diff-old">path
-</del>
-<ins class="diff-chg">an
-associated
-value
-of
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>.<ins class="diff-chg">
-The
-</ins><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-map
-is
-used
-during
-</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
-Context
-Processing
-</ins></a><ins class="diff-chg">
-to
-keep
-track
-of
-which
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a><ins class="diff-chg">
-have
-already
-been
-defined
-or
-are
-in
-the
-process
-of
-being
-defined.
-We
-create
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-by
-using
-the
-</ins><a href="#create-term-definition"><ins class="diff-chg">
-Create
-Term
-Definition
-algorithm
-</ins></a>.</p></section><section><h4 id="algorithm-2"><ins class="diff-chg">
-Algorithm
-</ins></h4><p><ins class="diff-chg">
-The
-algorithm
-takes
-two
-required
-</ins>
-and
-<ins class="diff-new">four
-</ins>
-optional
-<del class="diff-old">query
-</del>
-<ins class="diff-chg">input
-variables.
-The
-required
-inputs
-are
-an
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>
-and
-<del class="diff-old">fragment
-segments.
-A
-</del>
-<ins class="diff-chg">a
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-be
-expanded.
-The
-optional
-inputs
-are
-two
-flags,
-</ins><i><ins class="diff-chg">
-document
-relative
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-vocab
-</ins></i>,<ins class="diff-chg">
-that
-specifying
-whether
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-can
-be
-interpreted
-as
-a
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
-relative
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">is
-an
-IRI
-that
-is
-relative
-some
-other
-absolute
-</del>
-</a>
-<ins class="diff-chg">against
-the
-document's
-base
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">;
-in
-</del>
-<ins class="diff-chg">or
-</ins>
-the
-<del class="diff-old">case
-of
-JSON-LD
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context's
-</ins></a><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
-vocabulary
-mapping
-</ins></a>,<ins class="diff-chg">
-respectively,
-and
-a
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-and
-a
-map
-</ins><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-to
-be
-used
-when
-</ins>
-this
-<ins class="diff-new">algorithm
-</ins>
-is
-<ins class="diff-new">used
-during
-</ins><a href="#context-processing-algorithm"><ins class="diff-new">
-Context
-Processing
-</ins></a>.<ins class="diff-new">
-If
-not
-passed,
-</ins>
-the
-<del class="diff-old">base
-location
-of
-the
-document.
-</del>
-<ins class="diff-chg">two
-flags
-are
-set
-to
-</ins><code><ins class="diff-chg">
-false
-</ins></code><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-are
-initialized
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.
-</p>
-<del class="diff-old">The
-</del>
-<ol class="algorithm">
-<li>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-return
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-as
-is.
-</ins></li><li><ins class="diff-chg">
-If
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-is
-not
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-it
-contains
-a
-key
-that
-equals
-</ins><i><ins class="diff-chg">
-value
-</ins></i>,<ins class="diff-chg">
-and
-the
-value
-associated
-with
-the
-key
-that
-equals
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-is
-not
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<ins class="diff-chg">
-invoke
-the
-</ins><a href="#create-term-definition"><ins class="diff-chg">
-Create
-Term
-Definition
-</ins>
-algorithm
-</a>,
-<ins class="diff-new">passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
-local
-context
-</ins></a>,<i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-as
-</ins><i><ins class="diff-new">
-term
-</ins></i>,<ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-defined
-</ins></i>.<ins class="diff-new">
-This
-will
-ensure
-that
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
-term
-definition
-</ins></a><ins class="diff-new">
-is
-created
-</ins>
-for
-<del class="diff-old">generating
-an
-IRI
-is:
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-during
-</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
-Context
-Processing
-</ins></a>.</li>
-<li>
-If
-<i>
-<ins class="diff-new">vocab
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-and
-</ins>
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-<del class="diff-old">contains
-</del>
-<ins class="diff-chg">has
-</ins>
-a
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-term
-<ins class="diff-new">definition
-</ins>
-</a>
-<del class="diff-old">mapping
-</del>
-for
-<del class="diff-old">the
-</del>
-<i>
-value
-<del class="diff-old">using
-a
-case-sensitive
-comparison,
-use
-</del>
-</i>,
-<ins class="diff-chg">return
-</ins>
-the
-<del class="diff-old">mapped
-</del>
-<ins class="diff-chg">associated
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></a>.</li><li><ins class="diff-chg">
-If
-</ins><i>
-value
-<del class="diff-old">as
-</del>
-</i>
-<ins class="diff-chg">contains
-a
-colon
-(
-</ins><code>:</code><ins class="diff-chg">
-),
-it
-is
-either
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-new">absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-<del class="diff-old">.
-</del>
-</abbr>
-</a>
-<ins class="diff-chg">or
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>:<ol class="algorithm">
-<li>
-<del class="diff-old">Otherwise,
-split
-the
-</del>
-<ins class="diff-chg">Split
-</ins><i>
-value
-</i>
-into
-a
-<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
-prefix
-</a>
-and
-<i>
-suffix
-<del class="diff-old">from
-</del>
-</i>
-<ins class="diff-chg">at
-</ins>
-the
-first
-occurrence
-of
-<del class="diff-old">':'.
-</del>
-<ins class="diff-chg">a
-colon
-(
-</ins><code>:</code><ins class="diff-chg">
-).
-</ins>
-</li>
-<li>
-If
-<del class="diff-old">the
-</del>
-<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
-prefix
-</a>
-is
-<del class="diff-old">a
-'_'
-(underscore),
-the
-</del>
-<ins class="diff-chg">underscore
-(
-</ins><code><ins class="diff-chg">
-_
-</ins></code><ins class="diff-chg">
-)
-or
-</ins><i><ins class="diff-chg">
-suffix
-</ins></i><ins class="diff-chg">
-begins
-with
-double-forward-slash
-(
-</ins><code><ins class="diff-chg">
-//
-</ins></code><ins class="diff-chg">
-),
-return
-</ins><i>
-value
-<del class="diff-old">represents
-</del>
-</i>
-<ins class="diff-chg">as
-it
-is
-already
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-</ins>
-a
-<del class="diff-old">named
-</del>
-<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
-blank
-node
-<ins class="diff-new">identifier
-</ins>
-</a>.
-</li>
-<li>
-If
-<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-<ins class="diff-new">local
-context
-</ins></a><ins class="diff-new">
-is
-not
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-it
-contains
-a
-key
-that
-equals
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-new">
-prefix
-</ins></a>,<ins class="diff-new">
-and
-</ins>
-the
-<ins class="diff-chg">value
-associated
-with
-the
-key
-that
-equals
-</ins><i><ins class="diff-chg">
-prefix
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-defined
-</ins></i><ins class="diff-chg">
-is
-not
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<ins class="diff-chg">
-invoke
-the
-</ins><a href="#create-term-definition"><ins class="diff-chg">
-Create
-Term
-Definition
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>,<i><ins class="diff-chg">
-prefix
-</ins></i><ins class="diff-chg">
-as
-</ins><i><ins class="diff-chg">
-term
-</ins></i>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-defined
-</ins></i>.<ins class="diff-chg">
-This
-will
-ensure
-that
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-is
-created
-for
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
-prefix
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-during
-</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
-Context
-Processing
-</ins></a>.</li><li><ins class="diff-chg">
-If
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-contains
-a
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-term
-<ins class="diff-new">definition
-</ins>
-</a>
-<del class="diff-old">mapping
-</del>
-for
-<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
-prefix
-<del class="diff-old">using
-a
-case-sensitive
-comparison,
-</del>
-</a>,
-<ins class="diff-chg">return
-the
-result
-of
-concatenating
-the
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></a><ins class="diff-chg">
-associated
-with
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
-prefix
-</ins></a>
-and
-<i>
-suffix
-<del class="diff-old">does
-not
-does
-not
-begin
-with
-'//'
-(i.e.,
-</del>
-</i>.
-</li>
-<li>
-<ins class="diff-chg">Return
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-as
-</ins>
-it
-<del class="diff-old">does
-not
-match
-</del>
-<ins class="diff-chg">is
-already
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.</li></ol></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-vocab
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-has
-</ins>
-a
-<del class="diff-old">hier-part
-including
-authority
-(as
-defined
-</del>
-<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">
-<ins class="diff-chg">vocabulary
-mapping
-</ins></a>,<ins class="diff-chg">
-return
-the
-result
-of
-concatenating
-the
-</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
-vocabulary
-mapping
-</ins></a><ins class="diff-chg">
-with
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-document
-relative
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<ins class="diff-chg">
-set
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-resolving
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-against
-the
-</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.<ins class="diff-chg">
-Only
-the
-basic
-algorithm
-</ins>
-in
-<cite>
-<a href="http://tools.ietf.org/html/rfc3986#section-5.2">
-<ins class="diff-new">section
-5.2
-</ins></a></cite><ins class="diff-new">
-of
-</ins>
-[
-<cite>
-<a class="bibref" href="#bib-RFC3986">
-RFC3986
-</a>
-</cite>
-<del class="diff-old">]),
-generate
-an
-</del>
-<ins class="diff-chg">]
-is
-used;
-neither
-</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.2"><ins class="diff-chg">
-Syntax-Based
-Normalization
-</ins></a>
-</cite>
-<ins class="diff-new">nor
-</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.3"><ins class="diff-new">
-Scheme-Based
-Normalization
-</ins></a></cite><ins class="diff-new">
-are
-performed.
-Characters
-additionally
-allowed
-in
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">by
-prepending
-the
-mapped
-prefix
-to
-</del>
-<ins class="diff-chg">references
-are
-treated
-in
-</ins>
-the
-<del class="diff-old">(possibly
-empty)
-suffix
-using
-textual
-concatenation.
-Note
-</del>
-<ins class="diff-chg">same
-way
-</ins>
-that
-<del class="diff-old">an
-empty
-suffix
-and
-no
-suffix
-(meaning
-the
-value
-contains
-no
-':'
-string
-at
-all)
-</del>
-<ins class="diff-chg">unreserved
-characters
-</ins>
-are
-treated
-<del class="diff-old">equivalently.
-</del>
-<ins class="diff-chg">in
-URI
-references,
-per
-</ins><cite><a href="http://tools.ietf.org/html/rfc3987#section-6.5"><ins class="diff-chg">
-section
-6.5
-</ins></a></cite><ins class="diff-chg">
-of
-[
-</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-chg">
-RFC3987
-</ins></a></cite><ins class="diff-chg">
-].
-</ins>
-</li>
-<li>
-<del class="diff-old">Otherwise,
-use
-the
-</del>
-<ins class="diff-chg">If
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-is
-not
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-and
-</ins><i>
-value
-<del class="diff-old">directly
-as
-</del>
-</i>
-<ins class="diff-chg">is
-not
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-new">absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-<del class="diff-old">.
-Note
-</del>
-</abbr>
-</a>,
-<ins class="diff-chg">an
-</ins><code class="error">
-<del class="diff-old">Previous
-versions
-of
-this
-specification
-used
-@base
-and
-@vocab
-to
-define
-</del>
-<a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">
-<ins class="diff-chg">invalid
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">prefixes
-used
-to
-resolve
-relative
-IRIs
-.
-It
-was
-determined
-that
-this
-added
-too
-much
-complexity,
-but
-the
-issue
-can
-be
-re-examined
-in
-the
-future
-based
-on
-community
-input.
-</del>
-<ins class="diff-chg">mapping
-</ins></a>
-</code>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-Otherwise,
-return
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-as
-is.
-</ins></li></ol></section></section></section><section id="expansion-algorithms"><h2>
-<span class="secno">
-<del class="diff-old">4.4
-</del>
-<ins class="diff-chg">7.
-</ins>
-</span>
-<ins class="diff-new">Expansion
-Algorithms
-</ins></h2><section id="expansion-algorithm"><h3>
-<del class="diff-old">IRI
-Compaction
-</del>
-<span class="secno">
-<ins class="diff-chg">7.1
-</ins></span><ins class="diff-chg">
-Expansion
-Algorithm
-</ins>
-</h3>
-<p>
-<del class="diff-old">Some
-keys
-</del>
-<ins class="diff-chg">This
-algorithm
-expands
-a
-JSON-LD
-document,
-such
-that
-all
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-definitions
-are
-removed,
-all
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a>
-and
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-<ins class="diff-new">compact
-IRIs
-</ins></a><ins class="diff-new">
-are
-expanded
-to
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
-absolute
-IRIs
-</ins></a>,<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
-blank
-node
-identifiers
-</ins></a>,<ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
-keywords
-</ins></a><ins class="diff-new">
-and
-all
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-new">
-JSON-LD
-</ins>
-values
-</a>
-are
-expressed
-<del class="diff-old">using
-</del>
-<ins class="diff-chg">in
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-arrays
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form"><ins class="diff-chg">
-expanded
-form
-</ins></a>.</p><section class="informative"><h4 id="overview-3"><ins class="diff-chg">
-Overview
-</ins></h4>
-<del class="diff-old">IRI
-</del>
-<p>
-<del class="diff-old">s.
-</del>
-<em>
-This
-section
-<del class="diff-old">defines
-</del>
-<ins class="diff-chg">is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-Starting
-with
-its
-root
-</ins><i><ins class="diff-chg">
-element
-</ins></i>,<ins class="diff-chg">
-we
-can
-process
-the
-JSON-LD
-document
-recursively,
-until
-we
-have
-a
-fully
-</ins><a class="tref internalDFN" title="expansion" href="#dfn-expansion"><ins class="diff-chg">
-expanded
-</ins></a><i><ins class="diff-chg">
-result
-</ins></i>.<ins class="diff-chg">
-When
-</ins><a class="tref internalDFN" title="expansion" href="#dfn-expansion"><ins class="diff-chg">
-expanding
-</ins></a>
-an
-<i>
-<ins class="diff-new">element
-</ins></i>,<ins class="diff-new">
-we
-can
-treat
-each
-one
-differently
-according
-to
-its
-type,
-in
-order
-to
-break
-down
-the
-problem:
-</ins></p><ol><li><ins class="diff-new">
-If
-the
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-there
-is
-nothing
-to
-expand.
-</ins></li><li><ins class="diff-new">
-Otherwise,
-if
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-is
-a
-</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-new">
-scalar
-</ins></a>,<ins class="diff-new">
-we
-expand
-it
-according
-to
-the
-</ins><a href="#value-expansion"><ins class="diff-new">
-Value
-Expansion
-</ins>
-algorithm
-<del class="diff-old">for
-transforming
-</del>
-</a>.
-</li>
-<li>
-<ins class="diff-chg">Otherwise,
-if
-the
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-is
-</ins>
-an
-<del class="diff-old">IRI
-(
-iri
-)
-to
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a>,<ins class="diff-chg">
-then
-we
-expand
-each
-of
-its
-items
-recursively
-and
-return
-them
-in
-a
-new
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.</li><li><ins class="diff-chg">
-Otherwise,
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-is
-</ins>
-a
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-new">JSON
-object
-</ins></a>.<ins class="diff-new">
-We
-expand
-each
-of
-its
-keys,
-adding
-them
-to
-our
-</ins><i><ins class="diff-new">
-result
-</ins></i>,<ins class="diff-new">
-and
-then
-we
-expand
-each
-value
-for
-each
-key
-recursively.
-Some
-of
-the
-keys
-will
-be
-</ins>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">terms
-</ins>
-</a>
-or
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-compact
-<del class="diff-old">IRI
-</del>
-<ins class="diff-chg">IRIs
-</ins>
-</a>
-<del class="diff-old">using
-the
-term
-</del>
-<ins class="diff-chg">and
-others
-will
-be
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins>
-</a>
-<del class="diff-old">s
-specified
-</del>
-<ins class="diff-chg">or
-simply
-ignored
-because
-they
-do
-not
-have
-definitions
-</ins>
-in
-the
-<del class="diff-old">active
-</del>
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>.
-<ins class="diff-new">Any
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
-IRIs
-</ins>
-</a>
-<ins class="diff-new">will
-be
-expanded
-</ins>
-using
-<del class="diff-old">an
-optional
-value
-.
-4.4.1
-</del>
-<ins class="diff-chg">the
-</ins><a href="#iri-expansion">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">Compaction
-</del>
-<ins class="diff-chg">Expansion
-algorithm
-</ins></a>.</li></ol><p><ins class="diff-chg">
-Finally,
-after
-ensuring
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-is
-in
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>,<ins class="diff-chg">
-we
-return
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</p></section><section><h4 id="algorithm-3">
-Algorithm
-</h4>
-<p>
-The
-algorithm
-<del class="diff-old">for
-generating
-a
-compact
-IRI
-</del>
-<ins class="diff-chg">takes
-three
-input
-variables:
-an
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<ins class="diff-chg">
-an
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>,<ins class="diff-chg">
-and
-an
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-to
-be
-expanded.
-To
-begin,
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-is
-set
-to
-the
-result
-of
-performing,
-</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
-Context
-Processing
-</ins></a><ins class="diff-chg">
-on
-the
-passed
-</ins><code class="idlMemberName">
-<a href="#widl-JsonLdOptions-expandContext">
-<ins class="diff-new">expandContext
-</ins>
-</a>
-<del class="diff-old">is:
-</del>
-</code>,
-<ins class="diff-new">or
-empty
-if
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-new">
-expandContext
-</ins></a></code><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a><ins class="diff-new">
-is
-set
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-is
-set
-to
-the
-</ins><a class="tref internalDFN" title="json-ld-input" href="#dfn-json-ld-input"><ins class="diff-new">
-JSON-LD
-input
-</ins></a>.</p>
-<ol class="algorithm">
-<li>
-<del class="diff-old">Create
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-return
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
-scalar
-</ins></a>,<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code>,<ins class="diff-chg">
-drop
-the
-free-floating
-</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
-scalar
-</ins></a><ins class="diff-chg">
-by
-returning
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</li><li><ins class="diff-chg">
-Return
-the
-result
-of
-the
-</ins><a href="#value-expansion"><ins class="diff-chg">
-Value
-Expansion
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-as
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-is
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>,<ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins>
-an
-empty
-<del class="diff-old">list
-</del>
-<ins class="diff-chg">array,
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li><li><ins class="diff-chg">
-For
-each
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-element
-</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-expanded
-item
-</ins></i><ins class="diff-chg">
-to
-the
-result
-</ins>
-of
-<del class="diff-old">terms
-terms
-that
-will
-</del>
-<ins class="diff-chg">using
-this
-algorithm
-recursively,
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-as
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.</li><li><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-is
-</ins><code><ins class="diff-chg">
-@list
-</ins></code><ins class="diff-chg">
-or
-its
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-is
-set
-to
-</ins><code><ins class="diff-chg">
-@list
-</ins></code>,<ins class="diff-chg">
-the
-</ins><i><ins class="diff-chg">
-expanded
-item
-</ins></i><ins class="diff-chg">
-must
-not
-</ins>
-be
-<del class="diff-old">populated
-with
-term
-</del>
-<ins class="diff-chg">an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins>
-</a>
-<del class="diff-old">s
-that
-are
-ranked
-according
-</del>
-<ins class="diff-chg">or
-a
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins></a>,<ins class="diff-chg">
-otherwise
-a
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists"><ins class="diff-chg">
-list
-of
-lists
-</ins></a></code><ins class="diff-chg">
-error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-expanded
-item
-</ins></i><ins class="diff-chg">
-is
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>,<ins class="diff-chg">
-append
-each
-of
-its
-items
-</ins>
-to
-<del class="diff-old">how
-closely
-they
-match
-value
-.
-Initialize
-highest
-rank
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i>.<ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-expanded
-item
-</ins></i><ins class="diff-chg">
-is
-not
-null,
-append
-it
-</ins>
-to
-<i>
-<ins class="diff-new">result
-</ins></i>.</li></ol></li><li><ins class="diff-new">
-Return
-</ins><i><ins class="diff-new">
-result
-</ins></i>.</li></ol></li><li><ins class="diff-new">
-Otherwise
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-is
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-contains
-the
-key
-</ins>
-<code>
-<del class="diff-old">0
-</del>
-<ins class="diff-chg">@context
-</ins>
-</code>,
-<del class="diff-old">and
-</del>
-set
-<del class="diff-old">a
-flag
-list
-container
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context
-</ins></a>
-to
-<ins class="diff-new">the
-result
-of
-the
-</ins><a href="#context-processing-algorithm"><ins class="diff-new">
-Context
-Processing
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a><ins class="diff-new">
-and
-the
-value
-of
-the
-</ins>
-<code>
-<del class="diff-old">false
-.
-</del>
-<ins class="diff-chg">@context
-</ins></code><ins class="diff-chg">
-key
-as
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>.</li><li><ins class="diff-chg">
-Initialize
-an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>,<i><ins class="diff-chg">
-result
-</ins></i>.
-</li>
-<li>
-For
-each
-<del class="diff-old">term
-</del>
-<i>
-<ins class="diff-chg">key
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i>
-in
-<del class="diff-old">the
-active
-context
-:
-</del>
-<i>
-<ins class="diff-chg">element
-</ins></i>,<ins class="diff-chg">
-ordered
-lexicographically
-by
-</ins><i><ins class="diff-chg">
-key
-</ins></i>:
-<ol class="algorithm">
-<li>
-If
-<i>
-<ins class="diff-new">key
-</ins></i><ins class="diff-new">
-is
-</ins><code><ins class="diff-new">
-@context
-</ins></code>,<ins class="diff-new">
-continue
-to
-</ins>
-the
-<del class="diff-old">term
-'s
-</del>
-<ins class="diff-chg">next
-</ins><i><ins class="diff-chg">
-key
-</ins></i>.</li><li><ins class="diff-chg">
-Set
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-using
-the
-</ins><a href="#iri-expansion">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<ins class="diff-chg">Expansion
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-value
-</ins></i>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins>
-</a>
-<ins class="diff-new">for
-</ins><i><ins class="diff-new">
-vocab
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i>
-is
-<del class="diff-old">not
-</del>
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-chg">null
-</ins></a><ins class="diff-chg">
-or
-it
-neither
-contains
-</ins>
-a
-<del class="diff-old">complete
-match
-against
-iri
-,
-continue
-</del>
-<ins class="diff-chg">colon
-(
-</ins><code>:</code><ins class="diff-chg">
-)
-nor
-it
-is
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>,<ins class="diff-chg">
-drop
-</ins><i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-by
-continuing
-</ins>
-to
-the
-next
-<del class="diff-old">term
-.
-</del>
-<i>
-<ins class="diff-chg">key
-</ins></i>.
-</li>
-<li>
-If
-<del class="diff-old">value
-</del>
-<i>
-<ins class="diff-chg">expanded
-property
-</ins></i>
-is
-a
-<del class="diff-old">JSON
-object
-containing
-only
-the
-</del>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-chg">keyword
-</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-</ins>
-property
-</a>
-<ins class="diff-new">equals
-</ins>
-<code>
-<del class="diff-old">@list
-:
-</del>
-<ins class="diff-chg">@reverse
-</ins></code>,<ins class="diff-chg">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-map"><ins class="diff-chg">
-invalid
-reverse
-property
-map
-</ins></a></code><ins class="diff-chg">
-error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li>
-<li>
-If
-<del class="diff-old">term
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i>
-has
-<ins class="diff-new">already
-an
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i><ins class="diff-new">
-member,
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.colliding-keywords"><ins class="diff-new">
-colliding
-keywords
-</ins></a></code><ins class="diff-new">
-error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i><ins class="diff-new">
-is
-</ins><code><ins class="diff-new">
-@id
-</ins></code><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-is
-not
-</ins>
-a
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-new">string
-</ins></a>,<ins class="diff-new">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--id-value"><ins class="diff-new">
-invalid
-@id
-value
-</ins></a></code><ins class="diff-new">
-error
-has
-been
-detected
-and
-processing
-is
-aborted.
-Otherwise,
-set
-</ins><i><ins class="diff-new">
-expanded
-value
-</ins></i><ins class="diff-new">
-to
-the
-result
-of
-using
-the
-</ins><a href="#iri-expansion"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-Expansion
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<i><ins class="diff-new">
-value
-</ins></i>,<ins class="diff-new">
-and
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-document
-relative
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i><ins class="diff-new">
-is
-</ins>
-<code>
-<del class="diff-old">@container
-</del>
-<ins class="diff-chg">@type
-</ins></code><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-neither
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-nor
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-of
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-strings
-</ins></a>,<ins class="diff-chg">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-value"><ins class="diff-chg">
-invalid
-type
-value
-</ins></a>
-</code>
-<ins class="diff-new">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-Otherwise,
-</ins>
-set
-<i>
-<ins class="diff-new">expanded
-value
-</ins></i><ins class="diff-new">
-to
-the
-result
-of
-using
-the
-</ins><a href="#iri-expansion"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-Expansion
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-vocab
-</ins></i>,<ins class="diff-new">
-and
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-document
-relative
-</ins></i>
-to
-<ins class="diff-new">expand
-the
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-or
-each
-of
-its
-items.
-</ins></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i><ins class="diff-new">
-is
-</ins>
-<code>
-<del class="diff-old">@set
-</del>
-<ins class="diff-chg">@graph
-</ins>
-</code>,
-<del class="diff-old">continue
-</del>
-<ins class="diff-chg">set
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i>
-to
-the
-<del class="diff-old">next
-term
-.
-</del>
-<ins class="diff-chg">result
-of
-using
-this
-algorithm
-recursively
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-for
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.
-</li>
-<li>
-If
-<del class="diff-old">list
-container
-</del>
-<i>
-<ins class="diff-chg">expanded
-property
-</ins></i>
-is
-<code>
-<del class="diff-old">true
-</del>
-<ins class="diff-chg">@value
-</ins>
-</code>
-and
-<del class="diff-old">term
-does
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i><ins class="diff-chg">
-is
-</ins>
-not
-<del class="diff-old">have
-</del>
-a
-<del class="diff-old">container
-</del>
-<a class="tref internalDFN" title="scalar" href="#dfn-scalar">
-<ins class="diff-chg">scalar
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object-value"><ins class="diff-chg">
-invalid
-value
-object
-value
-</ins></a>
-</code>
-<ins class="diff-new">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-Otherwise,
-</ins>
-set
-<i>
-<ins class="diff-new">expanded
-value
-</ins></i>
-to
-<i>
-<ins class="diff-new">value
-</ins></i>.<ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-value
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-set
-the
-</ins>
-<code>
-<del class="diff-old">@list
-,
-continue
-</del>
-<ins class="diff-chg">@value
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-result
-</ins></i>
-to
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-new">null
-</ins></a><ins class="diff-new">
-and
-continue
-with
-</ins>
-the
-next
-<del class="diff-old">term
-.
-</del>
-<i>
-<ins class="diff-chg">key
-</ins></i><ins class="diff-chg">
-from
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.<ins class="diff-chg">
-Null
-values
-need
-to
-be
-preserved
-in
-this
-case
-as
-the
-meaning
-of
-an
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-member
-depends
-on
-the
-existence
-of
-an
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-member.
-</ins>
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-term
-has
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i><ins class="diff-chg">
-is
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-not
-</ins>
-a
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-new">string
-</ins></a>,<ins class="diff-new">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-string"><ins class="diff-new">
-invalid
-language-tagged
-string
-</ins></a></code><ins class="diff-new">
-error
-has
-been
-detected
-and
-processing
-is
-aborted.
-Otherwise,
-set
-</ins><i><ins class="diff-new">
-expanded
-value
-</ins></i><ins class="diff-new">
-to
-lowercased
-</ins><i><ins class="diff-new">
-value
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i><ins class="diff-new">
-is
-</ins>
-<code>
-<del class="diff-old">container
-</del>
-<ins class="diff-chg">@index
-</ins></code><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-not
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,<ins class="diff-chg">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--index-value"><ins class="diff-chg">
-invalid
-@index
-value
-</ins></a>
-</code>
-<ins class="diff-new">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-Otherwise,
-</ins>
-set
-<i>
-<ins class="diff-new">expanded
-value
-</ins></i>
-to
-<i>
-<ins class="diff-new">value
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i><ins class="diff-new">
-is
-</ins>
-<code>
-@list
-</code>:
-<ol class="algorithm">
-<li>
-<ins class="diff-new">If
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a><ins class="diff-new">
-or
-</ins><code><ins class="diff-new">
-@graph
-</ins>
-</code>,
-continue
-<del class="diff-old">to
-</del>
-<ins class="diff-chg">with
-</ins>
-the
-next
-<del class="diff-old">term
-.
-</del>
-<i>
-<ins class="diff-chg">key
-</ins></i><ins class="diff-chg">
-from
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-to
-remove
-the
-free-floating
-list..
-</ins>
-</li>
-<li>
-<del class="diff-old">Set
-rank
-</del>
-<ins class="diff-chg">Otherwise,
-initialize
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i>
-to
-the
-<del class="diff-old">term
-rank
-</del>
-<ins class="diff-chg">result
-</ins>
-of
-<del class="diff-old">value
-by
-passing
-</del>
-<ins class="diff-chg">using
-this
-algorithm
-recursively
-</ins>
-passing
-<del class="diff-old">term
-,
-value
-,
-and
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-<del class="diff-old">to
-the
-Term
-Rank
-Algorithm
-.
-</del>
-</a>,
-<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-<ins class="diff-chg">active
-property
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.
-</li>
-<li>
-If
-<del class="diff-old">rank
-</del>
-<i>
-<ins class="diff-chg">expanded
-value
-</ins></i>
-is
-<del class="diff-old">greater
-than
-0
-:
-If
-term
-has
-</del>
-a
-<del class="diff-old">container
-</del>
-<a class="tref internalDFN" title="list-object" href="#dfn-list-object">
-<ins class="diff-chg">list
-object
-</ins></a>,<ins class="diff-chg">
-a
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists"><ins class="diff-chg">
-list
-of
-lists
-</ins></a>
-</code>
-<del class="diff-old">set
-to
-</del>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li></ol></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i><ins class="diff-chg">
-is
-</ins>
-<code>
-@set
-</code>,
-<del class="diff-old">then
-add
-1
-</del>
-<ins class="diff-chg">set
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i>
-to
-<del class="diff-old">rank
-.
-</del>
-<ins class="diff-chg">the
-result
-of
-using
-this
-algorithm
-recursively,
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.
-</li>
-<li>
-If
-<i>
-<ins class="diff-chg">expanded
-property
-</ins></i><ins class="diff-chg">
-is
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-and
-</ins><i>
-value
-</i>
-is
-<ins class="diff-new">not
-</ins>
-a
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>,
-<ins class="diff-new">an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value"><ins class="diff-new">
-invalid
-@reverse
-value
-</ins>
-</a>
-<del class="diff-old">containing
-only
-the
-property
-@list
-</del>
-</code>
-<ins class="diff-new">error
-has
-been
-detected
-</ins>
-and
-<del class="diff-old">list
-container
-</del>
-<ins class="diff-chg">processing
-</ins>
-is
-<ins class="diff-new">aborted.
-Otherwise
-</ins><ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-expanded
-value
-</ins></i><ins class="diff-new">
-to
-the
-result
-of
-using
-this
-algorithm
-recursively,
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,
-<code>
-<del class="diff-old">false
-</del>
-<ins class="diff-chg">@reverse
-</ins>
-</code>
-<ins class="diff-new">as
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a>,
-and
-<del class="diff-old">term
-has
-a
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i><ins class="diff-chg">
-as
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i><ins class="diff-chg">
-contains
-an
-</ins>
-<code>
-<del class="diff-old">container
-</del>
-<ins class="diff-chg">@reverse
-</ins>
-</code>
-<ins class="diff-new">member,
-i.e.,
-properties
-that
-are
-reversed
-twice,
-execute
-for
-each
-of
-its
-</ins><i><ins class="diff-new">
-property
-</ins></i><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-the
-following
-steps:
-</ins><ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-result
-</ins></i><ins class="diff-new">
-does
-not
-have
-a
-</ins><i><ins class="diff-new">
-property
-</ins></i><ins class="diff-new">
-member,
-create
-one
-and
-</ins>
-set
-<ins class="diff-new">its
-value
-</ins>
-to
-<del class="diff-old">@list
-,
-then
-set
-list
-container
-</del>
-<ins class="diff-chg">an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.</li><li><ins class="diff-chg">
-Append
-</ins><i><ins class="diff-chg">
-item
-</ins></i>
-to
-<ins class="diff-new">the
-value
-of
-the
-</ins><i><ins class="diff-new">
-property
-</ins></i><ins class="diff-new">
-member
-of
-</ins><i><ins class="diff-new">
-result
-</ins></i>.</li></ol></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-value
-</ins></i><ins class="diff-new">
-contains
-members
-other
-than
-</ins>
-<code>
-<del class="diff-old">true
-,
-clear
-terms
-,
-set
-highest
-rank
-to
-rank
-,
-</del>
-<ins class="diff-chg">@reverse
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-does
-not
-have
-an
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-member,
-create
-one
-</ins>
-and
-<del class="diff-old">add
-term
-</del>
-<ins class="diff-chg">set
-its
-value
-</ins>
-to
-<del class="diff-old">terms
-.
-</del>
-<ins class="diff-chg">an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-rank
-is
-greater
-</del>
-<ins class="diff-chg">Reference
-the
-value
-of
-the
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-reverse
-map
-</ins></i>.</li><li><ins class="diff-chg">
-For
-each
-</ins><i><ins class="diff-chg">
-property
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-items
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i><ins class="diff-chg">
-other
-</ins>
-than
-<del class="diff-old">or
-equal
-to
-highest
-rank
-:
-</del>
-<code>
-<ins class="diff-chg">@reverse
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-For
-each
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-items
-</ins></i>:
-<ol class="algorithm">
-<li>
-If
-<del class="diff-old">rank
-</del>
-<i>
-<ins class="diff-chg">item
-</ins></i>
-is
-<del class="diff-old">greater
-than
-highest
-rank
-,
-clear
-terms
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins></a>,<ins class="diff-chg">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value"><ins class="diff-chg">
-invalid
-reverse
-property
-value
-</ins></a></code><ins class="diff-chg">
-has
-been
-detected
-</ins>
-and
-<del class="diff-old">set
-highest
-rank
-</del>
-<ins class="diff-chg">processing
-is
-aborted.
-</ins></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-reverse
-map
-</ins></i><ins class="diff-chg">
-has
-no
-</ins><i><ins class="diff-chg">
-property
-</ins></i><ins class="diff-chg">
-member,
-create
-one
-and
-initialize
-its
-value
-</ins>
-to
-<del class="diff-old">rank
-.
-</del>
-<ins class="diff-chg">an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.
-</li>
-<li>
-<del class="diff-old">Add
-term
-</del>
-<ins class="diff-chg">Append
-</ins><i><ins class="diff-chg">
-item
-</ins></i>
-to
-<del class="diff-old">terms
-.
-</del>
-<ins class="diff-chg">the
-value
-of
-the
-</ins><i><ins class="diff-chg">
-property
-</ins></i><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-reverse
-map
-</ins></i>.
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-<li>
-<del class="diff-old">If
-terms
-</del>
-<ins class="diff-chg">Continue
-with
-the
-next
-</ins><i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-from
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Unless
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i>
-is
-<del class="diff-old">empty,
-add
-a
-compact
-IRI
-representation
-</del>
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-chg">null
-</ins></a>,<ins class="diff-chg">
-set
-the
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i><ins class="diff-chg">
-member
-</ins>
-of
-<del class="diff-old">iri
-for
-each
-term
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i>.</li><li><ins class="diff-chg">
-Continue
-with
-the
-next
-</ins><i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-from
-</ins><i><ins class="diff-chg">
-element.
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-'s
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins>
-</a>
-in
-<del class="diff-old">the
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-<del class="diff-old">which
-maps
-to
-an
-IRI
-</del>
-<ins class="diff-chg">is
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins>
-</a>
-<del class="diff-old">which
-</del>
-<ins class="diff-chg">then
-</ins><i><ins class="diff-chg">
-value
-</ins></i>
-is
-<ins class="diff-new">expanded
-from
-</ins>
-a
-<del class="diff-old">prefix
-for
-iri
-where
-the
-resulting
-compact
-IRI
-</del>
-<a class="tref externalDFN" title="language-map" href="../json-ld/#dfn-language-map">
-<ins class="diff-chg">language
-map
-</ins>
-</a>
-<ins class="diff-new">as
-follows:
-</ins><ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-expanded
-value
-</ins></i><ins class="diff-new">
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>.</li><li><ins class="diff-new">
-For
-each
-key-value
-pair
-</ins><i><ins class="diff-new">
-language
-</ins></i><ins class="diff-new">
--
-</ins><i><ins class="diff-new">
-language
-value
-</ins></i><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-value
-</ins></i>,<ins class="diff-new">
-ordered
-lexicographically
-by
-</ins><i><ins class="diff-new">
-language
-</ins></i>:<ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-language
-value
-</ins></i>
-is
-not
-<del class="diff-old">a
-term
-</del>
-<ins class="diff-chg">an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-set
-it
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins>
-</a>
-<ins class="diff-new">containing
-only
-</ins><i><ins class="diff-new">
-language
-value
-</ins></i>.</li><li><ins class="diff-new">
-For
-each
-</ins><i><ins class="diff-new">
-item
-</ins></i>
-in
-<del class="diff-old">the
-active
-context
-.
-The
-resulting
-compact
-IRI
-</del>
-<i>
-<ins class="diff-chg">language
-value
-</ins></i>:<ol class="algorithm"><li>
-<i>
-<ins class="diff-new">item
-</ins></i><ins class="diff-new">
-must
-be
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-string
-</ins></a>,<ins class="diff-new">
-otherwise
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-map-value"><ins class="diff-new">
-invalid
-language
-map
-value
-</ins>
-</a>
-</code>
-<ins class="diff-new">error
-has
-been
-detected
-and
-processing
-</ins>
-is
-<del class="diff-old">the
-term
-</del>
-<ins class="diff-chg">aborted.
-</ins></li><li><ins class="diff-chg">
-Append
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i><ins class="diff-chg">
-that
-consists
-of
-two
-key-value
-pairs:
-(
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
--
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-)
-and
-(
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
--lowercased
-</ins><i><ins class="diff-chg">
-language
-</ins></i><ins class="diff-chg">
-).
-</ins></li></ol></li></ol></li></ol></li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-'s
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins>
-</a>
-<del class="diff-old">associated
-with
-the
-partially
-matched
-IRI
-</del>
-in
-<del class="diff-old">the
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-<del class="diff-old">concatenated
-with
-a
-colon
-(:)
-character
-</del>
-<ins class="diff-chg">is
-</ins><code><ins class="diff-chg">
-@index
-</ins></code>
-and
-<del class="diff-old">the
-unmatched
-part
-of
-iri
-.
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-then
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-expanded
-from
-an
-index
-map
-as
-follows:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i><ins class="diff-chg">
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.
-</li>
-<li>
-<ins class="diff-new">For
-each
-key-value
-pair
-</ins><i><ins class="diff-new">
-index
-</ins></i><ins class="diff-new">
--
-</ins><i><ins class="diff-new">
-index
-value
-</ins></i><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-value
-</ins></i>,<ins class="diff-new">
-ordered
-lexicographically
-by
-</ins><i><ins class="diff-new">
-index
-</ins></i>:<ol class="algorithm"><li>
-If
-<del class="diff-old">terms
-</del>
-<i>
-<ins class="diff-chg">index
-value
-</ins></i>
-is
-<del class="diff-old">empty,
-return
-iri
-.
-</del>
-<ins class="diff-chg">not
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-set
-it
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-containing
-only
-</ins><i><ins class="diff-chg">
-index
-value
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-return
-</del>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-index
-value
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<del class="diff-old">shortest
-</del>
-<ins class="diff-chg">result
-of
-using
-this
-algorithm
-recursively,
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-as
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>,
-and
-<del class="diff-old">lexicographically
-least
-</del>
-<i>
-<ins class="diff-chg">index
-</ins>
-value
-<del class="diff-old">in
-terms
-.
-</del>
-</i>
-<ins class="diff-chg">as
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.
-</li>
-<del class="diff-old">4.4.2
-Term
-Rank
-Algorithm
-When
-selecting
-among
-multiple
-possible
-terms
-for
-a
-given
-property,
-it
-may
-be
-that
-multiple
-terms
-are
-defined
-with
-the
-same
-IRI
-,
-but
-differ
-</del>
-<li>
-<ins class="diff-chg">For
-each
-</ins><i><ins class="diff-chg">
-item
-</ins></i>
-in
-<i>
-<ins class="diff-new">index
-value
-</ins></i>:<ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-does
-not
-have
-the
-key
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@index
-</ins>
-</code>,
-<ins class="diff-new">add
-the
-key-value
-pair
-(
-</ins>
-<code>
-<del class="diff-old">@container
-</del>
-<ins class="diff-chg">@index
-</ins>
-</code>
-<del class="diff-old">or
-@language
-.
-The
-purpose
-</del>
-<ins class="diff-chg">-
-</ins><i><ins class="diff-chg">
-index
-</ins></i><ins class="diff-chg">
-)
-to
-</ins><i><ins class="diff-chg">
-item
-</ins></i>.</li><li><ins class="diff-chg">
-Append
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i>.</li></ol></li></ol></li></ol></li><li><ins class="diff-chg">
-Otherwise,
-initialize
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i><ins class="diff-chg">
-to
-the
-result
-</ins>
-of
-<ins class="diff-new">using
-</ins>
-this
-algorithm
-<ins class="diff-new">recursively,
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<i><ins class="diff-new">
-key
-</ins></i><ins class="diff-new">
-for
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a>,<ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-element
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-value
-</ins></i>
-is
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-new">null
-</ins></a>,<ins class="diff-new">
-ignore
-</ins><i><ins class="diff-new">
-key
-</ins></i><ins class="diff-new">
-by
-continuing
-</ins>
-to
-<del class="diff-old">take
-a
-term
-</del>
-<ins class="diff-chg">the
-next
-</ins><i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-from
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.</li><li><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-associated
-to
-</ins><i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins>
-</a>
-<ins class="diff-new">is
-</ins><code><ins class="diff-new">
-@list
-</ins></code>
-and
-<i>
-<ins class="diff-new">expanded
-value
-</ins></i><ins class="diff-new">
-is
-not
-already
-</ins>
-a
-<a class="tref internalDFN" title="list-object" href="#dfn-list-object">
-<ins class="diff-new">list
-object
-</ins></a>,<ins class="diff-new">
-convert
-</ins><i><ins class="diff-new">
-expanded
-</ins>
-value
-</i>
-<ins class="diff-new">to
-a
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
-list
-object
-</ins></a><ins class="diff-new">
-by
-first
-setting
-it
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-containing
-only
-</ins><i><ins class="diff-new">
-expanded
-value
-</ins></i><ins class="diff-new">
-if
-it
-is
-not
-already
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>,
-and
-<del class="diff-old">give
-</del>
-<ins class="diff-chg">then
-by
-setting
-</ins>
-it
-<ins class="diff-new">to
-</ins>
-a
-<del class="diff-old">term
-rank
-.
-The
-selection
-can
-then
-be
-based,
-partly,
-on
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins></a><ins class="diff-chg">
-containing
-</ins>
-the
-<del class="diff-old">term
-having
-</del>
-<ins class="diff-chg">key-value
-pair
-</ins><code><ins class="diff-chg">
-@list
-</ins></code><ins class="diff-chg">
--
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins>
-the
-<del class="diff-old">highest
-</del>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-term
-<del class="diff-old">rank
-.
-Given
-</del>
-<ins class="diff-chg">definition
-</ins></a><ins class="diff-chg">
-associated
-to
-</ins><i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-indicates
-that
-it
-is
-</ins>
-a
-<del class="diff-old">term
-</del>
-<a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">
-<ins class="diff-chg">reverse
-property
-</ins>
-</a>
-<del class="diff-old">term
-,
-value
-,
-</del>
-<ol class="algorithm">
-<li>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-has
-no
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-member,
-create
-one
-</ins>
-and
-<del class="diff-old">active
-context
-determine
-</del>
-<ins class="diff-chg">initialize
-its
-value
-to
-an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>.</li><li><ins class="diff-chg">
-Reference
-</ins>
-the
-<del class="diff-old">term
-rank
-</del>
-<ins class="diff-chg">value
-of
-the
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-result
-</ins></i>
-using
-the
-<del class="diff-old">following
-steps:
-</del>
-<ins class="diff-chg">variable
-</ins><i><ins class="diff-chg">
-reverse
-map
-</ins></i>.</li>
-<li>
-If
-<i>
-<ins class="diff-chg">expanded
-</ins>
-value
-</i>
-is
-<del class="diff-old">null
-</del>
-<ins class="diff-chg">not
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins>
-</a>,
-<del class="diff-old">term
-rank
-</del>
-<ins class="diff-chg">set
-it
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins>
-</a>
-<del class="diff-old">is
-3
-.
-</del>
-<ins class="diff-chg">containing
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-</del>
-<ins class="diff-chg">For
-each
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-expanded
-</ins>
-value
-</i>
-<ol class="algorithm">
-<li>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-item
-</ins></i>
-is
-a
-<del class="diff-old">JSON
-</del>
-<a class="tref internalDFN" title="value-object" href="#dfn-value-object">
-<ins class="diff-chg">value
-</ins>
-object
-</a>
-<del class="diff-old">containing
-only
-the
-</del>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins></a>,<ins class="diff-chg">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value"><ins class="diff-chg">
-invalid
-reverse
-</ins>
-property
-<del class="diff-old">@list
-:
-</del>
-<ins class="diff-chg">value
-</ins></a></code><ins class="diff-chg">
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li>
-<li>
-If
-<del class="diff-old">the
-@list
-</del>
-<i>
-<ins class="diff-chg">reverse
-map
-</ins></i><ins class="diff-chg">
-has
-no
-</ins><i><ins class="diff-chg">
-expanded
-</ins>
-property
-<del class="diff-old">is
-</del>
-</i>
-<ins class="diff-chg">member,
-create
-one
-and
-initialize
-its
-value
-to
-</ins>
-an
-empty
-<del class="diff-old">array,
-if
-term
-has
-@container
-set
-to
-@list
-,
-term
-rank
-is
-1
-,
-otherwise
-0
-.
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-return
-</del>
-<ins class="diff-chg">Append
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<del class="diff-old">sum
-</del>
-<ins class="diff-chg">value
-</ins>
-of
-the
-<del class="diff-old">term
-rank
-s
-for
-every
-entry
-in
-the
-list.
-</del>
-<i>
-<ins class="diff-chg">expanded
-property
-</ins></i><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-reverse
-map
-</ins></i>.</li></ol>
-</li>
-</ol>
-</li>
-<li>
-Otherwise,
-<del class="diff-old">value
-must
-be
-a
-subject
-definition
-,
-subject
-reference
-,
-or
-a
-JSON
-object
-having
-</del>
-<ins class="diff-chg">if
-</ins><i><ins class="diff-chg">
-key
-</ins></i><ins class="diff-chg">
-is
-not
-</ins>
-a
-<del class="diff-old">@value
-.
-</del>
-<a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">
-<ins class="diff-chg">reverse
-property
-</ins></a>:
-<ol class="algorithm">
-<li>
-If
-<i>
-<ins class="diff-chg">result
-</ins></i><ins class="diff-chg">
-does
-not
-have
-an
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i><ins class="diff-chg">
-member,
-create
-one
-and
-initialize
-its
-</ins>
-value
-<del class="diff-old">has
-a
-@value
-property:
-</del>
-<ins class="diff-chg">to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.</li>
-<li>
-<del class="diff-old">If
-</del>
-<ins class="diff-chg">Append
-</ins><i><ins class="diff-chg">
-expanded
-</ins>
-value
-<del class="diff-old">has
-a
-@type
-</del>
-</i>
-<ins class="diff-chg">to
-value
-of
-the
-</ins><i><ins class="diff-chg">
-expanded
-</ins>
-property
-<del class="diff-old">matching
-a
-</del>
-</i>
-<ins class="diff-chg">member
-of
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li></ol></li></ol></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins>
-<code>
-<del class="diff-old">@type
-coercion
-for
-term
-,
-term
-rank
-is
-</del>
-<ins class="diff-chg">@value
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-The
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-must
-not
-contain
-any
-keys
-other
-than
-</ins>
-<code>
-<del class="diff-old">3
-</del>
-<ins class="diff-chg">@value
-</ins>
-</code>,
-<del class="diff-old">otherwise
-if
-term
-has
-no
-@type
-coercion
-and
-no
-</del>
-<code>
-@language
-</code>,
-<del class="diff-old">term
-rank
-is
-</del>
-<code>
-<del class="diff-old">1
-</del>
-<ins class="diff-chg">@type
-</ins>
-</code>,
-<del class="diff-old">otherwise
-</del>
-<ins class="diff-chg">and
-</ins>
-<code>
-<del class="diff-old">0
-</del>
-<ins class="diff-chg">@index
-</ins>
-</code>.
-<del class="diff-old">Otherwise,
-if
-</del>
-<ins class="diff-chg">It
-must
-not
-contain
-both
-the
-</ins>
-<code>
-<del class="diff-old">@value
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<del class="diff-old">is
-not
-a
-string
-,
-if
-term
-has
-no
-</del>
-<ins class="diff-chg">key
-and
-the
-</ins>
-<code>
-@type
-</code>
-<del class="diff-old">or
-@language
-</del>
-<ins class="diff-chg">key.
-Otherwise,
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object"><ins class="diff-chg">
-invalid
-value
-object
-</ins></a>
-</code>
-<del class="diff-old">it
-</del>
-<ins class="diff-chg">error
-has
-been
-detected
-and
-processing
-</ins>
-is
-<del class="diff-old">2
-,
-otherwise
-1
-.
-</del>
-<ins class="diff-chg">aborted.
-</ins>
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-</del>
-<ins class="diff-chg">If
-the
-</ins>
-value
-<del class="diff-old">has
-no
-@language
-property,
-if
-term
-has
-</del>
-<ins class="diff-chg">of
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-'s
-</ins>
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@value
-</ins>
-</code>
-<ins class="diff-new">key
-is
-</ins>
-<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>,
-<del class="diff-old">or
-term
-has
-no
-@type
-or
-</del>
-<ins class="diff-chg">then
-set
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-the
-value
-of
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-'s
-</ins>
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@value
-</ins>
-</code>
-<ins class="diff-new">member
-is
-not
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-string
-</ins></a>
-and
-<i>
-<ins class="diff-new">result
-</ins></i><ins class="diff-new">
-contains
-</ins>
-the
-<del class="diff-old">active
-context
-has
-no
-</del>
-<ins class="diff-chg">key
-</ins>
-<code>
-@language
-</code>,
-<del class="diff-old">term
-rank
-</del>
-<ins class="diff-chg">an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-value"><ins class="diff-chg">
-invalid
-language-tagged
-value
-</ins></a></code><ins class="diff-chg">
-error
-has
-been
-detected
-(only
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-strings
-</ins>
-</a>
-<ins class="diff-new">can
-be
-language-tagged)
-and
-processing
-</ins>
-is
-<del class="diff-old">3
-,
-otherwise
-0
-.
-</del>
-<ins class="diff-chg">aborted.
-</ins>
-</li>
-<li>
-Otherwise,
-if
-<del class="diff-old">value
-</del>
-<ins class="diff-chg">the
-</ins><i><ins class="diff-chg">
-result
-</ins></i>
-has
-a
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@type
-</ins>
-</code>
-<del class="diff-old">property
-matching
-</del>
-<ins class="diff-chg">member
-and
-its
-value
-is
-not
-</ins>
-a
-<del class="diff-old">@language
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">string
-</ins></a>,<ins class="diff-chg">
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-typed-value"><ins class="diff-chg">
-invalid
-typed
-value
-</ins></a>
-</code>
-<del class="diff-old">definition
-for
-term
-(or
-term
-</del>
-<ins class="diff-chg">error
-</ins>
-has
-<del class="diff-old">no
-</del>
-<ins class="diff-chg">been
-detected
-and
-processing
-is
-aborted.
-</ins></li></ol></li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins>
-<code>
-@type
-</code>
-<del class="diff-old">or
-@language
-definition
-</del>
-and
-<del class="diff-old">@language
-in
-the
-active
-context
-matches
-the
-</del>
-<ins class="diff-chg">its
-associated
-</ins>
-value
-<del class="diff-old">@language
-),
-term
-rank
-</del>
-is
-<del class="diff-old">3
-,
-otherwise
-</del>
-<ins class="diff-chg">not
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>,<ins class="diff-chg">
-set
-it
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-containing
-only
-the
-associated
-value.
-</ins></li><li><ins class="diff-chg">
-Otherwise,
-</ins>
-if
-<del class="diff-old">term
-has
-no
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@set
-</ins>
-</code>
-<del class="diff-old">coercion
-</del>
-<ins class="diff-chg">or
-</ins><code><ins class="diff-chg">
-@list
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-The
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-must
-contain
-at
-most
-one
-other
-key
-</ins>
-and
-<del class="diff-old">no
-</del>
-<ins class="diff-chg">that
-key
-must
-be
-</ins>
-<code>
-<del class="diff-old">@language
-,
-term
-rank
-</del>
-<ins class="diff-chg">@index
-</ins></code>.<ins class="diff-chg">
-Otherwise,
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-set-or-list-object"><ins class="diff-chg">
-invalid
-set
-or
-list
-object
-</ins>
-</a>
-</code>
-<ins class="diff-new">error
-has
-been
-detected
-and
-processing
-</ins>
-is
-<ins class="diff-new">aborted.
-</ins></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-result
-</ins></i><ins class="diff-new">
-contains
-the
-key
-</ins>
-<code>
-<del class="diff-old">1
-</del>
-<ins class="diff-chg">@set
-</ins>
-</code>,
-<del class="diff-old">otherwise
-0
-.
-</del>
-<ins class="diff-chg">then
-set
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-the
-key's
-associated
-value.
-</ins>
-</li>
-</ol>
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-term
-has
-@type
-coerced
-to
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-contains
-only
-the
-key
-</ins>
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>,
-<del class="diff-old">term
-rank
-</del>
-<ins class="diff-chg">set
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</li><li><ins class="diff-chg">
-If
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins>
-</a>
-is
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-new">null
-</ins></a><ins class="diff-new">
-or
-</ins>
-<code>
-<del class="diff-old">3
-</del>
-<ins class="diff-chg">@graph
-</ins>
-</code>,
-<del class="diff-old">otherwise
-if
-term
-has
-no
-</del>
-<ins class="diff-chg">drop
-free-floating
-values
-as
-follows:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-is
-an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-or
-contains
-the
-keys
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@value
-</ins>
-</code>
-<del class="diff-old">coercion
-and
-no
-</del>
-<ins class="diff-chg">or
-</ins>
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@list
-</ins>
-</code>,
-<del class="diff-old">term
-rank
-</del>
-<ins class="diff-chg">set
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins>
-</a>
-<ins class="diff-new">whose
-only
-key
-</ins>
-is
-<code>
-<del class="diff-old">1
-</del>
-<ins class="diff-chg">@id
-</ins>
-</code>,
-<del class="diff-old">otherwise
-0
-.
-</del>
-<ins class="diff-chg">set
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.
-</li>
-</ol>
-</li>
-<li>
-Return
-<del class="diff-old">term
-rank
-.
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i>.
-</li>
-</ol>
-<p>
-<ins class="diff-chg">If,
-after
-the
-above
-algorithm
-is
-run,
-the
-result
-is
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-that
-contains
-only
-an
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-key,
-set
-the
-result
-to
-the
-value
-of
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-'s
-value.
-Otherwise,
-if
-the
-result
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-set
-it
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.<ins class="diff-chg">
-Finally,
-if
-the
-result
-is
-not
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>,<ins class="diff-chg">
-then
-set
-the
-result
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-containing
-only
-the
-result.
-</ins></p></section></section><section id="value-expansion">
-<h3>
-<span class="secno">
-<del class="diff-old">4.5
-</del>
-<ins class="diff-chg">7.2
-</ins>
-</span>
-Value
-Expansion
-</h3>
-<p>
-Some
-values
-in
-JSON-LD
-can
-be
-expressed
-in
-a
-<a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form">
-compact
-<del class="diff-old">form.
-</del>
-<ins class="diff-chg">form
-</ins></a>.
-These
-values
-are
-required
-to
-be
-<a class="tref internalDFN" title="expansion" href="#dfn-expansion">
-expanded
-</a>
-at
-times
-when
-processing
-JSON-LD
-documents.
-<del class="diff-old">The
-algorithm
-for
-expanding
-a
-</del>
-<ins class="diff-chg">A
-</ins>
-value
-<del class="diff-old">takes
-an
-active
-property
-and
-active
-context
-.
-It
-</del>
-is
-<del class="diff-old">implemented
-as
-follows:
-</del>
-<ins class="diff-chg">said
-to
-be
-in
-</ins><dfn title="expanded-form" id="dfn-expanded-form"><ins class="diff-chg">
-expanded
-form
-</ins></dfn><ins class="diff-chg">
-after
-the
-application
-of
-this
-algorithm.
-</ins>
-</p>
-<del class="diff-old">If
-</del>
-<section class="informative">
-<h4 id="overview-4">
-<ins class="diff-chg">Overview
-</ins></h4><p>
-<em>
-<del class="diff-old">value
-</del>
-<ins class="diff-chg">This
-section
-</ins>
-is
-<del class="diff-old">null
-,
-the
-value
-</del>
-<ins class="diff-chg">non-normative.
-</ins>
-</em>
-<del class="diff-old">is
-already
-expanded.
-</del>
-</p>
-<p>
-If
-<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-property
-</a>
-<del class="diff-old">is
-@graph
-or
-</del>
-<ins class="diff-chg">has
-a
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-in
-</ins>
-the
-<del class="diff-old">target
-of
-an
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context
-</ins></a><ins class="diff-chg">
-set
-to
-</ins>
-<code>
-@id
-</code>
-<del class="diff-old">coercion,
-expand
-the
-value
-into
-an
-</del>
-<ins class="diff-chg">or
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-</ins>
-object
-</a>
-with
-a
-<del class="diff-old">key-value
-pair
-where
-the
-key
-is
-</del>
-<ins class="diff-chg">single
-member
-</ins>
-<code>
-@id
-</code>
-<del class="diff-old">and
-the
-</del>
-<ins class="diff-chg">whose
-</ins>
-value
-is
-the
-<del class="diff-old">expanded
-IRI
-according
-to
-</del>
-<ins class="diff-chg">result
-of
-using
-</ins>
-the
-<a href="#iri-expansion">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-Expansion
-<ins class="diff-new">algorithm
-</ins>
-</a>
-<del class="diff-old">rules.
-Otherwise,
-if
-active
-property
-</del>
-<ins class="diff-chg">on
-</ins><i><ins class="diff-chg">
-value
-</ins></i>
-is
-<del class="diff-old">not
-</del>
-<ins class="diff-chg">returned.
-</ins></p><p><ins class="diff-chg">
-Otherwise,
-the
-result
-will
-be
-</ins>
-a
-<del class="diff-old">keyword
-,
-then
-expand
-value
-into
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins></a><ins class="diff-chg">
-containing
-</ins>
-an
-<del class="diff-old">object:
-Set
-the
-first
-key-value
-pair
-to
-</del>
-<code>
-@value
-</code>
-<del class="diff-old">and
-the
-unexpanded
-</del>
-<ins class="diff-chg">member
-whose
-</ins>
-value
-<del class="diff-old">.
-If
-the
-active
-property
-</del>
-is
-the
-<del class="diff-old">target
-of
-typed
-literal
-coercion,
-set
-the
-second
-key-value
-pair
-to
-</del>
-<ins class="diff-chg">passed
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.<ins class="diff-chg">
-Additionally,
-an
-</ins>
-<code>
-@type
-</code>
-<del class="diff-old">and
-the
-associated
-coercion
-datatype
-expanded
-according
-to
-the
-IRI
-Expansion
-rules.
-Otherwise,
-</del>
-<ins class="diff-chg">member
-will
-be
-included
-</ins>
-if
-<ins class="diff-new">there
-is
-a
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-associated
-with
-</ins>
-the
-<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-property
-</a>
-<del class="diff-old">is
-the
-target
-of
-language
-tagging,
-set
-the
-second
-key-value
-pair
-to
-</del>
-<ins class="diff-chg">or
-an
-</ins>
-<code>
-@language
-</code>
-<del class="diff-old">and
-</del>
-<ins class="diff-chg">member
-if
-</ins><i>
-value
-<del class="diff-old">of
-the
-</del>
-</i>
-<ins class="diff-chg">is
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-and
-there
-is
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
-language
-<del class="diff-old">tagging
-from
-</del>
-<ins class="diff-chg">mapping
-</ins></a><ins class="diff-chg">
-associated
-with
-</ins>
-the
-<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-<del class="diff-old">context
-</del>
-<ins class="diff-chg">property
-</ins>
-</a>.
-<del class="diff-old">Otherwise,
-value
-is
-already
-expanded.
-4.6
-Value
-Compaction
-Some
-values,
-such
-as
-IRIs
-and
-typed
-literals
-,
-may
-be
-expressed
-in
-an
-expanded
-form
-in
-JSON-LD.
-These
-values
-are
-required
-to
-be
-compacted
-at
-times
-when
-processing
-JSON-LD
-documents.
-</del>
-</p>
-</section>
-<section>
-<h4 id="algorithm-4">
-<ins class="diff-new">Algorithm
-</ins></h4>
-<p>
-The
-algorithm
-<del class="diff-old">for
-compacting
-an
-expanded
-value
-value
-</del>
-takes
-<ins class="diff-new">three
-required
-inputs:
-</ins>
-an
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context
-</ins></a>,<ins class="diff-chg">
-an
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-property
-</a>,
-and
-<del class="diff-old">active
-context
-.
-It
-is
-implemented
-as
-follows:
-</del>
-<ins class="diff-chg">a
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-expand.
-</ins>
-</p>
-<ol class="algorithm">
-<li>
-If
-<del class="diff-old">value
-only
-has
-one
-property
-and
-</del>
-the
-<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-<del class="diff-old">context
-</del>
-<ins class="diff-chg">property
-</ins>
-</a>
-has
-<del class="diff-old">no
-default
-language,
-then
-the
-compacted
-value
-is
-the
-value
-of
-@value
-.
-Otherwise,
-if
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">context
-</ins>
-</a>
-<ins class="diff-new">that
-</ins>
-is
-<code>
-<del class="diff-old">@graph
-</del>
-<ins class="diff-chg">@id
-</ins>
-</code>,
-<ins class="diff-new">return
-a
-new
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a><ins class="diff-new">
-containing
-a
-single
-key-value
-pair
-where
-</ins>
-the
-<del class="diff-old">compacted
-value
-</del>
-<ins class="diff-chg">key
-</ins>
-is
-<del class="diff-old">the
-value
-associated
-with
-the
-</del>
-<code>
-@id
-</code>
-<del class="diff-old">key,
-processed
-according
-to
-</del>
-<ins class="diff-chg">and
-</ins>
-the
-<ins class="diff-chg">value
-is
-the
-result
-of
-using
-the
-</ins><a href="#iri-expansion">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">Compaction
-</del>
-<ins class="diff-chg">Expansion
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<i><ins class="diff-chg">
-value
-</ins></i>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins>
-</a>
-<del class="diff-old">steps.
-</del>
-<ins class="diff-chg">for
-</ins><i><ins class="diff-chg">
-document
-relative
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-the
-</del>
-<ins class="diff-chg">If
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-has
-a
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-<del class="diff-old">contains
-</del>
-<ins class="diff-chg">that
-is
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code>,<ins class="diff-chg">
-return
-</ins>
-a
-<del class="diff-old">coercion
-target
-for
-</del>
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-containing
-a
-single
-key-value
-pair
-where
-</ins>
-the
-key
-<del class="diff-old">that
-matches
-the
-expression
-of
-the
-value,
-compact
-the
-value
-using
-the
-following
-steps:
-If
-the
-coercion
-target
-</del>
-is
-<del class="diff-old">an
-</del>
-<code>
-@id
-<del class="diff-old">,
-</del>
-</code>
-<ins class="diff-chg">and
-</ins>
-the
-<del class="diff-old">compacted
-</del>
-value
-is
-the
-<del class="diff-old">value
-associated
-with
-the
-@id
-key,
-processed
-according
-to
-</del>
-<ins class="diff-chg">result
-of
-using
-</ins>
-the
-<a href="#iri-expansion">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">Compaction
-</del>
-<ins class="diff-chg">Expansion
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<i><ins class="diff-chg">
-value
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins>
-</a>
-<del class="diff-old">steps.
-</del>
-<ins class="diff-chg">for
-</ins><i><ins class="diff-chg">
-vocab
-</ins></i>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-document
-relative
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">If
-the
-coercion
-target
-</del>
-<ins class="diff-chg">Otherwise,
-initialize
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-with
-an
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-member
-whose
-value
-</ins>
-is
-<ins class="diff-new">set
-to
-</ins><i><ins class="diff-new">
-value
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a><ins class="diff-new">
-has
-</ins>
-a
-<del class="diff-old">typed
-literal
-</del>
-<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
-<ins class="diff-chg">type
-mapping
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins>
-</a>,
-<del class="diff-old">the
-compacted
-</del>
-<ins class="diff-chg">add
-an
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-member
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-and
-set
-its
-</ins>
-value
-<del class="diff-old">is
-</del>
-<ins class="diff-chg">to
-</ins>
-the
-value
-associated
-with
-the
-<del class="diff-old">@value
-key.
-</del>
-<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
-<ins class="diff-chg">type
-mapping
-</ins></a>.
-</li>
-<li>
-Otherwise,
-if
-<i>
-value
-<del class="diff-old">contains
-</del>
-</i>
-<ins class="diff-chg">is
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-a
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-is
-associated
-with
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<ins class="diff-chg">
-add
-</ins>
-an
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<del class="diff-old">key,
-the
-compacted
-value
-is
-</del>
-<ins class="diff-chg">to
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-and
-set
-its
-</ins>
-value
-<ins class="diff-chg">to
-the
-language
-code
-associated
-</ins>
-with
-the
-<del class="diff-old">value
-of
-@id
-processed
-according
-to
-</del>
-<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
-<ins class="diff-chg">language
-mapping
-</ins></a><ins class="diff-chg">
-;
-unless
-</ins>
-the
-<del class="diff-old">IRI
-Compaction
-</del>
-<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
-<ins class="diff-chg">language
-mapping
-</ins>
-</a>
-<del class="diff-old">steps.
-</del>
-<ins class="diff-chg">is
-set
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-in
-which
-case
-no
-member
-is
-added.
-</ins>
-</li>
-<li>
-Otherwise,
-if
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-<del class="diff-old">contains
-</del>
-<ins class="diff-chg">has
-</ins>
-a
-<del class="diff-old">@language
-,
-which
-matches
-the
-</del>
-<a class="tref internalDFN" title="default-language" href="#dfn-default-language">
-<ins class="diff-chg">default
-language
-</ins></a>,<ins class="diff-chg">
-add
-an
-</ins>
-<code>
-@language
-</code>
-<del class="diff-old">of
-</del>
-<ins class="diff-chg">to
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-and
-set
-its
-value
-to
-</ins>
-the
-<del class="diff-old">value,
-</del>
-<a class="tref internalDFN" title="default-language" href="#dfn-default-language">
-<ins class="diff-chg">default
-language
-</ins></a>.</li></ol></li><li><ins class="diff-chg">
-Return
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li></ol></section></section></section><section id="compaction-algorithms"><h2><span class="secno"><ins class="diff-chg">
-8.
-</ins></span><ins class="diff-chg">
-Compaction
-Algorithms
-</ins></h2><section id="compaction-algorithm"><h3><span class="secno"><ins class="diff-chg">
-8.1
-</ins></span><ins class="diff-chg">
-Compaction
-Algorithm
-</ins></h3><p><ins class="diff-chg">
-This
-algorithm
-compacts
-a
-JSON-LD
-document,
-such
-that
-the
-given
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-is
-applied.
-This
-must
-result
-in
-shortening
-any
-applicable
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a>
-or
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-<ins class="diff-new">compact
-IRIs
-</ins></a>,<ins class="diff-new">
-any
-applicable
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
-keywords
-</ins></a><ins class="diff-new">
-to
-</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-new">
-keyword
-aliases
-</ins></a>,<ins class="diff-new">
-and
-any
-applicable
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-new">
-JSON-LD
-values
-</ins></a><ins class="diff-new">
-expressed
-in
-</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form"><ins class="diff-new">
-expanded
-form
-</ins></a><ins class="diff-new">
-to
-simple
-values
-such
-as
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-strings
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
-numbers
-</ins></a>.</p><section class="informative"><h4 id="overview-5"><ins class="diff-new">
-Overview
-</ins></h4><p><em><ins class="diff-new">
-This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-new">
-Starting
-with
-its
-root
-</ins><i><ins class="diff-new">
-element
-</ins></i>,<ins class="diff-new">
-we
-can
-process
-</ins>
-the
-<del class="diff-old">value
-has
-only
-</del>
-<ins class="diff-chg">JSON-LD
-document
-recursively,
-until
-we
-have
-</ins>
-a
-<del class="diff-old">@value
-key,
-the
-</del>
-<ins class="diff-chg">fully
-</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction">
-compacted
-<del class="diff-old">value
-is
-</del>
-</a>
-<i>
-<ins class="diff-chg">result
-</ins></i>.<ins class="diff-chg">
-When
-</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
-compacting
-</ins></a><ins class="diff-chg">
-an
-</ins><i><ins class="diff-chg">
-element
-</ins></i>,<ins class="diff-chg">
-we
-can
-treat
-each
-one
-differently
-according
-to
-its
-type,
-in
-order
-to
-break
-down
-</ins>
-the
-<del class="diff-old">value
-associated
-with
-</del>
-<ins class="diff-chg">problem:
-</ins></p><ol><li><ins class="diff-chg">
-If
-</ins>
-the
-<del class="diff-old">@value
-key.
-</del>
-<i>
-<ins class="diff-chg">element
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
-scalar
-</ins></a>,<ins class="diff-chg">
-it
-is
-already
-in
-</ins><a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form"><ins class="diff-chg">
-compacted
-form
-</ins></a>,<ins class="diff-chg">
-so
-we
-simply
-return
-it.
-</ins>
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-</del>
-<ins class="diff-chg">If
-</ins>
-the
-<del class="diff-old">value
-contains
-</del>
-<i>
-<ins class="diff-chg">element
-</ins></i><ins class="diff-chg">
-is
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>,<ins class="diff-chg">
-we
-compact
-each
-of
-its
-items
-recursively
-and
-return
-them
-in
-</ins>
-a
-<del class="diff-old">@type
-key,
-the
-compacted
-value
-</del>
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.</li><li><ins class="diff-chg">
-Otherwise
-</ins><i><ins class="diff-chg">
-element
-</ins></i>
-is
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>.<ins class="diff-chg">
-The
-</ins>
-value
-<del class="diff-old">with
-</del>
-<ins class="diff-chg">of
-each
-key
-in
-element
-is
-compacted
-recursively.
-Some
-of
-</ins>
-the
-<del class="diff-old">@type
-value
-processed
-according
-to
-</del>
-<ins class="diff-chg">keys
-will
-be
-compacted,
-using
-</ins>
-the
-<a href="#iri-compaction">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-Compaction
-<ins class="diff-new">algorithm
-</ins></a>,<ins class="diff-new">
-to
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-terms
-</ins>
-</a>
-<del class="diff-old">steps.
-Otherwise,
-the
-value
-is
-</del>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-IRIs
-</ins></a><ins class="diff-chg">
-and
-others
-will
-be
-compacted
-from
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
-keyword
-aliases
-</ins></a><ins class="diff-chg">
-or
-simply
-left
-unchanged
-because
-they
-do
-</ins>
-not
-<del class="diff-old">modified.
-</del>
-<ins class="diff-chg">have
-definitions
-in
-the
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>.<ins class="diff-chg">
-Values
-will
-be
-converted
-to
-</ins><a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form"><ins class="diff-chg">
-compacted
-form
-</ins></a><ins class="diff-chg">
-via
-the
-</ins><a href="#value-compaction"><ins class="diff-chg">
-Value
-Compaction
-algorithm
-</ins></a>.<ins class="diff-chg">
-Some
-data
-will
-be
-reshaped
-based
-on
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mappings
-</ins></a><ins class="diff-chg">
-specified
-in
-the
-context
-such
-as
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-maps.
-</ins>
-</li>
-</ol>
-<del class="diff-old">4.7
-Expansion
-</del>
-<p>
-<del class="diff-old">Expansion
-</del>
-<ins class="diff-chg">The
-final
-output
-</ins>
-is
-<del class="diff-old">the
-process
-of
-taking
-</del>
-a
-<del class="diff-old">JSON-LD
-document
-and
-applying
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins></a><ins class="diff-chg">
-with
-a
-</ins><code><ins class="diff-chg">
-@context
-</ins></code><ins class="diff-chg">
-key,
-if
-</ins>
-a
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-<del class="diff-old">such
-that
-all
-IRI
-,
-datatypes,
-and
-literal
-values
-are
-expanded
-so
-that
-</del>
-</a>
-<ins class="diff-chg">was
-given,
-where
-</ins>
-the
-<del class="diff-old">context
-is
-no
-longer
-necessary.
-JSON-LD
-document
-expansion
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins></a>
-is
-<del class="diff-old">typically
-used
-as
-</del>
-<ins class="diff-chg">either
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-or
-</ins>
-a
-<del class="diff-old">part
-of
-other
-JSON-LD
-API
-methods.
-For
-example,
-assume
-the
-following
-JSON-LD
-input
-document:
-{
-   &quot;@context&quot;:
-   {
-      &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-      &quot;homepage&quot;: {
-        &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-        &quot;@type&quot;, &quot;@id&quot;
-      }
-   },
-   &quot;name&quot;: &quot;Manu Sporny&quot;,
-   &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-}
-Running
-the
-JSON-LD
-Expansion
-algorithm
-against
-</del>
-<ins class="diff-chg">wrapper
-for
-it
-where
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-appears
-as
-</ins>
-the
-<del class="diff-old">JSON-LD
-input
-document
-provided
-above
-would
-</del>
-<ins class="diff-chg">value
-of
-an
-(aliased)
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-key
-because
-</ins><i>
-result
-</i>
-<ins class="diff-new">contained
-two
-or
-more
-items
-</ins>
-in
-<del class="diff-old">the
-following
-output:
-</del>
-<ins class="diff-chg">an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.
-</p>
-<del class="diff-old">{
-   &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Manu Sporny&quot;,
-   &quot;http://xmlns.com/foaf/0.1/homepage&quot;: {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
-   }
-}
-4.7.1
-Expansion
-</del>
-</section>
-<section>
-<h4 id="algorithm-5">
-Algorithm
-</h4>
-<p>
-The
-algorithm
-takes
-<del class="diff-old">three
-</del>
-<ins class="diff-chg">five
-required
-</ins>
-input
-variables:
-an
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>,
-an
-<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
-<ins class="diff-chg">inverse
-context
-</ins></a>,<ins class="diff-chg">
-an
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-property
-</a>,
-<del class="diff-old">and
-</del>
-an
-<i>
-element
-</i>
-to
-be
-<del class="diff-old">expanded.
-</del>
-<ins class="diff-chg">compacted,
-and
-a
-flag
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-chg">
-compactArrays
-</ins></a></code>.
-To
-begin,
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-is
-set
-to
-the
-result
-of
-<del class="diff-old">performing,
-</del>
-<ins class="diff-chg">performing
-</ins><a href="#context-processing-algorithm">
-Context
-Processing
-</a>
-on
-the
-passed
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-<del class="diff-old">,
-or
-to
-</del>
-</a>,
-the
-<del class="diff-old">initial
-</del>
-<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
-<ins class="diff-chg">inverse
-</ins>
-context
-</a>
-<del class="diff-old">if
-context
-</del>
-is
-<del class="diff-old">null
-</del>
-<ins class="diff-chg">set
-to
-the
-result
-of
-performing
-the
-</ins><a href="#inverse-context-creation"><ins class="diff-chg">
-Inverse
-Context
-Creation
-algorithm
-</ins></a><ins class="diff-chg">
-on
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins>
-</a>,
-<ins class="diff-chg">the
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-property
-</a>
-is
-set
-to
-<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>,
-<del class="diff-old">and
-</del>
-<i>
-element
-</i>
-is
-set
-to
-the
-<ins class="diff-chg">result
-of
-performing
-the
-</ins><a href="#expansion-algorithm"><ins class="diff-chg">
-Expansion
-algorithm
-</ins></a><ins class="diff-chg">
-on
-the
-</ins><a class="tref internalDFN" title="json-ld-input" href="#dfn-json-ld-input">
-JSON-LD
-input
-</a>,
-<ins class="diff-new">and,
-if
-not
-passed,
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-new">
-compactArrays
-</ins></a></code><ins class="diff-new">
-is
-set
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins>
-</a>.
-</p>
-<ol class="algorithm">
-<li>
-If
-<i>
-element
-</i>
-<ins class="diff-chg">is
-a
-</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
-scalar
-</ins></a>,<ins class="diff-chg">
-it
-is
-already
-in
-its
-most
-compact
-form,
-so
-simply
-return
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-element
-</ins></i>
-is
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-<del class="diff-old">,
-process
-</del>
-</a>:
-<ol class="algorithm">
-<li>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.</li><li><ins class="diff-chg">
-For
-</ins>
-each
-<del class="diff-old">entry
-</del>
-<i>
-<ins class="diff-chg">item
-</ins></i>
-in
-<i>
-element
-<del class="diff-old">recursively
-</del>
-</i>:
-<ol class="algorithm">
-<li>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-</ins>
-using
-this
-<del class="diff-old">algorithm,
-</del>
-<ins class="diff-chg">algorithm
-recursively,
-</ins>
-passing
-<del class="diff-old">copies
-of
-the
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-<del class="diff-old">and
-</del>
-</a>,
-<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
-<ins class="diff-chg">inverse
-context
-</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-property
-<del class="diff-old">.
-</del>
-</a>,
-<ins class="diff-chg">and
-em&gt;item
-for
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-is
-not
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-then
-append
-it
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li></ol></li><li>
-If
-<i>
-<ins class="diff-new">result
-</ins></i><ins class="diff-new">
-contains
-only
-one
-item
-(it
-</ins>
-has
-a
-<ins class="diff-new">length
-of
-</ins>
-<code>
-<del class="diff-old">@container
-</del>
-<ins class="diff-chg">1
-</ins>
-</code>
-<ins class="diff-new">),
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a><ins class="diff-new">
-has
-no
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mapping
-</ins></a><ins class="diff-new">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<ins class="diff-new">
-and
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-new">
-compactArrays
-</ins></a></code><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a>,
-set
-<i>
-<ins class="diff-new">result
-</ins></i>
-to
-<del class="diff-old">@list
-and
-any
-entry
-in
-</del>
-<ins class="diff-chg">its
-only
-item.
-</ins></li><li><ins class="diff-chg">
-Return
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Otherwise
-</ins><i>
-element
-</i>
-is
-<ins class="diff-new">a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-has
-</ins>
-an
-<del class="diff-old">array
-,
-</del>
-<code>
-<ins class="diff-chg">@value
-</ins></code>
-or
-<code>
-<ins class="diff-new">@id
-</ins></code><ins class="diff-new">
-member
-and
-the
-result
-of
-using
-the
-</ins><a href="#value-compaction"><ins class="diff-new">
-Value
-Compaction
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a>,and<i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-as
-</ins><i><ins class="diff-new">
-value
-</ins></i>
-is
-a
-<a class="tref internalDFN" title="scalar" href="#dfn-scalar">
-<ins class="diff-chg">scalar
-</ins></a>,<ins class="diff-chg">
-return
-that
-result.
-</ins></li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-inside
-reverse
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-if
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-equals
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code>,<ins class="diff-chg">
-otherwise
-to
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>.</li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-<del class="diff-old">containing
-a
-</del>
-</a>.
-</li>
-<li>
-<ins class="diff-chg">For
-each
-key
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i><ins class="diff-chg">
-and
-value
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-element
-</ins></i>,<ins class="diff-chg">
-ordered
-lexicographically
-by
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i><ins class="diff-chg">
-is
-</ins>
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@id
-</ins>
-</code>
-<del class="diff-old">property,
-throw
-an
-exception,
-as
-lists
-of
-lists
-are
-not
-allowed.
-</del>
-<ins class="diff-chg">or
-</ins><code><ins class="diff-chg">
-@type
-</ins></code>:<ol class="algorithm"><li>
-If
-<i>
-<ins class="diff-new">expanded
-value
-</ins></i><ins class="diff-new">
-is
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-string
-</ins></a>,<ins class="diff-new">
-then
-initialize
-</ins><i><ins class="diff-new">
-compacted
-value
-</ins></i><ins class="diff-new">
-to
-</ins>
-the
-<ins class="diff-new">result
-of
-using
-the
-</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins></a>,<i>
-expanded
-<del class="diff-old">entry
-</del>
-<ins class="diff-chg">value
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-iri
-</ins></i>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-vocab
-</ins></i><ins class="diff-chg">
-if
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i>
-is
-<del class="diff-old">null,
-drop
-it.
-If
-it's
-an
-array,
-merge
-its
-entries
-with
-element
-'s
-entries.
-</del>
-<code>
-<ins class="diff-chg">@type
-</ins></code>,<a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a><ins class="diff-chg">
-otherwise.
-</ins>
-</li>
-<li>
-Otherwise,
-<del class="diff-old">if
-element
-is
-an
-object
-</del>
-<i>
-<ins class="diff-chg">expanded
-value
-</ins></i><ins class="diff-chg">
-must
-be
-a
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>:
-<ol class="algorithm">
-<li>
-<ins class="diff-new">Initialize
-</ins><i><ins class="diff-new">
-compacted
-value
-</ins></i><ins class="diff-new">
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>.</li><li><ins class="diff-new">
-For
-each
-item
-</ins><i><ins class="diff-new">
-expanded
-type
-</ins></i><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-expanded
-value
-</ins></i>,<ins class="diff-new">
-append
-the
-result
-of
-of
-using
-the
-</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins></a>,<i><ins class="diff-new">
-expanded
-type
-</ins></i><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-iri
-</ins></i>,<ins class="diff-new">
-and
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-vocab
-</ins></i>,<ins class="diff-new">
-to
-</ins><i><ins class="diff-new">
-compacted
-value
-</ins></i>.</li><li>
-If
-<del class="diff-old">element
-</del>
-<i>
-<ins class="diff-chg">compacted
-value
-</ins></i><ins class="diff-chg">
-contains
-only
-one
-item
-(it
-</ins>
-has
-a
-<ins class="diff-new">length
-of
-</ins>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">1
-</ins>
-</code>
-<del class="diff-old">property,
-update
-</del>
-<ins class="diff-chg">),
-then
-set
-</ins><i><ins class="diff-chg">
-compacted
-value
-</ins></i><ins class="diff-chg">
-to
-its
-only
-item.
-</ins></li></ol></li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-alias
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<ins class="diff-chg">result
-of
-using
-the
-</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-<del class="diff-old">according
-</del>
-</a>,
-<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
-<ins class="diff-chg">inverse
-context
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-iri
-</ins></i>.</li><li><ins class="diff-chg">
-Add
-a
-member
-</ins><i><ins class="diff-chg">
-alias
-</ins></i>
-to
-<del class="diff-old">the
-steps
-outlined
-in
-Context
-Processing
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i><ins class="diff-chg">
-whose
-value
-is
-set
-to
-</ins><i><ins class="diff-chg">
-compacted
-value
-</ins></i>
-and
-<del class="diff-old">remove
-</del>
-<ins class="diff-chg">continue
-to
-</ins>
-the
-<ins class="diff-new">next
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i>.</li></ol></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i><ins class="diff-new">
-is
-</ins>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">@reverse
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-compacted
-value
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-using
-this
-algorithm
-recursively,
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<code><ins class="diff-chg">
-@reverse
-</ins>
-</code>
-<del class="diff-old">property.
-</del>
-<ins class="diff-chg">for
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Then,
-proceed
-and
-process
-</del>
-<ins class="diff-chg">For
-</ins>
-each
-<i>
-property
-</i>
-and
-<i>
-value
-</i>
-in
-<del class="diff-old">element
-as
-follows:
-</del>
-<i>
-<ins class="diff-chg">compacted
-value
-</ins></i>:
-<ol class="algorithm">
-<li>
-<del class="diff-old">Remove
-property
-from
-element
-,
-expand
-property
-according
-to
-</del>
-<ins class="diff-chg">If
-</ins>
-the
-<del class="diff-old">steps
-outlined
-</del>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-<ins class="diff-chg">term
-definition
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-property
-</ins></i>
-in
-<del class="diff-old">IRI
-Expansion
-.
-Set
-</del>
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">context
-</ins>
-</a>
-<del class="diff-old">to
-the
-original
-un-expanded
-</del>
-<ins class="diff-chg">indicates
-that
-</ins><i>
-property
-<del class="diff-old">if
-</del>
-</i>
-<ins class="diff-chg">is
-a
-</ins><a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property"><ins class="diff-chg">
-reverse
-</ins>
-property
-</a>
-<ol class="algorithm">
-<li>
-<ins class="diff-chg">If
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-chg">
-compactArrays
-</ins></a></code><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i>
-is
-not
-<ins class="diff-new">an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>,<ins class="diff-new">
-set
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-to
-</ins>
-a
-<del class="diff-old">keyword
-.
-</del>
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-containing
-only
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.
-</li>
-<li>
-If
-<i>
-property
-<del class="diff-old">does
-</del>
-</i>
-<ins class="diff-chg">is
-</ins>
-not
-<del class="diff-old">expand
-to
-</del>
-a
-<del class="diff-old">keyword
-or
-</del>
-<ins class="diff-chg">member
-of
-</ins><i><ins class="diff-chg">
-result
-</ins></i>,<ins class="diff-chg">
-add
-one
-and
-set
-its
-value
-to
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-the
-value
-of
-the
-</ins><i><ins class="diff-chg">
-property
-</ins></i><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-is
-not
-</ins>
-an
-<del class="diff-old">absolute
-IRI
-(i.e.,
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a>,<ins class="diff-chg">
-set
-</ins>
-it
-<del class="diff-old">doesn't
-contain
-</del>
-<ins class="diff-chg">to
-</ins>
-a
-<del class="diff-old">colon),
-continue
-with
-</del>
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-containing
-only
-</ins>
-the
-<del class="diff-old">next
-</del>
-<ins class="diff-chg">value.
-Then
-append
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-its
-value
-if
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-not
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>,<ins class="diff-chg">
-otherwise
-append
-each
-of
-its
-items.
-</ins></li><li><ins class="diff-chg">
-Remove
-the
-</ins><i>
-property
-</i>
-<ins class="diff-new">member
-</ins>
-from
-<del class="diff-old">element
-.
-</del>
-<i>
-<ins class="diff-chg">compacted
-value
-</ins></i>.</li></ol></li></ol>
-</li>
-<li>
-If
-<i>
-<ins class="diff-chg">compacted
-</ins>
-value
-<del class="diff-old">is
-null
-and
-property
-</del>
-</i>
-<ins class="diff-chg">has
-some
-remaining
-members,
-i.e.,
-it
-</ins>
-is
-not
-<ins class="diff-new">an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-alias
-</ins></i><ins class="diff-new">
-to
-the
-result
-of
-using
-the
-</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins></a>,<ins class="diff-new">
-and
-</ins>
-<code>
-<del class="diff-old">@value
-,
-</del>
-<ins class="diff-chg">@reverse
-</ins></code><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-iri
-</ins></i>.</li><li><ins class="diff-chg">
-Set
-the
-value
-of
-the
-</ins><i><ins class="diff-chg">
-alias
-</ins></i><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-compacted
-value
-</ins></i><ins class="diff-chg">
-and
-</ins>
-continue
-with
-the
-next
-<i>
-<ins class="diff-new">expanded
-</ins>
-property
-</i>
-from
-<i>
-element
-<del class="diff-old">.
-</del>
-</i>.
-</li>
-</ol>
-</li>
-</ol>
-</li>
-<li>
-If
-<del class="diff-old">the
-</del>
-<i>
-<ins class="diff-chg">expanded
-</ins>
-property
-</i>
-is
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">@index
-</ins>
-</code>
-<ins class="diff-new">and
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a><ins class="diff-new">
-has
-a
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mapping
-</ins></a><ins class="diff-new">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a><ins class="diff-new">
-that
-is
-</ins><code><ins class="diff-new">
-@index
-</ins></code>,<ins class="diff-new">
-then
-</ins>
-the
-<del class="diff-old">value
-must
-</del>
-<ins class="diff-chg">compacted
-result
-will
-</ins>
-be
-<del class="diff-old">a
-string
-.
-Expand
-</del>
-<ins class="diff-chg">inside
-of
-an
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-container,
-drop
-</ins>
-the
-<del class="diff-old">value
-according
-</del>
-<code>
-<ins class="diff-chg">@index
-</ins></code><ins class="diff-chg">
-property
-by
-continuing
-</ins>
-to
-<del class="diff-old">IRI
-Expansion
-.
-</del>
-<ins class="diff-chg">the
-next
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i>.
-</li>
-<li>
-Otherwise,
-if
-<del class="diff-old">the
-</del>
-<i>
-<ins class="diff-chg">expanded
-</ins>
-property
-</i>
-is
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@index
-</ins></code>,<code><ins class="diff-chg">
-@value
-</ins></code>,<ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@language
-</ins>
-</code>:
-<ol class="algorithm">
-<li>
-<del class="diff-old">If
-value
-is
-a
-string
-,
-expand
-according
-</del>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-alias
-</ins></i>
-to
-<ins class="diff-chg">the
-result
-of
-using
-the
-</ins><a href="#iri-compaction">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">Expansion
-.
-</del>
-<ins class="diff-chg">Compaction
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-expanded
-property
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-iri
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-</del>
-<ins class="diff-chg">Add
-a
-member
-</ins><i><ins class="diff-chg">
-alias
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-whose
-</ins>
-value
-is
-<del class="diff-old">a
-subject
-reference
-,
-</del>
-<ins class="diff-chg">set
-to
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i><ins class="diff-chg">
-and
-continue
-with
-</ins>
-the
-<ins class="diff-new">next
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i>.</li></ol></li><li><ins class="diff-new">
-If
-</ins><i>
-expanded
-value
-</i>
-is
-<ins class="diff-new">an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-item
-active
-property
-</ins></i><ins class="diff-new">
-to
-</ins>
-the
-result
-of
-<del class="diff-old">performing
-</del>
-<ins class="diff-chg">using
-the
-</ins><a href="#iri-compaction">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">Expansion
-on
-the
-value
-of
-@id
-.
-Otherwise,
-if
-value
-is
-a
-JSON
-Object
-</del>
-<ins class="diff-chg">Compaction
-algorithm
-</ins>
-</a>,
-<del class="diff-old">it
-must
-be
-empty
-(used
-</del>
-<ins class="diff-chg">passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<i><ins class="diff-chg">
-expanded
-property
-</ins></i>
-for
-<del class="diff-old">Framing
-</del>
-<i>
-<ins class="diff-chg">iri
-</ins></i>,<i><ins class="diff-chg">
-expanded
-value
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-value
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins>
-</a>
-<del class="diff-old">).
-</del>
-<ins class="diff-chg">for
-</ins><i><ins class="diff-chg">
-vocab
-</ins></i>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-inside
-reverse
-</ins></i>.
-</li>
-<li>
-<ins class="diff-new">If
-</ins><i><ins class="diff-new">
-result
-</ins></i><ins class="diff-new">
-does
-not
-have
-the
-key
-that
-equals
-</ins><i><ins class="diff-new">
-item
-active
-property
-</ins></i>,<ins class="diff-new">
-set
-this
-key's
-value
-in
-</ins><i><ins class="diff-new">
-result
-</ins></i><ins class="diff-new">
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>.
-Otherwise,
-if
-<ins class="diff-chg">the
-key's
-</ins>
-value
-is
-<ins class="diff-new">not
-</ins>
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>,
-<del class="diff-old">all
-elements
-must
-be
-either
-a
-string
-or
-subject
-reference
-.
-Expand
-value
-for
-each
-of
-its
-entries
-using
-</del>
-<ins class="diff-chg">then
-set
-it
-to
-one
-containing
-only
-</ins>
-the
-<del class="diff-old">previous
-three
-steps.
-</del>
-<ins class="diff-chg">value.
-</ins>
-</li>
-</ol>
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-the
-property
-is
-@value
-or
-@language
-the
-</del>
-<ins class="diff-chg">At
-this
-point,
-</ins><i><ins class="diff-chg">
-expanded
-</ins>
-value
-</i>
-must
-<del class="diff-old">not
-</del>
-be
-<del class="diff-old">a
-JSON
-object
-or
-</del>
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-<ins class="diff-new">due
-to
-the
-</ins><a href="#expansion-algorithm"><ins class="diff-new">
-Expansion
-algorithm
-</ins>
-</a>.
-<ins class="diff-chg">For
-each
-item
-</ins><i><ins class="diff-chg">
-expanded
-item
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-expanded
-value
-</ins></i>:<ol class="algorithm">
-<li>
-<del class="diff-old">Otherwise,
-if
-the
-</del>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-item
-active
-</ins>
-property
-<del class="diff-old">is
-@list
-or
-@set
-expand
-value
-recursively
-using
-this
-algorithm,
-passing
-copies
-</del>
-</i>
-<ins class="diff-chg">to
-the
-result
-</ins>
-of
-<ins class="diff-new">using
-</ins>
-the
-<a href="#iri-compaction">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr><ins class="diff-chg">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>,
-<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
-<ins class="diff-new">inverse
-context
-</ins></a>,<i><ins class="diff-new">
-expanded
-property
-</ins></i><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-iri
-</ins></i>,<i><ins class="diff-new">
-expanded
-item
-</ins></i><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-value
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins>
-</a>
-<ins class="diff-new">for
-</ins><i><ins class="diff-new">
-vocab
-</ins></i>,
-and
-<i>
-<ins class="diff-chg">inside
-reverse
-</ins></i>.</li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-container
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.<ins class="diff-chg">
-If
-there
-is
-a
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-item
-</ins>
-active
-property
-<del class="diff-old">.
-If
-</del>
-</i>
-<ins class="diff-chg">in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<ins class="diff-chg">
-set
-</ins><i><ins class="diff-chg">
-container
-</ins></i><ins class="diff-chg">
-to
-its
-value.
-</ins></li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<ins class="diff-new">result
-of
-using
-this
-algorithm
-recursively,
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins></a>,<i><ins class="diff-new">
-item
-active
-property
-</ins></i><ins class="diff-new">
-for
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a>,<i>
-expanded
-<ins class="diff-chg">item
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-if
-it
-does
-not
-contain
-the
-key
-</ins><code><ins class="diff-chg">
-@list
-</ins></code>,<ins class="diff-chg">
-otherwise
-pass
-the
-key's
-associated
-</ins>
-value
-<ins class="diff-chg">for
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-expanded
-item
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i>
-is
-not
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>,
-<del class="diff-old">convert
-</del>
-<ins class="diff-chg">then
-set
-</ins>
-it
-to
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-<del class="diff-old">.
-</del>
-</a>
-<ins class="diff-chg">containing
-only
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i>.</li><li>
-If
-<del class="diff-old">property
-</del>
-<i>
-<ins class="diff-chg">container
-</ins></i>
-is
-<ins class="diff-new">not
-</ins>
-<code>
-@list
-<del class="diff-old">and
-any
-entry
-in
-value
-is
-</del>
-</code>:
-<ol class="algorithm">
-<li>
-<ins class="diff-chg">Convert
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-to
-</ins>
-a
-<a class="tref internalDFN" title="list-object" href="#dfn-list-object">
-<ins class="diff-chg">list
-object
-</ins></a><ins class="diff-chg">
-by
-setting
-it
-to
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-containing
-<del class="diff-old">an
-</del>
-<ins class="diff-chg">key-value
-pair
-where
-the
-key
-is
-the
-result
-of
-the
-</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,
-<code>
-@list
-</code>
-<del class="diff-old">property,
-throw
-an
-exception,
-as
-lists
-of
-lists
-are
-not
-supported.
-</del>
-<ins class="diff-chg">for
-</ins><i><ins class="diff-chg">
-iri
-</ins></i>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-expand
-value
-recursively
-using
-this
-algorithm,
-passing
-copies
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-expanded
-item
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins><code><ins class="diff-chg">
-@index
-</ins></code>,<ins class="diff-chg">
-then
-add
-a
-key-value
-pair
-to
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-where
-the
-key
-is
-the
-result
-</ins>
-of
-the
-<a href="#iri-compaction">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr><ins class="diff-chg">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>,
-<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
-<ins class="diff-chg">inverse
-context
-</ins></a>,<code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-as
-</ins><i><ins class="diff-chg">
-iri
-</ins></i>,
-and
-<del class="diff-old">active
-property
-.
-</del>
-<ins class="diff-chg">the
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-key
-in
-</ins><i><ins class="diff-chg">
-expanded
-item
-</ins></i><ins class="diff-chg">
-as
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.</li></ol>
-</li>
-<li>
-<del class="diff-old">If
-</del>
-<ins class="diff-chg">Otherwise,
-</ins><i><ins class="diff-chg">
-item
-active
-</ins>
-property
-<del class="diff-old">is
-</del>
-</i>
-<ins class="diff-chg">must
-</ins>
-not
-<ins class="diff-new">be
-</ins>
-a
-<del class="diff-old">keyword
-and
-</del>
-<ins class="diff-chg">key
-in
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-because
-there
-cannot
-be
-two
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-objects
-</ins></a><ins class="diff-chg">
-associated
-with
-an
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-property
-</a>
-<ins class="diff-new">that
-</ins>
-has
-a
-<del class="diff-old">@container
-</del>
-<a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">
-<ins class="diff-chg">container
-mapping
-</ins></a><ins class="diff-chg">
-;
-a
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.compaction-to-list-of-lists"><ins class="diff-chg">
-compaction
-to
-list
-of
-lists
-</ins></a>
-</code>
-<ins class="diff-new">error
-has
-been
-detected
-and
-processing
-is
-aborted.
-</ins></li></ol></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-container
-</ins></i><ins class="diff-new">
-is
-</ins>
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<del class="diff-old">and
-the
-expanded
-value
-</del>
-<ins class="diff-chg">or
-</ins><code><ins class="diff-chg">
-@index
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-item
-active
-property
-</ins></i>
-is
-<del class="diff-old">not
-null
-,
-convert
-value
-</del>
-<ins class="diff-chg">a
-key
-in
-</ins><i><ins class="diff-chg">
-result
-</ins></i>,<ins class="diff-chg">
-then
-initialize
-</ins><i><ins class="diff-chg">
-map
-object
-</ins></i><ins class="diff-chg">
-to
-its
-associated
-value,
-otherwise
-initialize
-it
-</ins>
-to
-an
-<ins class="diff-chg">empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-</ins>
-object
-<del class="diff-old">with
-an
-</del>
-</a>.
-</li>
-<li>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-container
-</ins></i><ins class="diff-chg">
-is
-</ins>
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<del class="diff-old">property
-whose
-value
-is
-</del>
-<ins class="diff-chg">and
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins><code><ins class="diff-chg">
-@value
-</ins></code>,<ins class="diff-chg">
-then
-</ins>
-set
-<i>
-<ins class="diff-new">compacted
-item
-</ins></i>
-to
-<ins class="diff-chg">the
-</ins>
-value
-<del class="diff-old">(unless
-</del>
-<ins class="diff-chg">associated
-with
-its
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-key.
-</ins></li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-map
-key
-</ins></i><ins class="diff-chg">
-to
-the
-</ins>
-value
-<del class="diff-old">is
-already
-in
-</del>
-<ins class="diff-chg">associated
-with
-with
-the
-key
-</ins>
-that
-<del class="diff-old">form).
-</del>
-<ins class="diff-chg">equals
-</ins><i><ins class="diff-chg">
-container
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-expanded
-item
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Convert
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-map
-key
-</ins></i><ins class="diff-chg">
-is
-not
-a
-key
-in
-</ins><i><ins class="diff-chg">
-map
-object
-</ins></i>,<ins class="diff-chg">
-then
-set
-this
-key's
-</ins>
-value
-<ins class="diff-chg">in
-</ins><i><ins class="diff-chg">
-map
-object
-</ins></i>
-to
-<i>
-<ins class="diff-new">compacted
-item
-</ins></i>.<ins class="diff-new">
-Otherwise,
-if
-the
-value
-is
-not
-an
-</ins>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-<del class="diff-old">form
-unless
-</del>
-</a>,
-<ins class="diff-chg">then
-set
-it
-to
-one
-containing
-only
-the
-</ins>
-value
-<del class="diff-old">is
-null
-</del>
-<ins class="diff-chg">and
-then
-append
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-to
-it.
-</ins></li></ol></li><li><ins class="diff-chg">
-Otherwise,
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-chg">
-compactArrays
-</ins>
-</a>
-<del class="diff-old">or
-property
-</del>
-</code>
-<ins class="diff-chg">is
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>,<i><ins class="diff-chg">
-container
-</ins></i>
-is
-<code>
-<del class="diff-old">@id
-,
-</del>
-<ins class="diff-chg">@set
-</ins></code><ins class="diff-chg">
-or
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@list
-</ins>
-</code>,
-<ins class="diff-new">or
-</ins><i><ins class="diff-new">
-expanded
-property
-</ins></i><ins class="diff-new">
-is
-</ins>
-<code>
-<del class="diff-old">@value
-,
-</del>
-<ins class="diff-chg">@list
-</ins></code>
-or
-<code>
-<del class="diff-old">@language
-.
-If
-value
-</del>
-<ins class="diff-chg">@graph
-</ins></code><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i>
-is
-not
-<del class="diff-old">null
-,
-either
-merge
-value
-into
-</del>
-an
-<del class="diff-old">existing
-property
-property
-of
-element
-or
-create
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a>,<ins class="diff-chg">
-set
-it
-to
-</ins>
-a
-new
-<del class="diff-old">property
-property
-with
-value
-as
-value.
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a><ins class="diff-chg">
-containing
-only
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i>.
-</li>
-<li>
-If
-<del class="diff-old">the
-processed
-element
-has
-an
-@value
-</del>
-<i>
-<ins class="diff-chg">item
-active
-</ins>
-property
-<del class="diff-old">element
-must
-</del>
-</i>
-<ins class="diff-chg">is
-</ins>
-not
-<del class="diff-old">have
-more
-than
-one
-other
-property,
-which
-can
-either
-be
-@language
-or
-@type
-with
-</del>
-a
-<del class="diff-old">string
-value.
-</del>
-<ins class="diff-chg">key
-in
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-then
-add
-the
-key-value
-pair,
-(
-</ins><i><ins class="diff-chg">
-item
-active
-property
-</ins></i><ins class="diff-chg">
--
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-),
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.
-</li>
-<li>
-<ins class="diff-new">Otherwise,
-</ins>
-if
-the
-value
-<del class="diff-old">of
-@value
-equals
-null
-,
-replace
-element
-</del>
-<ins class="diff-chg">associated
-</ins>
-with
-the
-<del class="diff-old">value
-of
-@value
-.
-Otherwise,
-if
-element
-has
-an
-@type
-</del>
-<ins class="diff-chg">key
-that
-equals
-</ins><i><ins class="diff-chg">
-item
-active
-</ins>
-property
-<del class="diff-old">and
-its
-value
-</del>
-</i>
-<ins class="diff-chg">in
-</ins><i><ins class="diff-chg">
-result
-</ins></i>
-is
-not
-<del class="diff-old">in
-the
-form
-of
-</del>
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>,
-<del class="diff-old">convert
-</del>
-<ins class="diff-chg">set
-</ins>
-it
-to
-<del class="diff-old">an
-</del>
-<ins class="diff-chg">a
-new
-</ins>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-<del class="diff-old">.
-If
-element
-has
-an
-@set
-or
-@list
-property,
-it
-must
-be
-the
-</del>
-</a>
-<ins class="diff-chg">containing
-</ins>
-only
-<del class="diff-old">property.
-Set
-element
-</del>
-<ins class="diff-chg">the
-value.
-Then
-append
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i>
-to
-the
-value
-<del class="diff-old">of
-@set
-;
-leave
-@list
-untouched.
-</del>
-<ins class="diff-chg">if
-</ins><i><ins class="diff-chg">
-compacted
-item
-</ins></i><ins class="diff-chg">
-is
-not
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>,<ins class="diff-chg">
-otherwise,
-concatenate
-it.
-</ins>
-</li>
-<del class="diff-old">If
-element
-has
-just
-a
-@language
-property,
-set
-element
-to
-null
-.
-</del>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-<li>
-<del class="diff-old">Otherwise,
-expand
-element
-according
-to
-the
-Value
-Expansion
-rules,
-passing
-copies
-of
-the
-active
-context
-and
-active
-property
-.
-</del>
-<ins class="diff-chg">Return
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.
-</li>
-</ol>
-<p>
-If,
-after
-the
-algorithm
-outlined
-above
-is
-run,
-the
-<del class="diff-old">resulting
-element
-</del>
-<ins class="diff-chg">result
-</ins><i><ins class="diff-chg">
-result
-</ins></i>
-is
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a>,<ins class="diff-chg">
-replace
-it
-with
-a
-new
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-with
-<del class="diff-old">just
-</del>
-a
-<del class="diff-old">@graph
-property,
-element
-</del>
-<ins class="diff-chg">single
-member
-whose
-key
-</ins>
-is
-<del class="diff-old">set
-to
-</del>
-the
-<del class="diff-old">value
-</del>
-<ins class="diff-chg">result
-</ins>
-of
-<ins class="diff-new">using
-the
-</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins></a>,<ins class="diff-new">
-and
-</ins>
-<code>
-@graph
-</code>
-<del class="diff-old">'s
-value.
-</del>
-<ins class="diff-chg">as
-</ins><i><ins class="diff-chg">
-iri
-</ins></i><ins class="diff-chg">
-and
-whose
-value
-is
-the
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><i><ins class="diff-chg">
-result
-</ins></i>.
-Finally,
-if
-<del class="diff-old">element
-is
-</del>
-a
-<del class="diff-old">JSON
-object
-,
-it
-is
-wrapped
-into
-</del>
-<i>
-<ins class="diff-chg">context
-</ins></i><ins class="diff-chg">
-has
-been
-passed,
-add
-</ins>
-an
-<del class="diff-old">array
-.
-</del>
-<code>
-<ins class="diff-chg">@context
-</ins></code><ins class="diff-chg">
-member
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-and
-set
-its
-value
-to
-the
-passed
-</ins><i><ins class="diff-chg">
-context
-</ins></i>.
-</p>
-</section>
-</section>
-<section id="inverse-context-creation">
-<h3>
-<span class="secno">
-<del class="diff-old">4.8
-</del>
-<ins class="diff-chg">8.2
-</ins>
-</span>
-<del class="diff-old">Compaction
-</del>
-<ins class="diff-chg">Inverse
-Context
-Creation
-</ins>
-</h3>
-<p>
-<del class="diff-old">Compaction
-</del>
-<ins class="diff-chg">When
-there
-</ins>
-is
-<ins class="diff-new">more
-than
-one
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-that
-could
-be
-chosen
-to
-compact
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>,<ins class="diff-new">
-it
-has
-to
-be
-ensured
-that
-</ins>
-the
-<del class="diff-old">process
-of
-taking
-a
-JSON-LD
-document
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a><ins class="diff-chg">
-selection
-is
-both
-deterministic
-</ins>
-and
-<del class="diff-old">applying
-a
-context
-such
-that
-</del>
-<ins class="diff-chg">represents
-</ins>
-the
-most
-<del class="diff-old">compact
-form
-of
-</del>
-<ins class="diff-chg">context-appropriate
-choice
-whilst
-taking
-into
-consideration
-algorithmic
-complexity.
-</ins></p><p><ins class="diff-chg">
-In
-order
-to
-make
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-selections,
-</ins>
-the
-<del class="diff-old">document
-</del>
-<ins class="diff-chg">concept
-of
-an
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>
-is
-<del class="diff-old">generated.
-JSON
-</del>
-<ins class="diff-chg">introduced.
-An
-</ins><dfn title="inverse-context" id="dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></dfn>
-is
-<del class="diff-old">typically
-expressed
-in
-</del>
-<ins class="diff-chg">essentially
-</ins>
-a
-<del class="diff-old">very
-compact,
-key-value
-format.
-That
-is,
-full
-IRIs
-are
-rarely
-used
-as
-keys.
-At
-times,
-</del>
-<ins class="diff-chg">reverse
-lookup
-table
-that
-maps
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mappings
-</ins></a>,<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mappings
-</ins></a>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mappings
-</ins></a><ins class="diff-chg">
-to
-</ins>
-a
-<del class="diff-old">JSON-LD
-document
-may
-</del>
-<ins class="diff-chg">simple
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-for
-a
-given
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>.<ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a><ins class="diff-chg">
-only
-needs
-to
-</ins>
-be
-<del class="diff-old">received
-that
-</del>
-<ins class="diff-chg">generated
-for
-an
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-if
-it
-</ins>
-is
-<del class="diff-old">not
-in
-its
-most
-compact
-form.
-JSON-LD,
-via
-</del>
-<ins class="diff-chg">being
-used
-for
-</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
-compaction
-</ins></a>.</p><p><ins class="diff-chg">
-To
-make
-use
-of
-an
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<ins class="diff-chg">
-a
-list
-of
-preferred
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mappings
-</ins></a><ins class="diff-chg">
-and
-</ins>
-the
-<del class="diff-old">API,
-provides
-</del>
-<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
-<ins class="diff-chg">type
-mapping
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-are
-gathered
-for
-</ins>
-a
-<del class="diff-old">way
-</del>
-<ins class="diff-chg">particular
-value
-associated
-with
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.<ins class="diff-chg">
-These
-parameters
-are
-then
-fed
-</ins>
-to
-<del class="diff-old">compact
-a
-JSON-LD
-document.
-For
-example,
-assume
-</del>
-the
-<del class="diff-old">following
-JSON-LD
-input
-document:
-</del>
-<a href="#term-selection">
-<ins class="diff-chg">Term
-Selection
-algorithm
-</ins></a>,<ins class="diff-chg">
-which
-will
-find
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-that
-most
-appropriately
-matches
-the
-value's
-mappings.
-</ins>
-</p>
-<del class="diff-old">{
-  &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Manu Sporny&quot;,
-  &quot;http://xmlns.com/foaf/0.1/homepage&quot;: {
-    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
-  }
-}
-</del>
-<section class="informative">
-<h4 id="overview-6">
-<ins class="diff-chg">Overview
-</ins></h4>
-<p>
-<del class="diff-old">Additionally,
-assume
-the
-following
-developer-supplied
-JSON-LD
-context:
-{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  }
-}
-</del>
-<em>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-<del class="diff-old">Running
-the
-JSON-LD
-Compaction
-algorithm
-</del>
-<ins class="diff-chg">To
-create
-an
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a><ins class="diff-chg">
-for
-a
-</ins>
-given
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-new">active
-context
-</ins></a>,<ins class="diff-new">
-each
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-in
-</ins>
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-new">active
-</ins>
-context
-<del class="diff-old">supplied
-above
-against
-</del>
-</a>
-<ins class="diff-chg">is
-visited,
-ordered
-by
-length,
-shortest
-first
-(ties
-are
-broken
-by
-choosing
-</ins>
-the
-<del class="diff-old">JSON-LD
-input
-document
-provided
-above
-</del>
-<ins class="diff-chg">lexicographically
-least
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-).
-For
-each
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>,<ins class="diff-chg">
-an
-entry
-is
-added
-to
-the
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a><ins class="diff-chg">
-for
-each
-possible
-combination
-of
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-that
-</ins>
-would
-<del class="diff-old">result
-in
-</del>
-<ins class="diff-chg">legally
-match
-</ins>
-the
-<del class="diff-old">following
-output:
-{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-}
-The
-compaction
-algorithm
-also
-enables
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a>.<ins class="diff-chg">
-Illegal
-matches
-include
-differences
-between
-a
-value's
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-and
-that
-of
-</ins>
-the
-<del class="diff-old">developer
-to
-map
-any
-expanded
-format
-into
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a>.<ins class="diff-chg">
-If
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-has
-no
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a>,<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a>,<ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-(or
-some
-combination
-of
-these),
-then
-it
-will
-have
-</ins>
-an
-<del class="diff-old">application-specific
-compacted
-format.
-While
-</del>
-<ins class="diff-chg">entry
-in
-</ins>
-the
-<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
-<ins class="diff-new">inverse
-</ins>
-context
-<del class="diff-old">provided
-above
-mapped
-</del>
-</a>
-<ins class="diff-chg">using
-the
-special
-key
-</ins>
-<code>
-<del class="diff-old">http://xmlns.com/foaf/0.1/name
-</del>
-<ins class="diff-chg">@none
-</ins></code>.<ins class="diff-chg">
-This
-allows
-the
-</ins><a href="#term-selection"><ins class="diff-chg">
-Term
-Selection
-algorithm
-</ins></a>
-to
-<del class="diff-old">name
-,
-it
-could
-have
-also
-mapped
-it
-</del>
-<ins class="diff-chg">fall
-back
-</ins>
-to
-<del class="diff-old">any
-arbitrary
-string
-provided
-by
-the
-developer.
-</del>
-<ins class="diff-chg">choosing
-more
-generic
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a><ins class="diff-chg">
-when
-a
-more
-specifically-matching
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-is
-not
-available
-for
-a
-particular
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
-<del class="diff-old">4.8.1
-Compaction
-</del>
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr></a><ins class="diff-chg">
-and
-value
-combination.
-</ins></p></section><section><h4 id="algorithm-6">
-Algorithm
-</h4>
-<p>
-The
-algorithm
-takes
-<del class="diff-old">three
-input
-variables:
-an
-</del>
-<ins class="diff-chg">one
-required
-input:
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-<del class="diff-old">,
-an
-active
-property
-,
-and
-</del>
-</a>
-<ins class="diff-chg">that
-the
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a><ins class="diff-chg">
-is
-being
-created
-for.
-</ins></p><ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-</ins>
-an
-<del class="diff-old">element
-</del>
-<ins class="diff-chg">empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>.</li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-default
-language
-</ins></i>
-to
-<del class="diff-old">be
-compacted.
-To
-begin,
-</del>
-<code>
-<ins class="diff-chg">@none
-</ins></code>.<ins class="diff-chg">
-If
-</ins>
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-<del class="diff-old">is
-</del>
-<ins class="diff-chg">has
-a
-</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
-default
-language
-</ins></a>,
-set
-<i>
-<ins class="diff-new">default
-language
-</ins></i>
-to
-<del class="diff-old">the
-result
-of
-performing
-Context
-Processing
-</del>
-<ins class="diff-chg">it.
-</ins></li><li><ins class="diff-chg">
-For
-each
-key
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins>
-</a>
-<del class="diff-old">on
-</del>
-<ins class="diff-chg">and
-value
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-in
-</ins>
-the
-<del class="diff-old">passed
-context
-,
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">context
-</ins></a>,<ins class="diff-chg">
-ordered
-by
-shortest
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-first
-(breaking
-ties
-by
-choosing
-the
-lexicographically
-least
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-):
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins>
-</a>
-is
-<del class="diff-old">set
-to
-</del>
-<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>,
-<del class="diff-old">and
-element
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a><ins class="diff-chg">
-cannot
-be
-selected
-during
-</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
-compaction
-</ins></a>,<ins class="diff-chg">
-so
-continue
-to
-the
-next
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>.</li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-container
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@none
-</ins></code>.<ins class="diff-chg">
-If
-there
-</ins>
-is
-<ins class="diff-new">a
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mapping
-</ins></a><ins class="diff-new">
-in
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
-term
-definition
-</ins></a>,
-set
-<i>
-<ins class="diff-new">container
-</ins></i><ins class="diff-new">
-to
-its
-associated
-value.
-</ins></li><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-iri
-</ins></i>
-to
-the
-<del class="diff-old">result
-</del>
-<ins class="diff-chg">value
-</ins>
-of
-<del class="diff-old">performing
-</del>
-the
-<del class="diff-old">Expansion
-Algorithm
-</del>
-<a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins>
-</a>
-<del class="diff-old">on
-</del>
-<ins class="diff-chg">for
-</ins>
-the
-<del class="diff-old">JSON-LD
-input
-</del>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-<ins class="diff-chg">term
-definition
-</ins>
-</a>.
-<del class="diff-old">This
-removes
-any
-existing
-context
-to
-allow
-the
-given
-active
-context
-to
-be
-cleanly
-applied.
-</del>
-</li>
-<li>
-If
-<del class="diff-old">element
-</del>
-<i>
-<ins class="diff-chg">iri
-</ins></i>
-is
-<del class="diff-old">an
-array
-,
-process
-each
-entry
-</del>
-<ins class="diff-chg">not
-a
-key
-</ins>
-in
-<del class="diff-old">element
-recursively
-using
-this
-algorithm,
-passing
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i>,<ins class="diff-chg">
-add
-</ins>
-a
-<del class="diff-old">copy
-of
-</del>
-<ins class="diff-chg">key-value
-pair
-where
-</ins>
-the
-<del class="diff-old">active
-context
-</del>
-<ins class="diff-chg">key
-is
-</ins><i><ins class="diff-chg">
-iri
-</ins></i>
-and
-the
-<del class="diff-old">active
-property
-.
-</del>
-<ins class="diff-chg">value
-is
-an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li><li><ins class="diff-chg">
-Reference
-the
-value
-associated
-with
-the
-</ins><i><ins class="diff-chg">
-iri
-</ins></i><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-container
-map
-</ins></i>.</li><li>
-If
-<del class="diff-old">element
-</del>
-<i>
-<ins class="diff-chg">container
-</ins></i>
-has
-<ins class="diff-new">no
-</ins><i><ins class="diff-new">
-container
-map
-</ins></i><ins class="diff-new">
-member,
-create
-one
-and
-set
-its
-value
-to
-</ins>
-a
-<del class="diff-old">single
-item,
-</del>
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-with
-two
-members.
-The
-first
-member
-is
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-and
-its
-value
-is
-a
-new
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>,
-the
-<del class="diff-old">compacted
-</del>
-<ins class="diff-chg">second
-member
-is
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-and
-its
-</ins>
-value
-is
-<ins class="diff-new">a
-new
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a>.</li><li><ins class="diff-new">
-Reference
-the
-value
-associated
-with
-the
-</ins><i><ins class="diff-new">
-container
-</ins></i><ins class="diff-new">
-member
-in
-</ins><i><ins class="diff-new">
-container
-map
-</ins></i><ins class="diff-new">
-using
-the
-variable
-</ins><i><ins class="diff-new">
-type/language
-map
-</ins></i>.</li><li><ins class="diff-new">
-If
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
-term
-definition
-</ins></a><ins class="diff-new">
-indicates
-</ins>
-that
-<del class="diff-old">item;
-otherwise
-</del>
-the
-<del class="diff-old">compacted
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a><ins class="diff-chg">
-represents
-a
-</ins><a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property"><ins class="diff-chg">
-reverse
-property
-</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
-Reference
-the
-</ins>
-value
-<del class="diff-old">is
-element
-.
-</del>
-<ins class="diff-chg">associated
-with
-the
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-type/language
-map
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-type
-map
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-type
-map
-</ins></i><ins class="diff-chg">
-does
-not
-have
-a
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-member,
-create
-one
-and
-set
-its
-value
-to
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-being
-processed.
-</ins></li></ol>
-</li>
-<li>
-Otherwise,
-if
-<del class="diff-old">element
-is
-an
-object:
-</del>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-<ins class="diff-chg">term
-definition
-</ins></a><ins class="diff-chg">
-has
-a
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a>:
-<ol class="algorithm">
-<li>
-<del class="diff-old">If
-element
-has
-an
-</del>
-<ins class="diff-chg">Reference
-the
-value
-associated
-with
-the
-</ins>
-<code>
-<del class="diff-old">@value
-</del>
-<ins class="diff-chg">@type
-</ins>
-</code>
-<del class="diff-old">property
-or
-element
-is
-</del>
-<ins class="diff-chg">member
-in
-</ins><i><ins class="diff-chg">
-type/language
-map
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-type
-map
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-type
-map
-</ins></i><ins class="diff-chg">
-does
-not
-have
-</ins>
-a
-<del class="diff-old">subject
-reference
-</del>
-<ins class="diff-chg">member
-corresponding
-to
-the
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins>
-</a>,
-<del class="diff-old">return
-</del>
-<ins class="diff-chg">create
-one
-and
-set
-its
-value
-to
-</ins>
-the
-<del class="diff-old">result
-of
-performing
-Value
-Compaction
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins>
-</a>
-<del class="diff-old">on
-element
-using
-active
-property
-.
-</del>
-<ins class="diff-chg">being
-processed.
-</ins></li></ol>
-</li>
-<li>
-Otherwise,
-if
-<del class="diff-old">the
-active
-property
-</del>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-<ins class="diff-chg">term
-definition
-</ins>
-</a>
-has
-a
-<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
-<ins class="diff-new">language
-mapping
-</ins></a><ins class="diff-new">
-(might
-be
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a><ins class="diff-new">
-):
-</ins><ol class="algorithm"><li><ins class="diff-new">
-Reference
-the
-value
-associated
-with
-the
-</ins>
-<code>
-<del class="diff-old">@container
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<ins class="diff-new">member
-in
-</ins><i><ins class="diff-new">
-type/language
-map
-</ins></i><ins class="diff-new">
-using
-the
-variable
-</ins><i><ins class="diff-new">
-language
-map
-</ins></i>.</li><li><ins class="diff-new">
-If
-the
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-</ins>
-mapping
-</a>
-<ins class="diff-new">equals
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-set
-</ins><i><ins class="diff-new">
-language
-</ins></i>
-to
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@null
-</ins>
-</code>
-<ins class="diff-new">;
-otherwise
-set
-it
-to
-the
-language
-code
-in
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins></a>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-language
-map
-</ins></i><ins class="diff-new">
-does
-not
-have
-a
-</ins><i><ins class="diff-new">
-language
-</ins></i><ins class="diff-new">
-member,
-create
-one
-</ins>
-and
-<del class="diff-old">element
-has
-</del>
-<ins class="diff-chg">set
-its
-value
-to
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-being
-processed.
-</ins></li></ol></li><li><ins class="diff-chg">
-Otherwise:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-Reference
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-type/language
-map
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-language
-map
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-language
-map
-</ins></i><ins class="diff-chg">
-does
-not
-have
-a
-</ins><i><ins class="diff-chg">
-default
-language
-</ins></i><ins class="diff-chg">
-member,
-create
-one
-and
-set
-its
-value
-to
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-being
-processed.
-</ins></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-language
-map
-</ins></i><ins class="diff-chg">
-does
-not
-have
-</ins>
-a
-<del class="diff-old">corresponding
-</del>
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@none
-</ins>
-</code>
-<del class="diff-old">property,
-recursively
-</del>
-<ins class="diff-chg">member,
-create
-one
-and
-set
-its
-value
-to
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-being
-processed.
-</ins></li><li><ins class="diff-chg">
-Reference
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-type/language
-map
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-type
-map
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-type
-map
-</ins></i><ins class="diff-chg">
-does
-not
-have
-a
-</ins><code><ins class="diff-chg">
-@none
-</ins></code><ins class="diff-chg">
-member,
-create
-one
-and
-set
-its
-value
-to
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-being
-processed.
-</ins></li></ol></li></ol></li><li><ins class="diff-chg">
-Return
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li></ol></section></section><section id="iri-compaction"><h3><span class="secno"><ins class="diff-chg">
-8.3
-</ins></span><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-Compaction
-</ins></h3><p><ins class="diff-chg">
-This
-algorithm
-compacts
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-to
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-compact
-<del class="diff-old">that
-property's
-</del>
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr></a>,<ins class="diff-chg">
-or
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-to
-a
-</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
-keyword
-alias
-</ins></a>.<ins class="diff-chg">
-A
-</ins>
-value
-<del class="diff-old">passing
-</del>
-<ins class="diff-chg">that
-is
-associated
-with
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-may
-be
-passed
-in
-order
-to
-assist
-in
-selecting
-the
-most
-context-appropriate
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>.</p><section class="informative"><h4 id="overview-7"><ins class="diff-chg">
-Overview
-</ins></h4><p><em><ins class="diff-chg">
-This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-If
-the
-passed
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-we
-simply
-return
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.<ins class="diff-chg">
-Otherwise,
-we
-first
-try
-to
-find
-</ins>
-a
-<del class="diff-old">copy
-of
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a><ins class="diff-chg">
-that
-</ins>
-the
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-can
-be
-compacted
-to
-if
-it
-is
-relative
-to
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-<del class="diff-old">context
-</del>
-<ins class="diff-chg">context's
-</ins>
-</a>
-<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">
-<ins class="diff-new">vocabulary
-mapping
-</ins></a>.<ins class="diff-new">
-In
-order
-to
-select
-the
-most
-appropriate
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a>,<ins class="diff-new">
-we
-may
-have
-to
-collect
-information
-about
-the
-passed
-</ins><i><ins class="diff-new">
-value
-</ins></i>.<ins class="diff-new">
-This
-information
-includes
-which
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mappings
-</ins></a><ins class="diff-new">
-would
-be
-preferred
-for
-expressing
-the
-</ins><i><ins class="diff-new">
-value
-</ins></i>,
-and
-<ins class="diff-new">what
-its
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins></a><ins class="diff-new">
-is.
-For
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
-JSON-LD
-lists
-</ins></a>,
-the
-<del class="diff-old">active
-property
-</del>
-<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
-<ins class="diff-chg">type
-mapping
-</ins>
-</a>
-<del class="diff-old">ensuring
-</del>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-will
-be
-chosen
-based
-on
-the
-most
-specific
-values
-</ins>
-that
-<ins class="diff-new">work
-for
-all
-items
-in
-</ins>
-the
-<del class="diff-old">result
-</del>
-<ins class="diff-chg">list.
-Once
-this
-information
-is
-gathered,
-it
-</ins>
-is
-<ins class="diff-new">passed
-to
-the
-</ins><a href="#term-selection"><ins class="diff-new">
-Term
-Selection
-algorithm
-</ins></a>,<ins class="diff-new">
-which
-will
-return
-the
-most
-appropriate
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-to
-use.
-</ins></p><p><ins class="diff-new">
-If
-no
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-was
-found
-that
-could
-be
-used
-to
-compact
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>,
-an
-<del class="diff-old">array
-and
-removing
-null
-</del>
-<ins class="diff-chg">attempt
-is
-made
-compact
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>
-<del class="diff-old">values.
-Return
-either
-</del>
-<ins class="diff-chg">using
-</ins>
-the
-<del class="diff-old">result
-as
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context's
-</ins></a><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
-vocabulary
-mapping
-</ins></a>,<ins class="diff-chg">
-if
-there
-is
-one.
-If
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-could
-not
-be
-compacted,
-</ins>
-an
-<del class="diff-old">array,
-</del>
-<ins class="diff-chg">attempt
-is
-made
-to
-find
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.<ins class="diff-chg">
-If
-there
-is
-no
-appropriate
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-is
-transformed
-to
-a
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
-relative
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-using
-the
-document's
-</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.<ins class="diff-chg">
-Finally,
-if
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-still
-could
-not
-be
-compacted,
-it
-is
-returned
-</ins>
-as
-<ins class="diff-new">is.
-</ins></p></section><section><h4 id="algorithm-7"><ins class="diff-new">
-Algorithm
-</ins></h4><p><ins class="diff-new">
-This
-algorithm
-takes
-three
-required
-inputs
-and
-three
-optional
-inputs.
-The
-required
-inputs
-</ins>
-an
-<del class="diff-old">object
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context
-</ins></a>,<ins class="diff-chg">
-an
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<ins class="diff-chg">
-and
-the
-</ins><i><ins class="diff-chg">
-iri
-</ins></i><ins class="diff-chg">
-to
-be
-compacted.
-The
-optional
-inputs
-are
-a
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-associated
-</ins>
-with
-<ins class="diff-new">the
-</ins><i><ins class="diff-new">
-iri
-</ins></i>,<ins class="diff-new">
-a
-</ins><i><ins class="diff-new">
-vocab
-</ins></i><ins class="diff-new">
-flag
-which
-specifies
-whether
-the
-passed
-</ins><i><ins class="diff-new">
-iri
-</ins></i><ins class="diff-new">
-should
-be
-compacted
-using
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context's
-</ins></a><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
-vocabulary
-mapping
-</ins></a>,<ins class="diff-new">
-and
-a
-</ins><i><ins class="diff-new">
-reverse
-</ins></i><ins class="diff-new">
-flag
-which
-specifies
-whether
-a
-</ins><a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property"><ins class="diff-new">
-reverse
-property
-</ins></a><ins class="diff-new">
-is
-being
-compacted.
-If
-not
-passed,
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-is
-set
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-vocab
-</ins></i><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-reverse
-</ins></i><ins class="diff-new">
-are
-both
-set
-to
-</ins><code><ins class="diff-new">
-false
-</ins></code>.</p><ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-iri
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-return
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-vocab
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-iri
-</ins></i><ins class="diff-new">
-is
-</ins>
-a
-key
-<ins class="diff-new">in
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-default
-language
-</ins></i><ins class="diff-new">
-to
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context's
-</ins></a><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-new">
-default
-language
-</ins></a>,<ins class="diff-new">
-if
-it
-has
-one,
-otherwise
-to
-</ins><code><ins class="diff-new">
-@none
-</ins></code>.</li><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-containers
-</ins></i><ins class="diff-new">
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>.<ins class="diff-new">
-This
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-will
-be
-used
-to
-keep
-track
-of
-an
-ordered
-list
-</ins>
-of
-<ins class="diff-new">preferred
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mappings
-</ins></a><ins class="diff-new">
-for
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a>,<ins class="diff-new">
-based
-on
-what
-is
-compatible
-with
-</ins><i><ins class="diff-new">
-value
-</ins></i>.</li><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-type/language
-</ins></i><ins class="diff-new">
-to
-</ins>
-<code>
-<del class="diff-old">@list
-(or
-appropriate
-alias
-from
-active
-context
-</del>
-<ins class="diff-chg">@language
-</ins></code>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-type/language
-value
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@null
-</ins></code>.<ins class="diff-chg">
-These
-two
-variables
-will
-keep
-track
-of
-the
-preferred
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins>
-</a>
-<del class="diff-old">).
-</del>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-for
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>,<ins class="diff-chg">
-based
-on
-what
-is
-compatible
-with
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-construct
-output
-as
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-</ins>
-a
-<del class="diff-old">new
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-<del class="diff-old">used
-for
-returning
-</del>
-<ins class="diff-chg">that
-contains
-</ins>
-the
-<del class="diff-old">result
-of
-compacting
-element
-.
-For
-each
-property
-</del>
-<ins class="diff-chg">key
-</ins><code><ins class="diff-chg">
-@index
-</ins></code>,<ins class="diff-chg">
-then
-append
-the
-value
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-containers
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-reverse
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<ins class="diff-chg">
-set
-</ins><i><ins class="diff-chg">
-type/language
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@type
-</ins></code>,<i><ins class="diff-chg">
-type/language
-value
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code>,
-and
-<ins class="diff-chg">append
-</ins><code><ins class="diff-chg">
-@set
-</ins></code><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-containers
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i>
-value
-</i>
-<ins class="diff-chg">is
-a
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins></a>,<ins class="diff-chg">
-then
-set
-</ins><i><ins class="diff-chg">
-type/language
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-type/language
-value
-</ins></i><ins class="diff-chg">
-to
-the
-most
-specific
-values
-that
-work
-for
-all
-items
-</ins>
-in
-<del class="diff-old">element:
-</del>
-<ins class="diff-chg">the
-list
-as
-follows:
-</ins>
-<ol class="algorithm">
-<li>
-If
-<del class="diff-old">property
-</del>
-<code>
-<ins class="diff-chg">@index
-</ins></code>
-is
-<ins class="diff-new">a
-not
-key
-in
-</ins><i><ins class="diff-new">
-value
-</ins></i>,<ins class="diff-new">
-then
-append
-</ins>
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">@list
-</ins>
-</code>
-<del class="diff-old">or
-</del>
-<ins class="diff-chg">to
-</ins><i><ins class="diff-chg">
-containers
-</ins></i>.</li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-list
-</ins></i><ins class="diff-chg">
-to
-the
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-associated
-with
-the
-key
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@list
-</ins>
-</code>
-<ins class="diff-new">in
-</ins><i><ins class="diff-new">
-value
-</ins></i>.</li><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-common
-language
-</ins></i><ins class="diff-new">
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>.<ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-list
-</ins></i><ins class="diff-new">
-is
-empty,
-set
-</ins><i><ins class="diff-new">
-common
-language
-</ins></i><ins class="diff-new">
-to
-</ins><i><ins class="diff-new">
-default
-language
-</ins></i>.</li><li><ins class="diff-new">
-For
-each
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-list
-</ins></i>:
-<ol class="algorithm">
-<li>
-<del class="diff-old">Set
-active
-property
-</del>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-item
-language
-</ins></i>
-to
-<code>
-<ins class="diff-new">@none
-</ins></code><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-item
-type
-</ins></i><ins class="diff-new">
-to
-</ins><code><ins class="diff-new">
-@none
-</ins></code>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-contains
-</ins>
-the
-<del class="diff-old">result
-of
-performing
-IRI
-Compaction
-on
-property
-.
-</del>
-<ins class="diff-chg">key
-</ins><code><ins class="diff-chg">
-@value
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins><code><ins class="diff-chg">
-@language
-</ins></code>,<ins class="diff-chg">
-then
-set
-</ins><i><ins class="diff-chg">
-item
-language
-</ins></i><ins class="diff-chg">
-to
-its
-associated
-value.
-</ins></li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-contains
-the
-key
-</ins><code><ins class="diff-chg">
-@type
-</ins></code>,<ins class="diff-chg">
-set
-</ins><i><ins class="diff-chg">
-item
-type
-</ins></i><ins class="diff-chg">
-to
-its
-associated
-value.
-</ins></li><li><ins class="diff-chg">
-Otherwise,
-set
-</ins><i><ins class="diff-chg">
-item
-language
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@null
-</ins></code>.</li></ol></li><li><ins class="diff-chg">
-Otherwise,
-set
-</ins><i><ins class="diff-chg">
-item
-type
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@id
-</ins></code>.
-</li>
-<li>
-If
-<del class="diff-old">value
-</del>
-<i>
-<ins class="diff-chg">common
-language
-</ins></i>
-is
-<del class="diff-old">a
-string
-</del>
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-chg">null
-</ins>
-</a>,
-<ins class="diff-new">set
-it
-to
-</ins><i><ins class="diff-new">
-item
-language
-</ins></i>.</li><li><ins class="diff-new">
-Otherwise,
-if
-</ins><i><ins class="diff-new">
-item
-language
-</ins></i><ins class="diff-new">
-does
-not
-equal
-</ins><i><ins class="diff-new">
-common
-language
-</ins></i><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-contains
-</ins>
-the
-<del class="diff-old">compacted
-value
-</del>
-<ins class="diff-chg">key
-</ins><code><ins class="diff-chg">
-@value
-</ins></code>,<ins class="diff-chg">
-then
-set
-</ins><i><ins class="diff-chg">
-common
-language
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@none
-</ins></code><ins class="diff-chg">
-because
-list
-items
-have
-conflicting
-languages.
-</ins></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-common
-type
-</ins></i>
-is
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-new">null
-</ins></a>,<ins class="diff-new">
-set
-it
-to
-</ins><i><ins class="diff-new">
-item
-type
-</ins></i>.</li><li><ins class="diff-new">
-Otherwise,
-if
-</ins><i><ins class="diff-new">
-item
-type
-</ins></i><ins class="diff-new">
-does
-not
-equal
-</ins><i><ins class="diff-new">
-common
-type
-</ins></i>,<ins class="diff-new">
-then
-set
-</ins><i><ins class="diff-new">
-common
-type
-</ins></i><ins class="diff-new">
-to
-</ins><code><ins class="diff-new">
-@none
-</ins></code><ins class="diff-new">
-because
-list
-items
-have
-conflicting
-types.
-</ins></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-common
-language
-</ins></i><ins class="diff-new">
-is
-</ins><code><ins class="diff-new">
-@none
-</ins></code><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-common
-type
-</ins></i><ins class="diff-new">
-is
-</ins><code><ins class="diff-new">
-@none
-</ins></code>,<ins class="diff-new">
-then
-stop
-processing
-items
-in
-</ins>
-the
-<del class="diff-old">result
-of
-performing
-IRI
-Compaction
-on
-</del>
-<ins class="diff-chg">list
-because
-it
-has
-been
-detected
-that
-there
-is
-no
-common
-language
-or
-type
-amongst
-the
-items.
-</ins></li></ol></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-common
-language
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-set
-it
-to
-</ins><code><ins class="diff-chg">
-@none
-</ins></code>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-common
-type
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-set
-it
-to
-</ins><code><ins class="diff-chg">
-@none
-</ins></code>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-common
-type
-</ins></i><ins class="diff-chg">
-is
-not
-</ins><code><ins class="diff-chg">
-@none
-</ins></code><ins class="diff-chg">
-then
-set
-</ins><i><ins class="diff-chg">
-type/language
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-type/language
-</ins>
-value
-<del class="diff-old">.
-</del>
-</i>
-<ins class="diff-chg">to
-</ins><i><ins class="diff-chg">
-common
-type
-</ins></i>.
-</li>
-<li>
-Otherwise,
-<ins class="diff-chg">set
-</ins><i><ins class="diff-chg">
-type/language
-</ins>
-value
-<del class="diff-old">must
-be
-an
-array
-.
-Perform
-IRI
-Compaction
-on
-every
-entry
-of
-</del>
-</i>
-<ins class="diff-chg">to
-</ins><i><ins class="diff-chg">
-common
-language
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Otherwise:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i>
-value
-<del class="diff-old">.
-</del>
-</i>
-<ins class="diff-chg">is
-a
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins></a>:<ol class="algorithm"><li>
-If
-<i>
-value
-</i>
-contains
-<del class="diff-old">just
-one
-entry,
-value
-is
-</del>
-<ins class="diff-chg">the
-key
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-and
-does
-not
-contain
-the
-key
-</ins><code><ins class="diff-chg">
-@index
-</ins></code>,<ins class="diff-chg">
-then
-</ins>
-set
-<i>
-<ins class="diff-new">type/language
-value
-</ins></i>
-to
-<del class="diff-old">that
-entry.
-</del>
-<ins class="diff-chg">its
-associated
-value
-and
-append
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-containers
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Add
-active
-property
-and
-</del>
-<ins class="diff-chg">Otherwise,
-if
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-contains
-</ins>
-the
-<del class="diff-old">expanded
-</del>
-<ins class="diff-chg">key
-</ins><code><ins class="diff-chg">
-@type
-</ins></code>,<ins class="diff-chg">
-then
-set
-</ins><i><ins class="diff-chg">
-type/language
-</ins>
-value
-</i>
-to
-<del class="diff-old">output
-.
-</del>
-<ins class="diff-chg">its
-associated
-value
-and
-set
-</ins><i><ins class="diff-chg">
-type/language
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@type
-</ins></code>.
-</li>
-</ol>
-</li>
-<li>
-Otherwise,
-<ins class="diff-chg">set
-</ins><i><ins class="diff-chg">
-type/language
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-and
-set
-</ins><i><ins class="diff-chg">
-type/language
-</ins>
-value
-<del class="diff-old">must
-</del>
-</i>
-<ins class="diff-chg">to
-</ins><code><ins class="diff-chg">
-@id
-</ins></code>.</li><li><ins class="diff-chg">
-Append
-</ins><code><ins class="diff-chg">
-@set
-</ins></code><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-containers
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Append
-</ins><code><ins class="diff-chg">
-@none
-</ins></code><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-containers
-</ins></i>.<ins class="diff-chg">
-This
-represents
-the
-non-existence
-of
-a
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a>,<ins class="diff-chg">
-and
-it
-will
-</ins>
-be
-<ins class="diff-new">the
-last
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mapping
-</ins></a><ins class="diff-new">
-value
-to
-be
-checked
-as
-it
-is
-the
-most
-generic.
-</ins></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-type/language
-value
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-set
-it
-to
-</ins><code><ins class="diff-new">
-@null
-</ins></code>.<ins class="diff-new">
-This
-is
-the
-key
-under
-which
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a><ins class="diff-new">
-values
-are
-stored
-in
-the
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins></a><i><ins class="diff-new">
-entry
-</ins></i>.</li><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-preferred
-values
-</ins></i><ins class="diff-new">
-to
-</ins>
-an
-<ins class="diff-new">empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>.<ins class="diff-new">
-This
-</ins>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-<ins class="diff-new">will
-indicate,
-in
-order,
-the
-preferred
-values
-for
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term's
-</ins></a><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins>
-</a>.
-</li>
-<li>
-If
-<i>
-<ins class="diff-chg">type/language
-</ins>
-value
-</i>
-is
-<del class="diff-old">empty:
-</del>
-<code>
-<ins class="diff-chg">@reverse
-</ins></code>,<ins class="diff-chg">
-append
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-preferred
-values
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-type/language
-value
-</ins></i><ins class="diff-chg">
-is
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-has
-an
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-member:
-</ins>
-<ol class="algorithm">
-<li>
-<del class="diff-old">Set
-active
-property
-to
-</del>
-<ins class="diff-chg">If
-</ins>
-the
-result
-of
-<del class="diff-old">performing
-</del>
-<ins class="diff-chg">using
-the
-</ins>
-<a href="#iri-compaction">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">Compaction
-on
-property
-.
-Create
-an
-entry
-</del>
-<ins class="diff-chg">compaction
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<ins class="diff-chg">
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-key
-</ins>
-in
-<del class="diff-old">output
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i>
-for
-<del class="diff-old">active
-property
-</del>
-<i>
-<ins class="diff-chg">iri
-</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins>
-</a>
-<ins class="diff-new">for
-</ins><i><ins class="diff-new">
-vocab
-</ins></i>,
-and
-<a class="tref internalDFN" title="true" href="#dfn-true">
-<ins class="diff-chg">true
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-document
-relative
-</ins></i><ins class="diff-chg">
-has
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-in
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-with
-an
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></a><ins class="diff-chg">
-that
-equals
-the
-</ins>
-value
-<del class="diff-old">.
-</del>
-<ins class="diff-chg">associated
-with
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-key
-in
-</ins><i><ins class="diff-chg">
-value
-</ins></i>,<ins class="diff-chg">
-then
-append
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code>,<code><ins class="diff-chg">
-@id
-</ins></code>,<ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-@none
-</ins></code>,<ins class="diff-chg">
-in
-that
-order,
-to
-</ins><i><ins class="diff-chg">
-preferred
-values
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-append
-</ins><code><ins class="diff-chg">
-@id
-</ins></code>,<code><ins class="diff-chg">
-@vocab
-</ins></code>,<ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-@none
-</ins></code>,<ins class="diff-chg">
-in
-that
-order,
-to
-</ins><i><ins class="diff-chg">
-preferred
-values
-</ins></i>.
-</li>
-</ol>
-</li>
-<li>
-<del class="diff-old">For
-each
-item
-in
-</del>
-<ins class="diff-chg">Otherwise,
-append
-</ins><i><ins class="diff-chg">
-type/language
-</ins>
-value
-<del class="diff-old">:
-</del>
-</i>
-<ins class="diff-chg">and
-</ins><code><ins class="diff-chg">
-@none
-</ins></code>,<ins class="diff-chg">
-in
-that
-order,
-to
-</ins><i><ins class="diff-chg">
-preferred
-values
-</ins></i>.</li>
-<li>
-<del class="diff-old">Set
-</del>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-the
-</ins><a href="#term-selection"><ins class="diff-chg">
-Term
-Selection
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<i><ins class="diff-chg">
-iri
-</ins></i>,<i><ins class="diff-chg">
-containers
-</ins></i>,<i><ins class="diff-chg">
-type/language
-</ins></i>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-preferred
-values
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-term
-</ins></i><ins class="diff-chg">
-is
-not
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-return
-</ins><i><ins class="diff-chg">
-term
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-At
-this
-point,
-there
-is
-no
-simple
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-that
-</ins><i><ins class="diff-chg">
-iri
-</ins></i><ins class="diff-chg">
-can
-be
-compacted
-to.
-If
-</ins><i><ins class="diff-chg">
-vocab
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">context
-</ins>
-</a>
-<ins class="diff-new">has
-a
-</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
-vocabulary
-mapping
-</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-iri
-</ins></i><ins class="diff-new">
-begins
-with
-the
-</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
-vocabulary
-mapping's
-</ins></a><ins class="diff-new">
-value
-but
-is
-longer,
-then
-initialize
-</ins><i><ins class="diff-new">
-suffix
-</ins></i>
-to
-the
-<del class="diff-old">result
-</del>
-<ins class="diff-chg">substring
-</ins>
-of
-<del class="diff-old">performing
-</del>
-<i>
-<ins class="diff-chg">iri
-</ins></i><ins class="diff-chg">
-that
-does
-not
-match.
-If
-</ins><i><ins class="diff-chg">
-suffix
-</ins></i><ins class="diff-chg">
-does
-not
-have
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-in
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<ins class="diff-chg">
-then
-return
-</ins><i><ins class="diff-chg">
-suffix
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-The
-</ins><i><ins class="diff-chg">
-iri
-</ins></i><ins class="diff-chg">
-could
-not
-be
-compacted
-using
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context's
-</ins></a><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
-vocabulary
-mapping
-</ins></a>.<ins class="diff-chg">
-Try
-to
-create
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>,
-<ins class="diff-new">starting
-by
-initializing
-</ins><i><ins class="diff-new">
-compact
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">Compaction
-</del>
-</i>
-<ins class="diff-chg">to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.<ins class="diff-chg">
-This
-variable
-will
-be
-used
-to
-tore
-the
-created
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-if
-any.
-</ins></li><li><ins class="diff-chg">
-For
-each
-key
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins>
-</a>
-<del class="diff-old">for
-property
-</del>
-and
-<del class="diff-old">item
-using
-</del>
-<ins class="diff-chg">value
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-in
-</ins>
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>:
-<ol class="algorithm">
-<li>
-<ins class="diff-new">If
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-contains
-a
-colon
-(
-</ins><code>:</code><ins class="diff-new">
-),
-then
-continue
-to
-the
-next
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-because
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-terms
-</ins></a><ins class="diff-new">
-with
-colons
-can't
-be
-used
-as
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-new">
-prefixes
-</ins>
-</a>.
-</li>
-<li>
-<del class="diff-old">Compact
-item
-by
-recursively
-performing
-this
-algorithm
-passing
-</del>
-<ins class="diff-chg">If
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-its
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></a><ins class="diff-chg">
-equals
-</ins><i><ins class="diff-chg">
-iri
-</ins></i>,<ins class="diff-chg">
-or
-its
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></a><ins class="diff-chg">
-is
-not
-</ins>
-a
-<del class="diff-old">copy
-</del>
-<ins class="diff-chg">substring
-at
-the
-beginning
-</ins>
-of
-<i>
-<ins class="diff-new">iri
-</ins></i>,
-the
-<del class="diff-old">active
-context
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a><ins class="diff-chg">
-cannot
-be
-used
-as
-a
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
-prefix
-</ins>
-</a>
-<ins class="diff-new">because
-it
-is
-not
-a
-partial
-match
-with
-</ins><i><ins class="diff-new">
-iri
-</ins></i>.<ins class="diff-new">
-Continue
-with
-the
-next
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a>.</li><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-candidate
-</ins></i><ins class="diff-new">
-by
-concatenating
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a>,<ins class="diff-new">
-a
-colon
-(
-</ins><code>:</code><ins class="diff-new">
-),
-</ins>
-and
-the
-<del class="diff-old">active
-property
-</del>
-<ins class="diff-chg">substring
-of
-</ins><i><ins class="diff-chg">
-iri
-</ins></i><ins class="diff-chg">
-that
-follows
-after
-the
-value
-of
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition's
-</ins></a><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins>
-</a>.
-</li>
-<li>
-If
-<del class="diff-old">an
-entry
-already
-exists
-</del>
-<ins class="diff-chg">either
-</ins><i><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-or
-</ins><i><ins class="diff-chg">
-candidate
-</ins></i><ins class="diff-chg">
-is
-shorter
-or
-the
-same
-length
-but
-lexicographically
-less
-than
-</ins><i><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-candidate
-</ins></i><ins class="diff-chg">
-does
-not
-have
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a>
-in
-<del class="diff-old">output
-for
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-<del class="diff-old">property
-,
-convert
-it
-to
-an
-array
-</del>
-<ins class="diff-chg">context
-</ins>
-</a>
-<ins class="diff-new">or
-</ins>
-if
-<del class="diff-old">necessary,
-and
-append
-</del>
-the
-<del class="diff-old">compacted
-</del>
-<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
-<ins class="diff-chg">term
-definition
-</ins></a><ins class="diff-chg">
-has
-an
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></a><ins class="diff-chg">
-that
-equals
-</ins><i><ins class="diff-chg">
-iri
-</ins></i><ins class="diff-chg">
-and
-</ins><i>
-value
-<del class="diff-old">.
-</del>
-</i>
-<ins class="diff-chg">is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-set
-</ins><i><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-candidate
-</ins></i>.</li></ol>
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-the
-compacted
-value
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></i>
-is
-not
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-new">null
-</ins></a>,<ins class="diff-new">
-return
-</ins><i><ins class="diff-new">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-vocab
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
-false
-</ins></a><ins class="diff-new">
-then
-transform
-</ins><i><ins class="diff-new">
-iri
-</ins></i><ins class="diff-new">
-to
-a
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
-relative
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-using
-the
-document's
-base
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>.</li><li><ins class="diff-new">
-Finally,
-return
-</ins><i><ins class="diff-new">
-iri
-</ins></i><ins class="diff-new">
-as
-is.
-</ins></li></ol></section></section><section id="term-selection"><h3><span class="secno"><ins class="diff-new">
-8.4
-</ins></span><ins class="diff-new">
-Term
-Selection
-</ins></h3><p><ins class="diff-new">
-This
-algorithm,
-invoked
-via
-the
-</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-new">
-makes
-use
-of
-</ins>
-an
-<del class="diff-old">array
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context's
-</ins></a><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a><ins class="diff-chg">
-to
-find
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-that
-is
-best
-used
-to
-</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
-compact
-</ins></a><ins class="diff-chg">
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.<ins class="diff-chg">
-Other
-information
-about
-a
-value
-associated
-with
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-is
-given,
-including
-which
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mappings
-</ins>
-</a>
-and
-<del class="diff-old">active
-property
-</del>
-<ins class="diff-chg">which
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins>
-</a>
-<ins class="diff-new">or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins></a><ins class="diff-new">
-would
-be
-best
-used
-to
-express
-the
-value.
-</ins></p><section class="informative"><h4 id="overview-8"><ins class="diff-new">
-Overview
-</ins></h4><p><em><ins class="diff-new">
-This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-new">
-The
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context's
-</ins></a><ins class="diff-new">
-entry
-for
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-will
-be
-first
-searched
-according
-to
-the
-preferred
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mappings
-</ins></a>,<ins class="diff-new">
-in
-the
-order
-that
-they
-are
-given.
-Amongst
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-terms
-</ins></a><ins class="diff-new">
-with
-a
-matching
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mapping
-</ins></a>,<ins class="diff-new">
-preference
-will
-be
-given
-to
-those
-with
-a
-matching
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins></a>,<ins class="diff-new">
-over
-those
-without
-a
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins></a>.<ins class="diff-new">
-If
-there
-is
-no
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-with
-a
-matching
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mapping
-</ins></a><ins class="diff-new">
-then
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-without
-a
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mapping
-</ins></a><ins class="diff-new">
-that
-matches
-the
-given
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins></a><ins class="diff-new">
-is
-selected.
-If
-there
-is
-still
-no
-selected
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a>,<ins class="diff-new">
-then
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-with
-no
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins></a><ins class="diff-new">
-will
-be
-selected
-if
-available.
-No
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-will
-be
-selected
-that
-</ins>
-has
-a
-<del class="diff-old">@container
-</del>
-<ins class="diff-chg">conflicting
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-</ins>
-mapping
-</a>.
-<ins class="diff-new">Ties
-between
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-terms
-</ins></a><ins class="diff-new">
-that
-have
-the
-same
-mappings
-are
-resolved
-by
-first
-choosing
-the
-shortest
-terms,
-and
-then
-by
-choosing
-the
-lexicographically
-least
-term.
-Note
-that
-these
-ties
-are
-resolved
-automatically
-because
-they
-were
-previously
-resolved
-when
-the
-</ins><a href="#inverse-context-creation"><ins class="diff-new">
-Inverse
-Context
-Creation
-algorithm
-</ins></a><ins class="diff-new">
-was
-used
-</ins>
-to
-<del class="diff-old">@set
-,
-</del>
-create
-<ins class="diff-new">the
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins></a>.</p></section><section><h4 id="algorithm-8"><ins class="diff-new">
-Algorithm
-</ins></h4><p><ins class="diff-new">
-This
-algorithm
-has
-five
-required
-inputs.
-They
-are:
-</ins>
-an
-<del class="diff-old">entry
-in
-output
-</del>
-<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
-<ins class="diff-chg">inverse
-context
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><i><ins class="diff-chg">
-iri
-</ins></i>,<ins class="diff-chg">
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><i><ins class="diff-chg">
-containers
-</ins></i><ins class="diff-chg">
-that
-represents
-an
-ordered
-list
-of
-preferred
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mappings
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><i><ins class="diff-chg">
-type/language
-</ins></i><ins class="diff-chg">
-that
-indicates
-whether
-to
-look
-</ins>
-for
-<del class="diff-old">active
-property
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins>
-</a>
-<ins class="diff-new">with
-a
-matching
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins></a>,
-and
-<del class="diff-old">value
-as
-</del>
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-<ins class="diff-new">representing
-an
-ordered
-list
-of
-</ins><i><ins class="diff-new">
-preferred
-values
-</ins></i><ins class="diff-new">
-for
-the
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
-language
-mapping
-</ins></a><ins class="diff-new">
-to
-look
-for.
-</ins></p><ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-container
-map
-</ins></i><ins class="diff-new">
-to
-the
-value
-associated
-with
-</ins><i><ins class="diff-new">
-iri
-</ins></i><ins class="diff-new">
-in
-the
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
-inverse
-context
-</ins>
-</a>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-create
-an
-entry
-</del>
-<ins class="diff-chg">For
-each
-item
-</ins><i><ins class="diff-chg">
-container
-</ins></i>
-in
-<del class="diff-old">output
-for
-active
-property
-</del>
-<i>
-<ins class="diff-chg">containers
-</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-container
-</ins></i><ins class="diff-chg">
-is
-not
-a
-key
-in
-</ins><i><ins class="diff-chg">
-container
-map
-</ins></i>,<ins class="diff-chg">
-then
-there
-is
-no
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins>
-</a>
-<del class="diff-old">and
-value
-.
-</del>
-<ins class="diff-chg">with
-a
-matching
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-for
-it,
-so
-continue
-to
-the
-next
-</ins><i><ins class="diff-chg">
-container
-</ins></i>.
-</li>
-<li>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-type/language
-map
-</ins></i><ins class="diff-chg">
-to
-the
-value
-associated
-with
-the
-</ins><i><ins class="diff-chg">
-container
-</ins></i><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-container
-map
-</ins></i>.
-</li>
-<li>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-value
-map
-</ins></i><ins class="diff-chg">
-to
-the
-value
-associated
-with
-</ins><i><ins class="diff-chg">
-type/language
-</ins></i><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-type/language
-map
-</ins></i>.
-</li>
-<li>
-<ins class="diff-chg">For
-each
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-preferred
-values
-</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-is
-not
-a
-key
-in
-</ins><i><ins class="diff-chg">
-value
-map
-</ins></i>,<ins class="diff-chg">
-then
-there
-is
-no
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-with
-a
-matching
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a>,<ins class="diff-chg">
-so
-continue
-to
-the
-next
-</ins><i><ins class="diff-chg">
-item
-</ins></i>.
-</li>
-<li>
-Otherwise,
-<ins class="diff-new">a
-matching
-term
-has
-been
-found,
-</ins>
-return
-<del class="diff-old">element
-as
-</del>
-the
-<del class="diff-old">compacted
-element
-.
-</del>
-<ins class="diff-chg">value
-associated
-with
-the
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-value
-map
-</ins></i>.</li></ol></li></ol></li><li><ins class="diff-chg">
-No
-matching
-term
-has
-been
-found.
-Return
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</li></ol></section></section><section id="value-compaction"><h3>
-<del class="diff-old">Issue
-7
-</del>
-<span class="secno">
-<ins class="diff-chg">8.5
-</ins>
-</span>
-<del class="diff-old">Perhaps
-this
-should
-also
-call
-</del>
-Value
-Compaction
-</h3>
-<p>
-<a class="tref internalDFN" title="expansion" href="#dfn-expansion">
-<ins class="diff-new">Expansion
-</ins></a><ins class="diff-new">
-transforms
-all
-values
-into
-</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form"><ins class="diff-new">
-expanded
-form
-</ins>
-</a>
-<del class="diff-old">on
-native
-types
-and
-strings,
-which
-could
-consolidate
-potential
-transformation
-</del>
-in
-<del class="diff-old">one
-place.
-If,
-after
-</del>
-<ins class="diff-chg">JSON-LD.
-This
-algorithm
-performs
-</ins>
-the
-<ins class="diff-new">opposite
-operation,
-transforming
-a
-value
-into
-</ins><dfn title="compacted-form" id="dfn-compacted-form"><ins class="diff-new">
-compacted
-form
-</ins></dfn>.<ins class="diff-new">
-This
-</ins>
-algorithm
-<del class="diff-old">outlined
-above
-</del>
-<ins class="diff-chg">compacts
-a
-value
-according
-to
-the
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-in
-the
-given
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-that
-</ins>
-is
-<del class="diff-old">run,
-</del>
-<ins class="diff-chg">associated
-with
-</ins>
-the
-<del class="diff-old">resulting
-</del>
-<ins class="diff-chg">value's
-associated
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>.</p><section class="informative"><h4 id="overview-9"><ins class="diff-chg">
-Overview
-</ins></h4><p>
-<em>
-<del class="diff-old">element
-</del>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins>
-</em>
-</p>
-<p>
-<ins class="diff-new">The
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-to
-compact
-has
-either
-an
-</ins><code><ins class="diff-new">
-@id
-</ins></code><ins class="diff-new">
-or
-an
-</ins><code><ins class="diff-new">
-@value
-</ins></code><ins class="diff-new">
-member.
-</ins></p><p><ins class="diff-new">
-For
-the
-former
-case,
-if
-the
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-of
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a>
-is
-<ins class="diff-new">set
-to
-</ins><code><ins class="diff-new">
-@id
-</ins></code><ins class="diff-new">
-or
-</ins><code><ins class="diff-new">
-@vocab
-</ins></code><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-consists
-of
-only
-of
-</ins>
-an
-<del class="diff-old">array
-,
-put
-element
-</del>
-<code>
-<ins class="diff-chg">@id
-</ins></code><ins class="diff-chg">
-member
-and,
-if
-if
-the
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-of
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-is
-set
-to
-</ins><code><ins class="diff-chg">
-@index
-</ins></code>,<ins class="diff-chg">
-an
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-member,
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-can
-be
-compacted
-to
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-by
-returning
-the
-result
-of
-using
-the
-</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-Compaction
-algorithm
-</ins></a><ins class="diff-chg">
-to
-compact
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-member.
-Otherwise,
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-cannot
-be
-compacted
-and
-is
-returned
-as
-is.
-</ins></p><p><ins class="diff-chg">
-For
-the
-latter
-case,
-it
-might
-be
-possible
-to
-compact
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-just
-</ins>
-into
-the
-<ins class="diff-new">value
-associated
-with
-the
-</ins>
-<code>
-<del class="diff-old">@graph
-</del>
-<ins class="diff-chg">@value
-</ins>
-</code>
-<ins class="diff-new">member.
-This
-can
-be
-done
-if
-the
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-</ins>
-property
-<del class="diff-old">of
-</del>
-</a>
-<ins class="diff-chg">has
-</ins>
-a
-<del class="diff-old">new
-JSON
-object
-</del>
-<ins class="diff-chg">matching
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins>
-</a>
-and
-<del class="diff-old">then
-</del>
-<ins class="diff-chg">there
-is
-either
-no
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-member
-or
-the
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-of
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-is
-</ins>
-set
-<del class="diff-old">element
-</del>
-to
-<del class="diff-old">that
-JSON
-object
-</del>
-<code>
-<ins class="diff-chg">@index
-</ins></code>.<ins class="diff-chg">
-It
-can
-also
-be
-done
-if
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-is
-the
-only
-member
-in
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-(apart
-an
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-member
-in
-case
-the
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
-container
-mapping
-</ins></a><ins class="diff-chg">
-of
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-is
-set
-to
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-)
-and
-either
-its
-associated
-value
-is
-not
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,<ins class="diff-chg">
-there
-is
-no
-</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
-default
-language
-</ins></a>,<ins class="diff-chg">
-or
-there
-is
-an
-explicit
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-for
-the
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins>
-</a>.
-<del class="diff-old">Finally,
-add
-</del>
-</p>
-</section>
-<section>
-<h4 id="algorithm-9">
-<ins class="diff-chg">Algorithm
-</ins></h4><p><ins class="diff-chg">
-This
-algorithm
-has
-four
-required
-inputs:
-an
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<ins class="diff-chg">
-an
-</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<ins class="diff-chg">
-an
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>,<ins class="diff-chg">
-and
-</ins>
-a
-<i>
-<ins class="diff-new">value
-</ins></i><ins class="diff-new">
-to
-be
-compacted.
-</ins></p><ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-number
-members
-</ins></i><ins class="diff-new">
-to
-the
-number
-of
-members
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-contains.
-</ins></li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-has
-an
-</ins>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">@index
-</ins>
-</code>
-<ins class="diff-new">member
-and
-the
-</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
-container
-mapping
-</ins></a><ins class="diff-new">
-associated
-to
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-</ins>
-property
-</a>
-<ins class="diff-new">is
-set
-</ins>
-to
-<del class="diff-old">element
-</del>
-<code>
-<ins class="diff-chg">@index
-</ins></code>,<ins class="diff-chg">
-decrease
-</ins><i><ins class="diff-chg">
-number
-members
-</ins></i><ins class="diff-chg">
-by
-</ins><code><ins class="diff-chg">
-1
-</ins></code>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-number
-members
-</ins></i><ins class="diff-chg">
-is
-greater
-than
-</ins><code><ins class="diff-chg">
-2
-</ins></code>,<ins class="diff-chg">
-return
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-as
-it
-cannot
-be
-compacted.
-</ins></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-has
-an
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-member:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-number
-members
-</ins></i><ins class="diff-chg">
-is
-</ins><code><ins class="diff-chg">
-1
-</ins></code>
-and
-<ins class="diff-new">the
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
-type
-mapping
-</ins></a><ins class="diff-new">
-of
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a><ins class="diff-new">
-is
-</ins>
-set
-<del class="diff-old">it
-</del>
-to
-<code>
-<ins class="diff-new">@id
-</ins></code>,<ins class="diff-new">
-return
-</ins>
-the
-<del class="diff-old">initially
-passed
-context
-.
-</del>
-<ins class="diff-chg">result
-of
-using
-the
-</ins><a href="#iri-compaction">
-<del class="diff-old">4.9
-RDF
-Conversion
-A
-JSON-LD
-document
-may
-be
-converted
-between
-other
-RDF-compatible
-document
-formats
-</del>
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr><ins class="diff-chg">
-compaction
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<ins class="diff-chg">
-and
-the
-value
-of
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-member
-for
-</ins><i><ins class="diff-chg">
-iri
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-number
-members
-</ins></i><ins class="diff-chg">
-is
-</ins><code><ins class="diff-chg">
-1
-</ins></code><ins class="diff-chg">
-and
-the
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins></a><ins class="diff-chg">
-of
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-is
-set
-to
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code>,<ins class="diff-chg">
-return
-the
-result
-of
-</ins>
-using
-the
-<del class="diff-old">algorithms
-specified
-in
-this
-section.
-The
-JSON-LD
-Processing
-Model
-describes
-processing
-rules
-</del>
-<a href="#iri-compaction">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr><ins class="diff-chg">
-compaction
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
-inverse
-context
-</ins></a>,<ins class="diff-chg">
-the
-value
-of
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-member
-</ins>
-for
-<del class="diff-old">extracting
-RDF
-from
-a
-JSON-LD
-document,
-</del>
-<i>
-<ins class="diff-chg">iri
-</ins></i>,
-and
-<a class="tref internalDFN" title="true" href="#dfn-true">
-<ins class="diff-new">true
-</ins></a>
-for
-<del class="diff-old">transforming
-</del>
-<i>
-<ins class="diff-chg">vocab
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-return
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-as
-is.
-</ins></li></ol></li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-has
-</ins>
-an
-<del class="diff-old">array
-of
-</del>
-<code>
-<del class="diff-old">Quad
-</del>
-<ins class="diff-chg">@type
-</ins>
-</code>
-<ins class="diff-chg">member
-whose
-value
-matches
-the
-</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
-type
-mapping
-</ins>
-</a>
-<del class="diff-old">retrieved
-by
-processing
-another
-serialization
-format
-into
-JSON-LD.
-Note
-that
-many
-uses
-</del>
-of
-<del class="diff-old">JSON-LD
-may
-not
-require
-generation
-</del>
-<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-<ins class="diff-chg">active
-property
-</ins></a>,<ins class="diff-chg">
-return
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-member
-</ins>
-of
-<del class="diff-old">RDF.
-The
-processing
-algorithms
-described
-in
-this
-section
-are
-provided
-in
-order
-to
-demonstrate
-how
-one
-might
-implement
-a
-JSON-LD
-to
-RDF
-processor.
-Conformant
-implementations
-are
-only
-required
-to
-produce
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-has
-an
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-member
-whose
-value
-matches
-</ins>
-the
-<del class="diff-old">same
-type
-and
-number
-</del>
-<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
-<ins class="diff-chg">language
-mapping
-</ins></a>
-of
-<del class="diff-old">quads
-during
-</del>
-<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-<ins class="diff-chg">active
-property
-</ins></a>,<ins class="diff-chg">
-return
-</ins>
-the
-<del class="diff-old">output
-process
-</del>
-<ins class="diff-chg">value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-number
-members
-</ins></i><ins class="diff-chg">
-equals
-</ins><code><ins class="diff-chg">
-1
-</ins></code>
-and
-<del class="diff-old">are
-</del>
-<ins class="diff-chg">either
-the
-value
-of
-the
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-member
-is
-</ins>
-not
-<del class="diff-old">required
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,<ins class="diff-chg">
-or
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-has
-no
-</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
-default
-language
-</ins></a>,<ins class="diff-chg">
-or
-the
-</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
-language
-mapping
-</ins></a><ins class="diff-chg">
-of
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-is
-set
-</ins>
-to
-<del class="diff-old">implement
-</del>
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-chg">null
-</ins></a>,,<ins class="diff-chg">
-return
-</ins>
-the
-<del class="diff-old">algorithm
-exactly
-</del>
-<ins class="diff-chg">value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-member.
-</ins></li><li><ins class="diff-chg">
-Otherwise,
-return
-</ins><i><ins class="diff-chg">
-value
-</ins></i>
-as
-<del class="diff-old">described.
-</del>
-<ins class="diff-chg">is.
-</ins></li></ol></section></section></section><section id="flattening-algorithms"><h2>
-<span class="secno">
-<del class="diff-old">4.9.1
-</del>
-<ins class="diff-chg">9.
-</ins></span><ins class="diff-chg">
-Flattening
-Algorithms
-</ins></h2><section id="flattening-algorithm"><h3><span class="secno"><ins class="diff-chg">
-9.1
-</ins>
-</span>
-<ins class="diff-new">Flattening
-Algorithm
-</ins></h3><p><ins class="diff-new">
-This
-algorithm
-flattens
-an
-expanded
-JSON-LD
-document
-by
-collecting
-all
-properties
-of
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
-node
-</ins></a><ins class="diff-new">
-in
-a
-single
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a><ins class="diff-new">
-and
-labeling
-all
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-new">
-blank
-nodes
-</ins></a><ins class="diff-new">
-with
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
-blank
-node
-identifiers
-</ins></a>.<ins class="diff-new">
-This
-resulting
-uniform
-shape
-of
-the
-document,
-may
-drastically
-simplify
-the
-code
-required
-to
-process
-JSON-LD
-data
-in
-certain
-applications.
-</ins></p><section class="informative"><h4 id="overview-10">
-Overview
-</h4>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-<del class="diff-old">JSON-LD
-</del>
-<ins class="diff-chg">First,
-a
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i>
-is
-<del class="diff-old">intended
-to
-have
-an
-easy
-to
-parse
-grammar
-that
-closely
-models
-existing
-practice
-in
-</del>
-<ins class="diff-chg">generated
-</ins>
-using
-<ins class="diff-new">the
-</ins><a href="#node-map-generation"><ins class="diff-new">
-Node
-Map
-Generation
-algorithm
-</ins></a><ins class="diff-new">
-which
-collects
-all
-properties
-of
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
-node
-</ins></a><ins class="diff-new">
-in
-a
-single
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-<del class="diff-old">for
-describing
-</del>
-object
-<del class="diff-old">representations.
-This
-allows
-</del>
-</a>.
-<ins class="diff-chg">In
-</ins>
-the
-<del class="diff-old">use
-of
-existing
-libraries
-for
-parsing
-JSON.
-</del>
-<ins class="diff-chg">next
-step,
-the
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i><ins class="diff-chg">
-is
-converted
-to
-a
-JSON-LD
-document
-in
-</ins><a class="tref externalDFN" title="flattened-document-form" href="../json-ld/#flattened-document-form"><ins class="diff-chg">
-flattened
-document
-form
-</ins></a>.<ins class="diff-chg">
-Finally,
-if
-a
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-has
-been
-passed,
-the
-flattened
-document
-is
-compacted
-using
-the
-</ins><a href="#compaction-algorithm"><ins class="diff-chg">
-Compaction
-algorithm
-</ins></a><ins class="diff-chg">
-before
-being
-returned.
-</ins>
-</p>
-</section>
-<section>
-<h4 id="algorithm-10">
-<ins class="diff-new">Algorithm
-</ins></h4>
-<p>
-<del class="diff-old">As
-with
-other
-grammars
-</del>
-<ins class="diff-chg">The
-algorithm
-takes
-two
-input
-variables,
-an
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-to
-flatten
-and
-an
-optional
-</ins><i><ins class="diff-chg">
-context
-</ins></i>
-used
-<del class="diff-old">for
-describing
-Linked
-Data
-,
-</del>
-<ins class="diff-chg">to
-compact
-the
-flattened
-document.
-If
-not
-passed,
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-is
-set
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</p><ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i><ins class="diff-chg">
-to
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-consisting
-of
-</ins>
-a
-<ins class="diff-new">single
-member
-whose
-</ins>
-key
-<del class="diff-old">concept
-</del>
-is
-<del class="diff-old">that
-</del>
-<code>
-<ins class="diff-chg">@default
-</ins></code><ins class="diff-chg">
-and
-whose
-value
-is
-an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>.</li><li><ins class="diff-chg">
-Perform
-the
-</ins><a href="#node-map-generation"><ins class="diff-chg">
-Node
-Map
-Generation
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i>.</li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-default
-graph
-</ins></i><ins class="diff-chg">
-to
-the
-value
-</ins>
-of
-<del class="diff-old">a
-</del>
-<ins class="diff-chg">the
-</ins><code><ins class="diff-chg">
-@default
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i>
-node
-<ins class="diff-new">map
-</ins></i>,<ins class="diff-new">
-which
-is
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins>
-</a>
-<ins class="diff-new">representing
-the
-</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-new">
-default
-graph
-</ins></a>.</li><li><ins class="diff-new">
-For
-each
-key-value
-pair
-</ins><i><ins class="diff-new">
-graph
-name
-</ins></i><ins class="diff-new">
--
-</ins><i><ins class="diff-new">
-graph
-</ins></i>
-in
-<i>
-<ins class="diff-new">node
-map
-</ins></i><ins class="diff-new">
-where
-</ins><i><ins class="diff-new">
-graph
-name
-</ins></i><ins class="diff-new">
-is
-not
-</ins><code><ins class="diff-new">
-@default
-</ins></code>,<ins class="diff-new">
-perform
-the
-following
-steps:
-</ins><ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-default
-graph
-</ins></i><ins class="diff-new">
-does
-not
-have
-</ins>
-a
-<del class="diff-old">linked
-data
-</del>
-<i>
-graph
-<del class="diff-old">.
-Nodes
-may
-be
-</del>
-<ins class="diff-chg">name
-</ins></i><ins class="diff-chg">
-member,
-create
-one
-and
-initialize
-its
-value
-to
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-consisting
-</ins>
-of
-<del class="diff-old">three
-basic
-types.
-The
-first
-</del>
-<ins class="diff-chg">an
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-member
-whose
-value
-</ins>
-is
-<ins class="diff-new">set
-to
-</ins><i><ins class="diff-new">
-graph
-name
-</ins></i>.</li><li><ins class="diff-new">
-Reference
-</ins>
-the
-<ins class="diff-chg">value
-associated
-with
-the
-</ins><i><ins class="diff-chg">
-graph
-name
-</ins></i><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-default
-graph
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-entry
-</ins></i>.</li><li><ins class="diff-chg">
-Add
-an
-</ins>
-<code>
-<del class="diff-old">IRI
-</del>
-<ins class="diff-chg">@graph
-</ins>
-</code>
-<del class="diff-old">,
-which
-is
-used
-</del>
-<ins class="diff-chg">member
-</ins>
-to
-<del class="diff-old">refer
-</del>
-<i>
-<ins class="diff-chg">entry
-</ins></i><ins class="diff-chg">
-and
-set
-it
-</ins>
-to
-<ins class="diff-chg">an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.</li><li><ins class="diff-chg">
-For
-each
-</ins><i><ins class="diff-chg">
-id
-</ins></i><ins class="diff-chg">
--
-</ins><i>
-node
-<del class="diff-old">s
-</del>
-</i>
-<ins class="diff-chg">pair
-</ins>
-in
-<del class="diff-old">other
-linked
-data
-</del>
-<i>
-graph
-<del class="diff-old">s.
-The
-second
-is
-</del>
-</i>
-<ins class="diff-chg">ordered
-by
-</ins><i><ins class="diff-chg">
-id
-</ins></i>,<ins class="diff-chg">
-add
-</ins><i><ins class="diff-chg">
-node
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<del class="diff-old">blank
-</del>
-<code>
-<ins class="diff-chg">@graph
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-entry
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Initialize
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><i><ins class="diff-chg">
-flattened
-</ins></i>.</li><li><ins class="diff-chg">
-For
-each
-</ins><i><ins class="diff-chg">
-id
-</ins></i><ins class="diff-chg">
--
-</ins><i>
-node
-</i>
-<ins class="diff-new">pair
-in
-</ins><i><ins class="diff-new">
-default
-graph
-</ins></i><ins class="diff-new">
-ordered
-by
-</ins><i><ins class="diff-new">
-id
-</ins></i>,<ins class="diff-new">
-add
-</ins><i><ins class="diff-new">
-node
-</ins></i><ins class="diff-new">
-to
-</ins><i><ins class="diff-new">
-flattened
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-context
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins>
-</a>,
-<del class="diff-old">which
-are
-nodes
-for
-which
-an
-external
-name
-does
-not
-exist,
-or
-</del>
-<ins class="diff-chg">return
-</ins><i><ins class="diff-chg">
-flattened
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-return
-the
-result
-of
-compacting
-</ins><i><ins class="diff-chg">
-flattened
-</ins></i><ins class="diff-chg">
-according
-the
-</ins><a href="#compaction-algorithm"><ins class="diff-chg">
-Compaction
-algorithm
-</ins></a><ins class="diff-chg">
-passing
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-ensuring
-that
-the
-compaction
-result
-uses
-the
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-keyword
-(or
-its
-alias)
-at
-the
-top-level,
-even
-if
-the
-context
-</ins>
-is
-<del class="diff-old">not
-known.
-The
-third
-</del>
-<ins class="diff-chg">empty
-or
-if
-there
-</ins>
-is
-<ins class="diff-new">only
-one
-element
-to
-put
-in
-the
-</ins><code><ins class="diff-new">
-@graph
-</ins></code><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>.<ins class="diff-new">
-This
-ensures
-that
-the
-returned
-document
-has
-</ins>
-a
-<del class="diff-old">Literal
-,
-which
-express
-values
-such
-as
-strings,
-dates
-and
-other
-information
-having
-a
-lexical
-form,
-possibly
-including
-an
-explicit
-language
-or
-datatype.
-</del>
-<ins class="diff-chg">deterministic
-structure.
-</ins></li></ol></section></section><section id="node-map-generation"><h3><span class="secno"><ins class="diff-chg">
-9.2
-</ins></span><ins class="diff-chg">
-Node
-Map
-Generation
-</ins></h3>
-<p>
-<del class="diff-old">Data
-described
-with
-JSON-LD
-may
-be
-considered
-to
-be
-</del>
-<ins class="diff-chg">This
-algorithm
-creates
-</ins>
-a
-<del class="diff-old">graph
-made
-up
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins></a><i><ins class="diff-chg">
-node
-map
-</ins></i><ins class="diff-chg">
-holding
-an
-indexed
-representation
-</ins>
-of
-<del class="diff-old">subject
-</del>
-<ins class="diff-chg">the
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-graphs
-</ins>
-</a>
-and
-<del class="diff-old">object
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">nodes
-</ins>
-</a>
-<ins class="diff-new">represented
-in
-the
-passed
-expanded
-document.
-All
-</ins>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-nodes
-</a>
-<del class="diff-old">related
-via
-</del>
-<ins class="diff-chg">that
-are
-not
-uniquely
-identified
-by
-an
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-get
-assigned
-</ins>
-a
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">(new)
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-</ins>
-node
-<ins class="diff-new">identifier
-</ins>
-</a>.
-<del class="diff-old">Specific
-implementations
-may
-also
-choose
-to
-operate
-on
-</del>
-<ins class="diff-chg">The
-resulting
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i><ins class="diff-chg">
-will
-have
-a
-member
-for
-every
-graph
-in
-</ins>
-the
-document
-<del class="diff-old">as
-</del>
-<ins class="diff-chg">whose
-value
-is
-another
-object
-with
-</ins>
-a
-<del class="diff-old">normal
-JSON
-description
-of
-objects
-having
-attributes.
-Both
-approaches
-</del>
-<ins class="diff-chg">member
-for
-every
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a><ins class="diff-chg">
-represented
-in
-the
-document.
-The
-default
-graph
-is
-stored
-under
-the
-</ins><code><ins class="diff-chg">
-@default
-</ins></code><ins class="diff-chg">
-member,
-all
-other
-graphs
-</ins>
-are
-<del class="diff-old">valid
-ways
-to
-interact
-with
-JSON-LD
-documents.
-</del>
-<ins class="diff-chg">stored
-under
-their
-</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
-graph
-name
-</ins></a>.
-</p>
-<del class="diff-old">4.9.2
-Parsing
-Examples
-</del>
-<section class="informative">
-<h4 id="overview-11">
-<ins class="diff-chg">Overview
-</ins>
-</h4>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-The
-<del class="diff-old">following
-examples
-show
-simple
-transformations
-of
-</del>
-<ins class="diff-chg">algorithm
-recursively
-runs
-over
-an
-expanded
-</ins>
-JSON-LD
-<del class="diff-old">documents
-to
-Turtle
-[
-TURTLE-TR
-].
-The
-first
-example
-uses
-a
-simple
-</del>
-document
-<del class="diff-old">containing
-a
-simple
-FOAF
-profile:
-{
-  &quot;@context&quot;: {&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;},
-  &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Gregg Kellogg&quot;,
-  &quot;foaf:knows&quot;: {
-    &quot;@type&quot;: &quot;foaf:Person&quot;,
-    &quot;foaf:name&quot;: &quot;Manu Sporny&quot;
-  }
-}
-This
-translates
-fairly
-directly
-</del>
-to
-<ins class="diff-new">collect
-all
-</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-new">
-properties
-</ins></a><ins class="diff-new">
-of
-</ins>
-a
-<del class="diff-old">similar
-Turtle
-document:
-@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt;.
-&lt;http://greggkellogg.net/foaf#me&gt; a foaf:Person;
-  foaf:name &quot;Gregg Kellogg&quot;;
-foaf:knows
-[
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">node
-</ins></a><ins class="diff-chg">
-in
-</ins>
-a
-<del class="diff-old">foaf:Person;
-foaf:name
-&quot;Manu
-Sporny&quot;].
-</del>
-<ins class="diff-chg">single
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>.
-The
-<del class="diff-old">actual
-parsing
-steps
-first
-require
-that
-</del>
-<ins class="diff-chg">algorithm
-constructs
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><i><ins class="diff-chg">
-node
-map
-</ins></i><ins class="diff-chg">
-whose
-keys
-represent
-the
-</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
-graph
-names
-</ins></a><ins class="diff-chg">
-used
-in
-</ins>
-the
-<del class="diff-old">JSON-LD
-</del>
-document
-<del class="diff-old">be
-expanded,
-to
-eliminate
-</del>
-<ins class="diff-chg">(the
-</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
-default
-graph
-</ins></a><ins class="diff-chg">
-is
-stored
-under
-</ins>
-the
-<ins class="diff-new">key
-</ins>
-<code>
-<del class="diff-old">@context
-:
-[{
-  &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-  &quot;@type&quot;: [&quot;http://xmlns.com/foaf/0.1/Person&quot;],
-  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{&quot;@value&quot;: &quot;Gregg Kellogg&quot;}],
-  &quot;http://xmlns.com/foaf/0.1/knows&quot;: [{
-    &quot;@type&quot;: [&quot;http://xmlns.com/foaf/0.1/Person&quot;],
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [{&quot;@value&quot;: &quot;Manu Sporny&quot;}]
-  }]
-}]
-The
-process
-of
-translating
-this
-to
-RDF
-then
-operates
-over
-each
-subject
-definition
-</del>
-<ins class="diff-chg">@default
-</ins></code><ins class="diff-chg">
-)
-and
-whose
-associated
-values
-are
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-objects
-</ins>
-</a>
-<del class="diff-old">to
-find
-</del>
-<ins class="diff-chg">which
-index
-the
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-nodes
-</ins></a><ins class="diff-chg">
-in
-the
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-graph
-</ins></a>.<ins class="diff-chg">
-If
-</ins>
-a
-<del class="diff-old">subject,
-each
-</del>
-<a class="tref internalDFN" title="property" href="#dfn-property">
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">property's
-</ins>
-</a>
-<del class="diff-old">to
-find
-an
-RDF
-predicate
-,
-and
-each
-</del>
-value
-<ins class="diff-new">is
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a>,<ins class="diff-new">
-it
-is
-replace
-by
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a><ins class="diff-new">
-consisting
-</ins>
-of
-<del class="diff-old">that
-property
-to
-find
-</del>
-<ins class="diff-chg">only
-</ins>
-an
-<code>
-<ins class="diff-chg">@id
-</ins></code><ins class="diff-chg">
-member.
-If
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-</ins>
-object
-<del class="diff-old">.
-In
-this
-case,
-each
-property
-</del>
-</a>
-has
-<del class="diff-old">just
-a
-single
-object:
-</del>
-<ins class="diff-chg">no
-</ins>
-<code>
-<del class="diff-old">foaf:name
-</del>
-<ins class="diff-chg">@id
-</ins>
-</code>
-<del class="diff-old">identifies
-</del>
-<ins class="diff-chg">member
-or
-it
-is
-identified
-by
-</ins>
-a
-<del class="diff-old">literal
-</del>
-<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
-<ins class="diff-chg">blank
-node
-identifier
-</ins>
-</a>,
-<del class="diff-old">and
-foaf:knows
-identifies
-</del>
-a
-<del class="diff-old">second
-subject
-definition
-</del>
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins>
-</a>
-<del class="diff-old">similar
-to
-Turtle's
-blankNodePropertyList
-.
-After
-expansion,
-JSON-LD
-numbers
-,
-booleans
-,
-typed-
-and
-language-tagged-
-literals
-,
-and
-IRIs
-</del>
-<ins class="diff-chg">is
-generated.
-This
-relabeling
-of
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins>
-</a>
-<del class="diff-old">become
-explicit,
-and
-can
-</del>
-<ins class="diff-chg">is
-also
-</ins>
-be
-<del class="diff-old">directly
-transformed
-into
-their
-RDF
-representations.
-[{
-  &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-  &quot;@type&quot;: [&quot;http://xmlns.com/foaf/0.1/Person&quot;],
-  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{&quot;@value&quot;: &quot;Gregg Kellogg&quot;}],
-  &quot;http://xmlns.com/foaf/0.1/currentProject&quot;: [{&quot;@id&quot;: &quot;http://json-ld.org/&quot;}],
-  &quot;http://xmlns.com/foaf/0.1/birthday&quot;: [{
-    &quot;@value&quot;: &quot;1957-02-27&quot;,
-    &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#date&quot;
-  }],
-  &quot;http://xmlns.com/foaf/0.1/knows&quot;: [{
-    &quot;@type&quot;: [&quot;http://xmlns.com/foaf/0.1/Person&quot;],
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [{&quot;@value&quot;: &quot;Manu Sporny&quot;}]
-  }]
-}]
-Translates
-to:
-</del>
-<ins class="diff-chg">done
-for
-</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
-properties
-</ins></a><ins class="diff-chg">
-and
-values
-of
-</ins><code><ins class="diff-chg">
-@type
-</ins></code>.
-</p>
-<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt;.
-@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;.
-&lt;http://greggkellogg.net/foaf#me&gt; a foaf:Person;
-  foaf:name &quot;Gregg Kellogg&quot;;
-  foaf:currentProject &lt;http://json-ld.org/&gt;;
-  foaf:birthday &quot;1957-02-27&quot;^^xsd:date;
-foaf:knows
-[
-a
-foaf:Person;
-foaf:name
-&quot;Manu
-Sporny&quot;].
-4.9.3
-Convert
-to
-RDF
-</del>
-</section>
-<section>
-<h4 id="algorithm-11">
-Algorithm
-</h4>
-<p>
-The
-algorithm
-<del class="diff-old">below
-is
-designed
-for
-in-memory
-implementations
-with
-random
-access
-</del>
-<ins class="diff-chg">takes
-as
-input
-an
-expanded
-JSON-LD
-document
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-and
-a
-reference
-</ins>
-to
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-<del class="diff-old">elements.
-A
-conforming
-JSON-LD
-processor
-implementing
-RDF
-conversion
-must
-implement
-a
-processing
-algorithm
-that
-results
-in
-</del>
-<i>
-<ins class="diff-chg">node
-map
-</ins></i>.<ins class="diff-chg">
-Furthermore
-it
-has
-</ins>
-the
-<del class="diff-old">same
-set
-of
-RDF
-Quads
-</del>
-<ins class="diff-chg">optional
-parameters
-</ins><a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-chg">
-active
-graph
-</ins>
-</a>
-<del class="diff-old">that
-the
-following
-algorithm
-generates:
-The
-algorithm
-takes
-five
-input
-variables:
-a
-element
-</del>
-<ins class="diff-chg">(which
-defaults
-</ins>
-to
-<del class="diff-old">be
-converted,
-</del>
-<code>
-<ins class="diff-chg">@default
-</ins></code><ins class="diff-chg">
-),
-</ins>
-an
-<a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">
-active
-subject
-</a>,
-<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-property
-</a>,
-and
-<del class="diff-old">graph
-name
-.
-To
-begin,
-the
-</del>
-<ins class="diff-chg">a
-reference
-to
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><i><ins class="diff-chg">
-list
-</ins></i>.<ins class="diff-chg">
-If
-not
-passed,
-</ins><a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">
-active
-subject
-</a>,
-<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-property
-</a>,
-and
-<del class="diff-old">graph
-name
-</del>
-<i>
-<ins class="diff-chg">list
-</ins></i>
-are
-set
-to
-<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>.
-</p>
-<ol class="algorithm">
-<li>
-<ins class="diff-new">If
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-is
-an
-array,
-process
-each
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-as
-follows
-and
-then
-return:
-</ins><ol class="algorithm"><li><ins class="diff-new">
-Run
-this
-algorithm
-recursively
-by
-passing
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-element
-</ins></i>,<i><ins class="diff-new">
-node
-map
-</ins></i>,<a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-new">
-active
-graph
-</ins></a>,<a class="tref internalDFN" title="active-subject" href="#dfn-active-subject"><ins class="diff-new">
-active
-subject
-</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins>
-</a>,
-and
-<i>
-<ins class="diff-chg">list
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Otherwise
-</ins><i>
-element
-</i>
-is
-<del class="diff-old">set
-to
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>.<ins class="diff-chg">
-Reference
-</ins>
-the
-<del class="diff-old">result
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins></a><ins class="diff-chg">
-which
-is
-the
-value
-</ins>
-of
-<del class="diff-old">performing
-</del>
-the
-<del class="diff-old">Expansion
-Algorithm
-</del>
-<a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">
-<ins class="diff-chg">active
-graph
-</ins>
-</a>
-<del class="diff-old">on
-</del>
-<ins class="diff-chg">member
-of
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i><ins class="diff-chg">
-using
-</ins>
-the
-<del class="diff-old">JSON-LD
-input
-.
-This
-removes
-any
-existing
-context
-to
-allow
-</del>
-<ins class="diff-chg">variable
-</ins><i><ins class="diff-chg">
-graph
-</ins></i>.<ins class="diff-chg">
-If
-</ins>
-the
-<del class="diff-old">given
-context
-</del>
-<a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">
-<ins class="diff-chg">active
-subject
-</ins></a><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-set
-</ins><i><ins class="diff-chg">
-node
-</ins></i>
-to
-<del class="diff-old">be
-cleanly
-applied.
-</del>
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-chg">null
-</ins></a><ins class="diff-chg">
-otherwise
-reference
-the
-</ins><a class="tref internalDFN" title="active-subject" href="#dfn-active-subject"><ins class="diff-chg">
-active
-subject
-</ins></a><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-graph
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-node
-</ins></i>.</li><li>
-If
-<i>
-element
-<del class="diff-old">is
-a
-JSON
-object
-,
-</del>
-</i>
-<ins class="diff-chg">has
-an
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-member,
-</ins>
-perform
-<ins class="diff-new">for
-each
-</ins><i><ins class="diff-new">
-item
-</ins></i>
-the
-following
-steps:
-<ol class="algorithm">
-<li>
-<del class="diff-old">Set
-active
-object
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>,<ins class="diff-chg">
-replace
-it
-with
-a
-newly
-</ins><a href="#generate-blank-node-identifier"><ins class="diff-chg">
-generated
-blank
-node
-identifier
-</ins>
-</a>
-<ins class="diff-new">passing
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-identifier
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-graph
-</ins></i><ins class="diff-new">
-has
-no
-member
-</ins><i><ins class="diff-new">
-item
-</ins></i>,<ins class="diff-new">
-create
-one
-and
-initialize
-its
-value
-</ins>
-to
-<del class="diff-old">null
-.
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-consisting
-of
-a
-single
-member
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-whose
-value
-is
-</ins><i><ins class="diff-chg">
-item
-</ins></i>.</li></ol>
-</li>
-<li>
-If
-<i>
-element
-</i>
-has
-<del class="diff-old">a
-</del>
-<ins class="diff-chg">an
-</ins>
-<code>
-@value
-</code>
-<del class="diff-old">property:
-</del>
-<ins class="diff-chg">member,
-perform
-the
-following
-steps:
-</ins>
-<ol class="algorithm">
-<li>
-If
-<del class="diff-old">the
-</del>
-<i>
-<ins class="diff-chg">list
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-node
-</ins></i><ins class="diff-chg">
-does
-not
-have
-an
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-member,
-create
-one
-and
-initialize
-its
-</ins>
-value
-<ins class="diff-new">to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-containing
-</ins><i><ins class="diff-new">
-element
-</ins></i>.</li><li><ins class="diff-new">
-Otherwise,
-compare
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-against
-every
-item
-in
-the
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-associated
-with
-the
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-property
-</ins></a><ins class="diff-new">
-member
-</ins>
-of
-<del class="diff-old">@value
-</del>
-<i>
-<ins class="diff-chg">node
-</ins></i>.<ins class="diff-chg">
-If
-there
-</ins>
-is
-<del class="diff-old">a
-number
-,
-set
-</del>
-<ins class="diff-chg">no
-item
-equivalent
-to
-</ins><i><ins class="diff-chg">
-element
-</ins></i>,<ins class="diff-chg">
-append
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<del class="diff-old">active
-object
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a>.<ins class="diff-chg">
-Two
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-objects
-</ins>
-</a>
-<ins class="diff-new">are
-considered
-equal
-if
-they
-have
-equivalent
-key-value
-pairs.
-</ins></li></ol></li><li><ins class="diff-new">
-Otherwise,
-append
-</ins><i><ins class="diff-new">
-element
-</ins></i>
-to
-<ins class="diff-new">the
-</ins><code><ins class="diff-new">
-@list
-</ins></code><ins class="diff-new">
-member
-of
-</ins><i><ins class="diff-new">
-list
-</ins></i>.</li></ol></li><li><ins class="diff-new">
-Otherwise,
-if
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-has
-an
-</ins><code><ins class="diff-new">
-@list
-</ins></code><ins class="diff-new">
-member,
-perform
-the
-following
-steps:
-</ins><ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins>
-a
-<del class="diff-old">typed
-literal
-</del>
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins>
-</a>
-<del class="diff-old">using
-a
-string
-representation
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i><ins class="diff-chg">
-consisting
-</ins>
-of
-<del class="diff-old">the
-</del>
-<ins class="diff-chg">a
-single
-member
-</ins><code><ins class="diff-chg">
-@list
-</ins></code><ins class="diff-chg">
-whose
-</ins>
-value
-<del class="diff-old">as
-defined
-in
-the
-section
-Data
-Round
-Tripping
-.
-Set
-datatype
-</del>
-<ins class="diff-chg">is
-initialized
-</ins>
-to
-<ins class="diff-new">an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>.</li><li><ins class="diff-new">
-Recursively
-call
-this
-algorithm
-passing
-</ins>
-the
-value
-of
-<del class="diff-old">the
-</del>
-<i>
-<ins class="diff-chg">element's
-</ins></i>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@list
-</ins>
-</code>
-<ins class="diff-new">member
-for
-</ins><i><ins class="diff-new">
-element
-</ins></i>,<a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-new">
-active
-graph
-</ins></a>,<a class="tref internalDFN" title="active-subject" href="#dfn-active-subject"><ins class="diff-new">
-active
-subject
-</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
-active
-</ins>
-property
-<del class="diff-old">if
-it
-exists,
-otherwise
-either
-xsd:integer
-or
-xsd:double
-,
-depending
-on
-if
-</del>
-</a>,
-<ins class="diff-chg">and
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-list
-</ins></i>.</li><li><ins class="diff-chg">
-Append
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-to
-the
-</ins>
-the
-value
-<del class="diff-old">contains
-</del>
-<ins class="diff-chg">of
-the
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-node
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Otherwise
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-is
-</ins>
-a
-<del class="diff-old">fractional
-and/or
-</del>
-<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
-<ins class="diff-chg">node
-object
-</ins></a>,<ins class="diff-chg">
-perform
-the
-following
-steps:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-element
-</ins></i><ins class="diff-chg">
-has
-</ins>
-an
-<del class="diff-old">exponential
-component.
-</del>
-<code>
-<ins class="diff-chg">@id
-</ins></code><ins class="diff-chg">
-member,
-set
-</ins><i><ins class="diff-chg">
-id
-</ins></i><ins class="diff-chg">
-to
-its
-value
-and
-remove
-the
-member
-from
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.<ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-id
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>,<ins class="diff-chg">
-replace
-it
-with
-a
-newly
-</ins><a href="#generate-blank-node-identifier"><ins class="diff-chg">
-generated
-blank
-node
-identifier
-</ins></a><ins class="diff-chg">
-passing
-</ins><i><ins class="diff-chg">
-id
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-identifier
-</ins></i>.
-</li>
-<li>
-Otherwise,
-<del class="diff-old">if
-</del>
-<ins class="diff-chg">set
-</ins><i><ins class="diff-chg">
-id
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-</ins>
-the
-<a href="#generate-blank-node-identifier">
-<ins class="diff-new">Generate
-Blank
-Node
-Identifier
-algorithm
-</ins></a><ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-identifier
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-graph
-</ins></i><ins class="diff-new">
-does
-not
-contain
-a
-member
-</ins><i><ins class="diff-new">
-id
-</ins></i>,<ins class="diff-new">
-create
-one
-and
-initialize
-its
-</ins>
-value
-<ins class="diff-new">to
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a><ins class="diff-new">
-consisting
-</ins>
-of
-<ins class="diff-new">a
-single
-member
-</ins>
-<code>
-<del class="diff-old">@value
-</del>
-<ins class="diff-chg">@id
-</ins>
-</code>
-<ins class="diff-new">whose
-value
-</ins>
-is
-<del class="diff-old">true
-or
-false
-,
-set
-the
-</del>
-<i>
-<ins class="diff-chg">id
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
-active
-<ins class="diff-new">property
-</ins></a><ins class="diff-new">
-is
-not
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-perform
-the
-following
-steps:
-</ins><ol class="algorithm"><li><ins class="diff-new">
-Create
-a
-new
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-</ins>
-object
-</a>
-<del class="diff-old">to
-</del>
-<i>
-<ins class="diff-chg">reference
-</ins></i><ins class="diff-chg">
-consisting
-of
-</ins>
-a
-<del class="diff-old">typed
-literal
-</del>
-<ins class="diff-chg">single
-member
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-whose
-value
-is
-</ins><i><ins class="diff-chg">
-id
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-list
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-node
-</ins></i><ins class="diff-chg">
-does
-not
-have
-an
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins>
-</a>
-<del class="diff-old">created
-from
-</del>
-<ins class="diff-chg">member,
-create
-one
-and
-initialize
-its
-value
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-containing
-</ins><i><ins class="diff-chg">
-reference
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-compare
-</ins><i><ins class="diff-chg">
-reference
-</ins></i><ins class="diff-chg">
-against
-every
-item
-in
-</ins>
-the
-<del class="diff-old">string
-representation
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a><ins class="diff-chg">
-associated
-with
-the
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a><ins class="diff-chg">
-member
-</ins>
-of
-<i>
-<ins class="diff-new">node
-</ins></i>.<ins class="diff-new">
-If
-there
-is
-no
-item
-equivalent
-to
-</ins><i><ins class="diff-new">
-reference
-</ins></i>,<ins class="diff-new">
-append
-</ins><i><ins class="diff-new">
-reference
-</ins></i><ins class="diff-new">
-to
-</ins>
-the
-<del class="diff-old">value.
-Set
-datatype
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a>.<ins class="diff-chg">
-Two
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-objects
-</ins></a><ins class="diff-chg">
-are
-considered
-equal
-if
-they
-have
-equivalent
-key-value
-pairs.
-</ins></li></ol></li><li><ins class="diff-chg">
-Otherwise,
-append
-</ins><i><ins class="diff-chg">
-element
-</ins></i>
-to
-the
-<code>
-<ins class="diff-new">@list
-</ins></code><ins class="diff-new">
-member
-of
-</ins><i><ins class="diff-new">
-list
-</ins></i>.</li></ol></li><li><ins class="diff-new">
-Reference
-the
-</ins>
-value
-of
-the
-<i>
-<ins class="diff-new">id
-</ins></i><ins class="diff-new">
-member
-of
-</ins><i><ins class="diff-new">
-graph
-</ins></i><ins class="diff-new">
-using
-the
-variable
-</ins><i><ins class="diff-new">
-node
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-has
-an
-</ins>
-<code>
-@type
-</code>
-<del class="diff-old">property
-if
-</del>
-<ins class="diff-chg">key,
-append
-each
-item
-of
-its
-associated
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-to
-the
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-key
-of
-</ins><i><ins class="diff-chg">
-node
-</ins></i><ins class="diff-chg">
-unless
-</ins>
-it
-<del class="diff-old">exists,
-otherwise
-</del>
-<ins class="diff-chg">is
-already
-in
-that
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.<ins class="diff-chg">
-Finally
-remove
-the
-</ins>
-<code>
-<del class="diff-old">xsd:boolean
-.
-</del>
-<ins class="diff-chg">@type
-</ins></code><ins class="diff-chg">
-member
-from
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-</del>
-<ins class="diff-chg">If
-</ins><i>
-element
-<del class="diff-old">contains
-a
-</del>
-</i>
-<ins class="diff-chg">has
-an
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@index
-</ins>
-</code>
-<del class="diff-old">property,
-</del>
-<ins class="diff-chg">member,
-</ins>
-set
-the
-<del class="diff-old">active
-object
-</del>
-<code>
-<ins class="diff-chg">@index
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-node
-</ins></i>
-to
-<ins class="diff-new">its
-value.
-If
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
-node
-</ins></a><ins class="diff-new">
-has
-already
-an
-</ins><code><ins class="diff-new">
-@index
-</ins></code><ins class="diff-new">
-member
-with
-</ins>
-a
-<del class="diff-old">typed
-literal
-.
-</del>
-<ins class="diff-chg">different
-value,
-a
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.conflicting-indexes"><ins class="diff-chg">
-conflicting
-indexes
-</ins></a></code><ins class="diff-chg">
-error
-has
-been
-detected
-and
-processing
-is
-aborted.
-Otherwise,
-continue
-by
-removing
-the
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-member
-from
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-if
-</del>
-<ins class="diff-chg">If
-</ins><i>
-element
-<del class="diff-old">contains
-a
-</del>
-</i>
-<ins class="diff-chg">has
-an
-</ins>
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@reverse
-</ins>
-</code>
-<del class="diff-old">property,
-set
-the
-active
-</del>
-<ins class="diff-chg">member:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-Create
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-</ins>
-object
-</a>
-<del class="diff-old">to
-</del>
-<i>
-<ins class="diff-chg">referenced
-node
-</ins></i><ins class="diff-chg">
-with
-</ins>
-a
-<del class="diff-old">language-tagged
-literal
-.
-</del>
-<ins class="diff-chg">single
-member
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-whose
-value
-is
-</ins><i><ins class="diff-chg">
-id
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-set
-</del>
-<ins class="diff-chg">Set
-</ins><i><ins class="diff-chg">
-reverse
-map
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<del class="diff-old">active
-object
-</del>
-<ins class="diff-chg">value
-of
-the
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.</li><li><ins class="diff-chg">
-For
-each
-key-value
-pair
-</ins><i><ins class="diff-chg">
-property
-</ins></i><ins class="diff-chg">
--
-</ins><i><ins class="diff-chg">
-values
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-reverse
-map
-</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
-For
-each
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-values
-</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-has
-a
-</ins><i><ins class="diff-chg">
-property
-</ins></i><ins class="diff-chg">
-member,
-append
-</ins><i><ins class="diff-chg">
-referenced
-node
-</ins></i>
-to
-<ins class="diff-new">its
-value;
-otherwise
-create
-</ins>
-a
-<del class="diff-old">typed
-literal
-</del>
-<i>
-<ins class="diff-chg">property
-</ins></i><ins class="diff-chg">
-member
-whose
-value
-is
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins>
-</a>
-<del class="diff-old">using
-</del>
-<ins class="diff-chg">containing
-</ins><i><ins class="diff-chg">
-referenced
-node
-</ins></i>.</li><li><ins class="diff-chg">
-Recursively
-invoke
-this
-algorithm
-passing
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-element
-</ins></i>,<i><ins class="diff-chg">
-node
-map
-</ins></i>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-chg">
-active
-graph
-</ins></a>.</li></ol></li></ol></li><li><ins class="diff-chg">
-Remove
-the
-</ins>
-<code>
-<del class="diff-old">xsd:string
-</del>
-<ins class="diff-chg">@reverse
-</ins>
-</code>
-<del class="diff-old">as
-the
-datatype.
-</del>
-<ins class="diff-chg">member
-from
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.
-</li>
-</ol>
-</li>
-<li>
-If
-<i>
-element
-</i>
-has
-<del class="diff-old">a
-</del>
-<ins class="diff-chg">an
-</ins>
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@graph
-</ins></code><ins class="diff-chg">
-member,
-recursively
-invoke
-this
-algorithm
-passing
-the
-value
-of
-the
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-member
-for
-</ins><i><ins class="diff-chg">
-element
-</ins></i>,<i><ins class="diff-chg">
-node
-map
-</ins></i>,<ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-id
-</ins></i><ins class="diff-chg">
-for
-</ins><a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-chg">
-active
-graph
-</ins></a><ins class="diff-chg">
-before
-removing
-the
-</ins><code><ins class="diff-chg">
-@graph
-</ins>
-</code>
-<ins class="diff-new">member
-from
-</ins><i><ins class="diff-new">
-element
-</ins></i>.</li><li><ins class="diff-new">
-Finally,
-for
-each
-key-value
-pair
-</ins><i><ins class="diff-new">
-property
-</ins></i><ins class="diff-new">
--
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-ordered
-by
-</ins><i>
-property
-</i>
-<ins class="diff-new">perform
-</ins>
-the
-<ins class="diff-new">following
-steps:
-</ins><ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-property
-</ins></i><ins class="diff-new">
-is
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
-blank
-node
-identifier
-</ins></a>,<ins class="diff-new">
-replace
-it
-with
-a
-newly
-</ins><a href="#generate-blank-node-identifier"><ins class="diff-new">
-generated
-blank
-node
-identifier
-</ins></a><ins class="diff-new">
-passing
-</ins><i><ins class="diff-new">
-property
-</ins></i><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-identifier
-</ins></i>.</li><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-node
-</ins></i><ins class="diff-new">
-does
-not
-have
-a
-</ins><i><ins class="diff-new">
-property
-</ins></i><ins class="diff-new">
-member,
-create
-one
-and
-initialize
-its
-</ins>
-value
-<del class="diff-old">must
-be
-</del>
-<ins class="diff-chg">to
-</ins>
-an
-<ins class="diff-new">empty
-</ins>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>.
-<del class="diff-old">Process
-its
-</del>
-</li>
-<li>
-<ins class="diff-chg">Recursively
-invoke
-this
-algorithm
-passing
-</ins><i>
-value
-<del class="diff-old">as
-a
-</del>
-</i>
-<ins class="diff-chg">for
-</ins><i><ins class="diff-chg">
-element
-</ins></i>,<i><ins class="diff-chg">
-node
-map
-</ins></i>,<a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-chg">
-active
-graph
-</ins></a>,<i><ins class="diff-chg">
-id
-</ins></i><ins class="diff-chg">
-for
-</ins><a class="tref internalDFN" title="active-subject" href="#dfn-active-subject"><ins class="diff-chg">
-active
-subject
-</ins></a>,<i><ins class="diff-chg">
-property
-</ins></i><ins class="diff-chg">
-for
-</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
-active
-property
-</ins></a>,<ins class="diff-chg">
-and
-</ins><i>
-list
-<del class="diff-old">as
-described
-in
-List
-Conversion
-</del>
-</i>.
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</section>
-</section>
-<section id="generate-blank-node-identifier">
-<h3>
-<span class="secno">
-<ins class="diff-chg">9.3
-</ins></span><ins class="diff-chg">
-Generate
-Blank
-Node
-Identifier
-</ins></h3><p><ins class="diff-chg">
-This
-algorithm
-is
-used
-to
-determine
-if
-two
-generate
-new
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins>
-</a>
-<del class="diff-old">using
-</del>
-<ins class="diff-chg">or
-to
-relabel
-an
-existing
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a><ins class="diff-chg">
-to
-avoid
-collision
-by
-</ins>
-the
-<del class="diff-old">return
-value
-as
-</del>
-<ins class="diff-chg">introduction
-of
-new
-ones.
-</ins></p><section class="informative"><h4 id="overview-12"><ins class="diff-chg">
-Overview
-</ins></h4><p><em><ins class="diff-chg">
-This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-The
-simplest
-case
-is
-if
-there
-exists
-already
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a><ins class="diff-chg">
-in
-</ins>
-the
-<del class="diff-old">active
-object
-</del>
-<i>
-<ins class="diff-chg">identifier
-map
-</ins></i><ins class="diff-chg">
-for
-the
-passed
-</ins><i><ins class="diff-chg">
-identifier
-</ins></i>,<ins class="diff-chg">
-in
-which
-case
-it
-is
-simply
-returned.
-Otherwise,
-a
-new
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins>
-</a>
-<ins class="diff-chg">is
-generated
-by
-concatenating
-the
-string
-</ins><code><ins class="diff-chg">
-_:b
-</ins></code><ins class="diff-chg">
-and
-the
-</ins><i><ins class="diff-chg">
-counter
-</ins></i>.
-If
-<del class="diff-old">active
-object
-</del>
-<ins class="diff-chg">the
-passed
-</ins><i><ins class="diff-chg">
-identifier
-</ins></i>
-is
-not
-<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-<del class="diff-old">:
-</del>
-</a>,
-<ins class="diff-chg">an
-entry
-is
-created
-in
-the
-</ins><i><ins class="diff-chg">
-identifier
-map
-</ins></i><ins class="diff-chg">
-associating
-the
-</ins><i><ins class="diff-chg">
-identifier
-</ins></i><ins class="diff-chg">
-with
-the
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>.<ins class="diff-chg">
-Finally,
-the
-</ins><i><ins class="diff-chg">
-counter
-</ins></i><ins class="diff-chg">
-is
-increased
-by
-one
-and
-the
-new
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a><ins class="diff-chg">
-is
-returned.
-</ins></p></section><section><h4 id="algorithm-12"><ins class="diff-chg">
-Algorithm
-</ins></h4><p><ins class="diff-chg">
-The
-algorithm
-takes
-a
-single
-input
-variable
-</ins><i><ins class="diff-chg">
-identifier
-</ins></i><ins class="diff-chg">
-which
-may
-be
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.<ins class="diff-chg">
-Between
-its
-executions,
-the
-algorithm
-needs
-to
-keep
-an
-</ins><i><ins class="diff-chg">
-identifier
-map
-</ins></i><ins class="diff-chg">
-to
-relabel
-existing
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a><ins class="diff-chg">
-consistently
-and
-a
-</ins><i><ins class="diff-chg">
-counter
-</ins></i><ins class="diff-chg">
-to
-generate
-new
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a>.<ins class="diff-chg">
-The
-</ins><i><ins class="diff-chg">
-counter
-</ins></i><ins class="diff-chg">
-is
-initialized
-to
-</ins><code><ins class="diff-chg">
-0
-</ins></code><ins class="diff-chg">
-by
-default.
-</ins></p>
-<ol class="algorithm">
-<li>
-If
-<del class="diff-old">neither
-active
-subject
-nor
-active
-property
-are
-</del>
-<i>
-<ins class="diff-chg">identifier
-</ins></i><ins class="diff-chg">
-is
-not
-</ins>
-<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-<del class="diff-old">,
-</del>
-</a>
-<ins class="diff-chg">and
-has
-an
-entry
-in
-the
-</ins><i><ins class="diff-chg">
-identifier
-map
-</ins></i>,<ins class="diff-chg">
-return
-the
-mapped
-identifier.
-</ins></li><li><ins class="diff-chg">
-Otherwise,
-</ins>
-generate
-a
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a><ins class="diff-chg">
-by
-concatenating
-the
-string
-</ins>
-<code>
-<del class="diff-old">Quad
-</del>
-<ins class="diff-chg">_:b
-</ins>
-</code>
-<del class="diff-old">representing
-active
-subject
-,
-active
-property
-,
-active
-object
-</del>
-<ins class="diff-chg">and
-</ins><i><ins class="diff-chg">
-counter
-</ins></i>.</li><li><ins class="diff-chg">
-Increment
-</ins><i><ins class="diff-chg">
-counter
-</ins></i><ins class="diff-chg">
-by
-</ins><code><ins class="diff-chg">
-1
-</ins></code>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-identifier
-</ins></i><ins class="diff-chg">
-is
-not
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins>
-</a>,
-<ins class="diff-new">create
-a
-new
-entry
-for
-</ins><i><ins class="diff-new">
-identifier
-</ins></i><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-identifier
-map
-</ins></i>
-and
-<del class="diff-old">graph
-name
-</del>
-<ins class="diff-chg">set
-its
-value
-to
-the
-new
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins>
-</a>.
-</li>
-<li>
-Return
-<del class="diff-old">active
-object
-</del>
-<ins class="diff-chg">the
-new
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins>
-</a>.
-</li>
-</ol>
-<del class="diff-old">If
-element
-has
-</del>
-</section>
-</section>
-</section>
-<section id="rdf-conversion-algorithms">
-<h2>
-<span class="secno">
-<ins class="diff-chg">10.
-</ins></span><ins class="diff-chg">
-RDF
-Conversion
-Algorithms
-</ins></h2><p><ins class="diff-chg">
-This
-section
-describes
-algorithms
-to
-transform
-</ins>
-a
-<del class="diff-old">@id
-property,
-</del>
-<ins class="diff-chg">JSON-LD
-document
-to
-an
-</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-chg">
-RDF
-dataset
-</ins></a><ins class="diff-chg">
-and
-vice
-versa.
-The
-algorithms
-are
-designed
-for
-in-memory
-implementations
-with
-random
-access
-to
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-elements.
-</ins></p><p><ins class="diff-chg">
-Throughout
-this
-section,
-</ins>
-the
-<del class="diff-old">value
-must
-</del>
-<ins class="diff-chg">following
-vocabulary
-</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
-prefixes
-</ins></a><ins class="diff-chg">
-are
-used
-in
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-IRIs
-</ins></a>:</p><table rules="all"><thead><tr><th><ins class="diff-chg">
-Prefix
-</ins></th><th><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></th></tr></thead><tbody><tr><td><ins class="diff-chg">
-rdf
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/1999/02/22-rdf-syntax-ns#
-</ins></td></tr><tr><td><ins class="diff-chg">
-rdfs
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/2000/01/rdf-schema#
-</ins></td></tr><tr><td><ins class="diff-chg">
-xsd
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/2001/XMLSchema#
-</ins></td></tr></tbody></table><section id="convert-to-rdf-algorithm"><h3><span class="secno"><ins class="diff-chg">
-10.1
-</ins></span><ins class="diff-chg">
-Convert
-to
-RDF
-Algorithm
-</ins></h3><p><ins class="diff-chg">
-This
-algorithms
-converts
-a
-JSON-LD
-document
-to
-an
-</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-chg">
-RDF
-dataset
-</ins></a>.<ins class="diff-chg">
-Please
-note
-that
-RDF
-does
-not
-allow
-a
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-node
-</ins></a><ins class="diff-chg">
-to
-</ins>
-be
-<ins class="diff-new">used
-as
-</ins>
-a
-<del class="diff-old">string
-</del>
-<a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
-<ins class="diff-chg">graph
-name
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
-property
-</ins>
-</a>,
-<del class="diff-old">set
-the
-active
-subject
-</del>
-<ins class="diff-chg">while
-JSON-LD
-does.
-</ins><a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter"><ins class="diff-chg">
-JSON-LD-RDF
-Converters
-</ins></a><ins class="diff-chg">
-can
-work
-around
-this
-restriction,
-when
-converting
-JSON-LD
-to
-RDF,
-by
-converting
-such
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>,<ins class="diff-chg">
-minting
-new
-&quot;Skolem
-IRIs&quot;
-as
-per
-</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization"><ins class="diff-chg">
-Replacing
-Blank
-Nodes
-with
-IRIs
-</ins></a></cite><ins class="diff-chg">
-of
-[
-</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
-RDF11-CONCEPTS
-</ins>
-</a>
-</cite>
-<ins class="diff-new">].
-</ins></p><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
-Feature
-at
-Risk
-3
-</ins></span>:<ins class="diff-new">
-Allow
-blank
-nodes
-</ins>
-to
-<ins class="diff-new">be
-used
-as
-graph
-name
-or
-property
-</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
-Note:
-This
-feature
-is
-</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
-&quot;at
-risk&quot;
-</ins></a><ins class="diff-new">
-and
-may
-be
-removed
-from
-this
-specification
-based
-on
-feedback.
-Please
-send
-feedback
-to
-</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-new">
-public-rdf-comments@w3.org
-</ins></a>.<ins class="diff-new">
-For
-</ins>
-the
-<del class="diff-old">previously
-expanded
-value
-(either
-</del>
-<ins class="diff-chg">current
-status
-see
-</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
-features
-&quot;at
-risk&quot;
-in
-JSON-LD
-1.0
-</ins></a></p><p><ins class="diff-chg">
-RDF
-does
-not
-currently
-allow
-</ins>
-a
-<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
-blank
-node
-</a>
-<ins class="diff-new">to
-be
-used
-as
-</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-new">
-graph
-name
-</ins></a>
-or
-<del class="diff-old">an
-</del>
-<a class="tref internalDFN" title="property" href="#dfn-property">
-<ins class="diff-chg">property
-</ins></a>,<ins class="diff-chg">
-while
-JSON-LD
-does.
-</ins><a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter"><ins class="diff-chg">
-JSON-LD-RDF
-Converters
-</ins></a><ins class="diff-chg">
-can
-work
-around
-this
-restriction,
-when
-converting
-JSON-LD
-to
-RDF,
-by
-converting
-such
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>,<ins class="diff-chg">
-minting
-new
-&quot;Skolem
-IRIs&quot;
-as
-per
-</ins><cite>
-<del class="diff-old">IRI
-</del>
-<a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">
-<ins class="diff-chg">Replacing
-Blank
-Nodes
-with
-IRIs
-</ins></a>
-</cite>
-<ins class="diff-chg">of
-[
-</ins><cite>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-new">RDF11-CONCEPTS
-</ins>
-</a>
-<del class="diff-old">).
-Otherwise,
-if
-</del>
-</cite>
-<ins class="diff-chg">].
-Based
-on
-feedback
-from
-implementors
-the
-Working
-Group
-may
-decide
-to
-disallow
-blank
-nodes
-as
-graph
-names
-and
-properties
-in
-JSON-LD.
-If
-this
-change
-would
-affect
-you,
-be
-sure
-to
-send
-in
-a
-comment.
-</ins></p></div></div><section class="informative"><h4 id="overview-13"><ins class="diff-chg">
-Overview
-</ins></h4><p>
-<em>
-<del class="diff-old">element
-</del>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins>
-</em>
-<del class="diff-old">does
-not
-have
-</del>
-</p>
-<p>
-<ins class="diff-chg">The
-JSON-LD
-document
-is
-expanded
-and
-converted
-to
-</ins>
-a
-<i>
-<ins class="diff-new">node
-map
-</ins></i><ins class="diff-new">
-using
-the
-</ins><a href="#node-map-generation"><ins class="diff-new">
-Node
-Map
-Generation
-algorithm
-</ins></a>.<ins class="diff-new">
-This
-allows
-each
-graph
-represented
-within
-the
-document
-to
-be
-extracted
-and
-flattened,
-making
-it
-easier
-to
-process
-each
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a>.<ins class="diff-new">
-Each
-graph
-from
-the
-</ins><i><ins class="diff-new">
-node
-map
-</ins></i><ins class="diff-new">
-is
-processed
-to
-extract
-</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-new">
-RDF
-triples
-</ins></a>,<ins class="diff-new">
-to
-which
-any
-(non-default)
-graph
-name
-is
-applied
-to
-create
-an
-</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-new">
-RDF
-dataset
-</ins></a>.<ins class="diff-new">
-Each
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a><ins class="diff-new">
-in
-the
-</ins><i><ins class="diff-new">
-node
-map
-</ins></i><ins class="diff-new">
-has
-an
-</ins>
-<code>
-@id
-</code>
-<del class="diff-old">property,
-set
-</del>
-<ins class="diff-chg">member
-which
-corresponds
-to
-</ins>
-the
-<del class="diff-old">active
-</del>
-<a class="tref internalDFN" title="rdf-subject" href="#dfn-rdf-subject">
-<ins class="diff-chg">RDF
-</ins>
-subject
-</a>,
-<ins class="diff-new">the
-other
-members
-represent
-</ins><a class="tref internalDFN" title="rdf-predicate" href="#dfn-rdf-predicate"><ins class="diff-new">
-RDF
-predicates
-</ins></a>.<ins class="diff-new">
-Each
-member
-value
-is
-either
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>
-</a>
-<del class="diff-old">to
-newly
-generated
-</del>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
-blank
-node
-<ins class="diff-new">identifier
-</ins></a><ins class="diff-new">
-or
-can
-be
-transformed
-to
-an
-</ins><a class="tref externalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-new">
-RDF
-literal
-</ins></a><ins class="diff-new">
-to
-generate
-an
-</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-new">
-RDF
-triple
-</ins></a>.<a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-new">
-Lists
-</ins></a><ins class="diff-new">
-are
-transformed
-into
-an
-</ins><a class="tref externalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab"><ins class="diff-new">
-RDF
-Collection
-</ins></a><ins class="diff-new">
-using
-the
-</ins><a href="#list-to-rdf-conversion"><ins class="diff-new">
-List
-to
-RDF
-Conversion
-algorithm.
-</ins></a></p></section><section><h4 id="algorithm-13"><ins class="diff-new">
-Algorithm
-</ins></h4><p><ins class="diff-new">
-The
-algorithm
-takes
-a
-JSON-LD
-document
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-and
-returns
-an
-</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-new">
-RDF
-dataset
-</ins></a>.</p><ol class="algorithm"><li><ins class="diff-new">
-Expand
-</ins><i><ins class="diff-new">
-element
-</ins></i><ins class="diff-new">
-according
-the
-</ins><a href="#expansion-algorithm"><ins class="diff-new">
-Expansion
-algorithm
-</ins>
-</a>.
-</li>
-<li>
-<del class="diff-old">Process
-</del>
-<ins class="diff-chg">Generate
-a
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i><ins class="diff-chg">
-according
-the
-</ins><a href="#node-map-generation"><ins class="diff-chg">
-Node
-Map
-Generation
-algorithm
-</ins></a>.</li><li><ins class="diff-chg">
-Initialize
-an
-empty
-</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-chg">
-RDF
-dataset
-</ins></a><i><ins class="diff-chg">
-dataset
-</ins></i>.</li><li><ins class="diff-chg">
-For
-</ins>
-each
-<del class="diff-old">property
-</del>
-<i>
-<ins class="diff-chg">graph
-name
-</ins></i>
-and
-<del class="diff-old">value
-</del>
-<i>
-<ins class="diff-chg">graph
-</ins></i>
-in
-<del class="diff-old">element
-,
-ordered
-by
-property
-,
-</del>
-<i>
-<ins class="diff-chg">node
-map
-</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-triples
-</ins></i>
-as
-<del class="diff-old">follows:
-</del>
-<ins class="diff-chg">an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.</li><li><ins class="diff-chg">
-For
-each
-</ins><i><ins class="diff-chg">
-subject
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-node
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-graph
-</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
-For
-each
-</ins><i><ins class="diff-chg">
-property
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-values
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-node
-</ins></i>:
-<ol class="algorithm">
-<li>
-If
-<i>
-property
-</i>
-is
-<code>
-@type
-</code>,
-<del class="diff-old">set
-the
-active
-property
-</del>
-<ins class="diff-chg">then
-for
-each
-</ins><i><ins class="diff-chg">
-type
-</ins></i><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-values
-</ins></i>,<ins class="diff-chg">
-append
-a
-</ins><a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple"><ins class="diff-chg">
-triple
-</ins>
-</a>
-<del class="diff-old">to
-</del>
-<ins class="diff-chg">composed
-of
-</ins><i><ins class="diff-chg">
-subject
-</ins></i>,
-<code>
-rdf:type
-<del class="diff-old">.
-Otherwise,
-if
-property
-is
-@graph
-</del>
-</code>,
-<del class="diff-old">process
-value
-algorithm
-recursively,
-using
-active
-subject
-as
-graph
-name
-and
-null
-values
-for
-active
-subject
-and
-active
-property
-</del>
-and
-<del class="diff-old">then
-proceed
-</del>
-<i>
-<ins class="diff-chg">type
-</ins></i>
-to
-<del class="diff-old">next
-property.
-</del>
-<i>
-<ins class="diff-chg">triples
-</ins></i>.
-</li>
-<li>
-Otherwise,
-if
-<i>
-property
-</i>
-is
-a
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keyword
-<del class="diff-old">,
-skip
-this
-step.
-</del>
-</a>
-<ins class="diff-chg">continue
-to
-the
-next
-</ins><i><ins class="diff-chg">
-property
-</ins></i><ins class="diff-chg">
--
-</ins><i><ins class="diff-chg">
-values
-</ins></i><ins class="diff-chg">
-pair.
-</ins>
-</li>
-<li>
-Otherwise,
-<del class="diff-old">set
-active
-</del>
-<i>
-property
-<del class="diff-old">to
-the
-</del>
-</i>
-<ins class="diff-chg">is
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<ins class="diff-new">or
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
-blank
-node
-identifier
-</ins></a>.<ins class="diff-new">
-For
-each
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-values
-</ins></i>:<ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-is
-a
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
-list
-object
-</ins></a>,<ins class="diff-new">
-initialize
-</ins><i><ins class="diff-new">
-list
-triples
-</ins></i><ins class="diff-new">
-as
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-list
-head
-</ins></i><ins class="diff-new">
-to
-the
-result
-of
-the
-</ins><a href="#list-to-rdf-conversion"><ins class="diff-new">
-List
-Conversion
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-the
-</ins>
-value
-<ins class="diff-new">associated
-with
-the
-</ins><code><ins class="diff-new">
-@list
-</ins></code><ins class="diff-new">
-key
-from
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-list
-triples
-</ins></i>.<ins class="diff-new">
-Append
-first
-a
-</ins><a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple"><ins class="diff-new">
-triple
-</ins></a><ins class="diff-new">
-composed
-</ins>
-of
-<i>
-<ins class="diff-chg">subject
-</ins></i>,<i>
-property
-<del class="diff-old">.
-</del>
-</i>,
-<ins class="diff-chg">and
-</ins><i><ins class="diff-chg">
-list
-head
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-triples
-</ins></i><ins class="diff-chg">
-and
-finally
-append
-all
-</ins><a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple"><ins class="diff-chg">
-triples
-</ins></a><ins class="diff-chg">
-from
-</ins><i><ins class="diff-chg">
-list
-triples
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-triples
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Process
-</del>
-<ins class="diff-chg">Otherwise,
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object">
-value
-<del class="diff-old">recursively
-using
-this
-algorithm,
-passing
-copies
-</del>
-<ins class="diff-chg">object
-</ins></a><ins class="diff-chg">
-or
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a>.<ins class="diff-chg">
-Append
-a
-</ins><a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple"><ins class="diff-chg">
-triple
-</ins></a><ins class="diff-chg">
-composed
-</ins>
-of
-<del class="diff-old">active
-</del>
-<i>
-subject
-<del class="diff-old">,
-active
-</del>
-</i>,
-<i>
-property
-</i>,
-and
-<ins class="diff-chg">the
-result
-of
-using
-the
-</ins><a href="#object-to-rdf-conversion"><ins class="diff-chg">
-Object
-to
-RDF
-Conversion
-algorithm
-</ins></a><ins class="diff-chg">
-passing
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-triples
-</ins></i>.</li></ol></li></ol></li></ol></li><li><ins class="diff-chg">
-If
-</ins><i>
-graph
-name
-<del class="diff-old">.
-</del>
-</i>
-<ins class="diff-chg">is
-</ins><code><ins class="diff-chg">
-@default
-</ins></code>,<ins class="diff-chg">
-add
-</ins><i><ins class="diff-chg">
-triples
-</ins></i><ins class="diff-chg">
-to
-the
-</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
-default
-graph
-</ins></a><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-dataset
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-create
-a
-</ins><a class="tref internalDFN" title="named-graph" href="#dfn-named-graph"><ins class="diff-chg">
-named
-graph
-</ins></a><ins class="diff-chg">
-in
-</ins><i><ins class="diff-chg">
-dataset
-</ins></i><ins class="diff-chg">
-composed
-of
-</ins><i><ins class="diff-chg">
-graph
-name
-</ins></i><ins class="diff-chg">
-and
-add
-</ins><i><ins class="diff-chg">
-triples
-</ins></i>.
-</li>
-</ol>
-</li>
-<li>
-<del class="diff-old">Set
-active
-</del>
-<ins class="diff-chg">Return
-</ins><i><ins class="diff-chg">
-dataset
-</ins></i>.</li></ol></section></section><section id="object-to-rdf-conversion"><h3><span class="secno"><ins class="diff-chg">
-10.2
-</ins></span><ins class="diff-chg">
-Object
-to
-RDF
-Conversion
-</ins></h3><p><ins class="diff-chg">
-This
-algorithm
-takes
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-</ins>
-object
-</a>
-<ins class="diff-new">and
-transforms
-it
-into
-an
-</ins><a class="tref externalDFN" title="rdf-resource" href="http://www.w3.org/TR/rdf11-concepts/#dfn-resource"><ins class="diff-new">
-RDF
-resource
-</ins></a>
-to
-<del class="diff-old">active
-subject
-</del>
-<ins class="diff-chg">be
-used
-as
-the
-</ins><a class="tref internalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object"><ins class="diff-chg">
-object
-</ins></a><ins class="diff-chg">
-of
-an
-</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
-RDF
-triple
-</ins>
-</a>.
-</p>
-<section class="informative">
-<h4 id="overview-14">
-<ins class="diff-chg">Overview
-</ins></h4><p><em><ins class="diff-chg">
-This
-section
-is
-non-normative.
-</ins></em></p><p><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-Value
-objects
-</ins></a><ins class="diff-chg">
-are
-transformed
-to
-</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
-RDF
-literals
-</ins></a><ins class="diff-chg">
-as
-described
-in
-</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-chg">
-section
-10.6
-Data
-Round
-Tripping
-</ins></a><ins class="diff-chg">
-whereas
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-objects
-</ins></a><ins class="diff-chg">
-are
-transformed
-to
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a>.</p></section><section><h4 id="algorithm-14"><ins class="diff-chg">
-Algorithm
-</ins></h4><p><ins class="diff-chg">
-The
-algorithm
-takes
-as
-its
-sole
-argument
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-which
-must
-be
-either
-a
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a>.</p><ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-return
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a><ins class="diff-chg">
-associated
-with
-its
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-member.
-</ins>
-</li>
-<li>
-Otherwise,
-<i>
-<ins class="diff-new">item
-</ins></i><ins class="diff-new">
-is
-a
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-new">
-value
-object
-</ins></a>.<ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-to
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-new">
-@value
-</ins></code><ins class="diff-new">
-member
-in
-</ins><i><ins class="diff-new">
-item
-</ins></i>.</li><li><ins class="diff-new">
-Initialize
-</ins><i><ins class="diff-new">
-datatype
-</ins></i><ins class="diff-new">
-to
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-new">
-@type
-</ins></code><ins class="diff-new">
-member
-of
-</ins><i><ins class="diff-new">
-item
-</ins></i><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>
-if
-<del class="diff-old">element
-</del>
-<i>
-<ins class="diff-chg">item
-</ins></i><ins class="diff-chg">
-does
-not
-have
-such
-a
-member.
-</ins></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-value
-</ins></i>
-is
-<del class="diff-old">an
-array
-</del>
-<a class="tref internalDFN" title="true" href="#dfn-true">
-<ins class="diff-chg">true
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins>
-</a>,
-<del class="diff-old">process
-each
-</del>
-<ins class="diff-chg">set
-</ins><i>
-value
-<del class="diff-old">in
-</del>
-</i>
-<ins class="diff-chg">to
-</ins>
-the
-<del class="diff-old">array
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">string
-</ins></a><code><ins class="diff-chg">
-true
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-false
-</ins></code><ins class="diff-chg">
-which
-is
-the
-</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
-canonical
-lexical
-form
-</ins>
-</a>
-as
-<del class="diff-old">follows,
-process
-element
-recursively
-using
-this
-algorithm,
-using
-copies
-of
-active
-subject
-,
-active
-property
-</del>
-<ins class="diff-chg">described
-in
-</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-chg">
-section
-10.6
-Data
-Round
-Tripping
-</ins></a><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-datatype
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins>
-</a>,
-<del class="diff-old">and
-graph
-name
-.
-</del>
-<ins class="diff-chg">set
-it
-to
-</ins><code><ins class="diff-chg">
-xsd:boolean
-</ins></code>.
-</li>
-<li>
-Otherwise,
-if
-<del class="diff-old">element
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i>
-is
-a
-<a class="tref internalDFN" title="number" href="#dfn-number">
-<ins class="diff-new">number
-</ins></a><ins class="diff-new">
-with
-fractions
-or
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-is
-a
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
-number
-</ins></a><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-datatype
-</ins></i><ins class="diff-new">
-equals
-</ins><code><ins class="diff-new">
-xsd:double
-</ins></code>,<ins class="diff-new">
-convert
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-to
-a
-</ins>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-string
-<del class="diff-old">,
-then
-the
-active
-property
-</del>
-</a>
-<del class="diff-old">must
-be
-rdf:type
-so
-set
-the
-active
-object
-</del>
-<ins class="diff-chg">in
-</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
-canonical
-lexical
-form
-</ins>
-</a>
-<del class="diff-old">to
-</del>
-<ins class="diff-chg">of
-</ins>
-an
-<code>
-<del class="diff-old">IRI
-</del>
-<ins class="diff-chg">xsd:double
-</ins>
-</code>
-<ins class="diff-new">as
-defined
-in
-[
-</ins><cite><a class="bibref" href="#bib-XMLSCHEMA11-2"><ins class="diff-new">
-XMLSCHEMA11-2
-</ins></a>
-</cite>
-<ins class="diff-new">]
-and
-described
-in
-</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-new">
-section
-10.6
-Data
-Round
-Tripping
-</ins>
-</a>.
-<ins class="diff-new">If
-</ins><i><ins class="diff-new">
-datatype
-</ins></i><ins class="diff-new">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-set
-it
-to
-</ins><code><ins class="diff-new">
-xsd:double
-</ins></code>.
-</li>
-<li>
-<del class="diff-old">If
-any
-of
-these
-steps
-created
-an
-active
-object
-</del>
-<ins class="diff-chg">Otherwise,
-if
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-number
-</ins></a><ins class="diff-chg">
-without
-fractions
-or
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-number
-</ins>
-</a>
-and
-<del class="diff-old">neither
-active
-subject
-</del>
-<i>
-<ins class="diff-chg">datatype
-</ins></i><ins class="diff-chg">
-equals
-</ins><code><ins class="diff-chg">
-xsd:integer
-</ins></code>,<ins class="diff-chg">
-convert
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins>
-</a>
-<del class="diff-old">nor
-active
-property
-</del>
-<ins class="diff-chg">in
-</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
-canonical
-lexical
-form
-</ins>
-</a>
-<del class="diff-old">are
-null
-,
-generate
-a
-</del>
-<ins class="diff-chg">of
-an
-</ins>
-<code>
-<del class="diff-old">Quad
-</del>
-<ins class="diff-chg">xsd:integer
-</ins>
-</code>
-<ins class="diff-new">as
-defined
-in
-[
-</ins><cite>
-<a class="bibref" href="#bib-XMLSCHEMA11-2">
-<ins class="diff-new">XMLSCHEMA11-2
-</ins>
-</a>
-<del class="diff-old">using
-active
-subject
-</del>
-</cite>
-<ins class="diff-chg">]
-and
-described
-in
-</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-chg">
-section
-10.6
-Data
-Round
-Tripping
-</ins></a>.<ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-datatype
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins>
-</a>,
-<del class="diff-old">active
-property
-</del>
-<ins class="diff-chg">set
-it
-to
-</ins><code><ins class="diff-chg">
-xsd:integer
-</ins></code>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-datatype
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins>
-</a>,
-<del class="diff-old">active
-object
-</del>
-<ins class="diff-chg">set
-it
-to
-</ins><code><ins class="diff-chg">
-xsd:string
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-rdf:langString
-</ins></code>,<ins class="diff-chg">
-depending
-on
-if
-item
-has
-an
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-member.
-</ins></li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-literal
-</ins></i><ins class="diff-chg">
-as
-an
-</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
-RDF
-literal
-</ins>
-</a>
-<ins class="diff-new">using
-</ins><i><ins class="diff-new">
-value
-</ins></i>
-and
-<del class="diff-old">graph
-name
-.
-</del>
-<i>
-<ins class="diff-chg">datatype
-</ins></i>.<ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-has
-an
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-member,
-add
-the
-value
-associated
-with
-the
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-key
-as
-the
-language
-tag
-of
-</ins><i><ins class="diff-chg">
-literal
-</ins></i>.
-</li>
-<li>
-Return
-<del class="diff-old">active
-object
-.
-</del>
-<i>
-<ins class="diff-chg">literal
-</ins></i>.
-</li>
-</ol>
-</section>
-</section>
-<section id="list-to-rdf-conversion">
-<h3>
-<span class="secno">
-<del class="diff-old">4.9.4
-</del>
-<ins class="diff-chg">10.3
-</ins>
-</span>
-List
-<ins class="diff-new">to
-RDF
-</ins>
-Conversion
-</h3>
-<p>
-List
-Conversion
-is
-the
-process
-of
-taking
-<del class="diff-old">an
-array
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins>
-</a>
-<del class="diff-old">of
-values
-</del>
-and
-<del class="diff-old">adding
-them
-to
-a
-newly
-created
-</del>
-<ins class="diff-chg">transforming
-it
-into
-an
-</ins><a class="tref externalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">
-RDF
-Collection
-</a>
-<del class="diff-old">(see
-</del>
-<ins class="diff-chg">as
-defined
-in
-RDF
-Semantics
-</ins>
-[
-<cite>
-<del class="diff-old">RDF-SCHEMA
-</del>
-<a class="bibref" href="#bib-RDF-MT">
-<ins class="diff-chg">RDF-MT
-</ins>
-</a>
-</cite>
-<del class="diff-old">])
-by
-linking
-</del>
-<ins class="diff-chg">].
-</ins></p><section class="informative"><h4 id="overview-15"><ins class="diff-chg">
-Overview
-</ins></h4><p><em><ins class="diff-chg">
-This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-For
-</ins>
-each
-element
-of
-the
-<a class="tref internalDFN" title="list" href="#dfn-list">
-list
-<del class="diff-old">using
-</del>
-</a>
-<ins class="diff-chg">a
-new
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a><ins class="diff-chg">
-is
-allocated
-which
-is
-used
-to
-generate
-</ins>
-<code>
-rdf:first
-</code>
-and
-<code>
-<del class="diff-old">rdf:next
-,
-terminating
-</del>
-<ins class="diff-chg">rdf:rest
-</ins></code><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
-triples
-</ins></a>.<ins class="diff-chg">
-The
-algorithm
-returns
-</ins>
-the
-list
-<del class="diff-old">with
-</del>
-<ins class="diff-chg">head,
-which
-is
-either
-the
-the
-first
-allocated
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a><ins class="diff-chg">
-or
-</ins>
-<code>
-rdf:nil
-</code>
-<del class="diff-old">using
-</del>
-<ins class="diff-chg">if
-</ins>
-the
-<del class="diff-old">following
-sequence:
-</del>
-<a class="tref internalDFN" title="list" href="#dfn-list">
-<ins class="diff-chg">list
-</ins></a><ins class="diff-chg">
-is
-empty.
-</ins>
-</p>
-</section>
-<section>
-<h4 id="algorithm-15">
-<ins class="diff-new">Algorithm
-</ins></h4>
-<p>
-The
-algorithm
-<del class="diff-old">is
-invoked
-with
-</del>
-<ins class="diff-chg">takes
-two
-inputs:
-</ins>
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-<del class="diff-old">array
-,
-the
-active
-property
-</del>
-<i>
-<ins class="diff-chg">list
-</ins></i>
-and
-<del class="diff-old">returns
-a
-value
-to
-be
-used
-as
-</del>
-an
-<del class="diff-old">active
-object
-</del>
-<ins class="diff-chg">empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins>
-</a>
-<del class="diff-old">in
-</del>
-<i>
-<ins class="diff-chg">list
-triples
-</ins></i><ins class="diff-chg">
-used
-for
-returning
-</ins>
-the
-<del class="diff-old">calling
-location.
-</del>
-<ins class="diff-chg">generated
-</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
-triples
-</ins></a>.
-</p>
-<del class="diff-old">Note
-This
-algorithm
-does
-not
-support
-lists
-containing
-lists.
-</del>
-<ol class="algorithm">
-<li>
-If
-<del class="diff-old">array
-</del>
-<i>
-<ins class="diff-chg">list
-</ins></i>
-is
-<del class="diff-old">empty
-</del>
-<ins class="diff-chg">empty,
-</ins>
-return
-<code>
-rdf:nil
-</code>.
-</li>
-<li>
-Otherwise,
-<del class="diff-old">generate
-a
-Quad
-using
-using
-the
-active
-subject
-,
-active
-property
-</del>
-<ins class="diff-chg">create
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins>
-</a>
-<del class="diff-old">and
-</del>
-<i>
-<ins class="diff-chg">bnodes
-</ins></i><ins class="diff-chg">
-composed
-of
-</ins>
-a
-<a href="#generate-blank-node-identifier">
-newly
-generated
-blank
-node
-<ins class="diff-new">identifier
-</ins>
-</a>
-<del class="diff-old">identified
-as
-first
-blank
-node
-</del>
-<ins class="diff-chg">for
-each
-entry
-in
-</ins><i><ins class="diff-chg">
-list
-</ins></i>.</li><li><ins class="diff-chg">
-Initialize
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins>
-</a>
-<del class="diff-old">.
-</del>
-<i>
-<ins class="diff-chg">list
-triples
-</ins></i>.
-</li>
-<li>
-For
-each
-<del class="diff-old">element
-in
-array
-other
-than
-the
-last
-element:
-</del>
-<ins class="diff-chg">pair
-of
-</ins><i><ins class="diff-chg">
-subject
-</ins></i><ins class="diff-chg">
-from
-</ins><i><ins class="diff-chg">
-bnodes
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-from
-</ins><i><ins class="diff-chg">
-list
-</ins></i>:
-<ol class="algorithm">
-<li>
-<del class="diff-old">Create
-</del>
-<ins class="diff-chg">Append
-</ins>
-a
-<del class="diff-old">processor
-state
-using
-first
-blank
-node
-as
-the
-active
-</del>
-<a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">
-<ins class="diff-chg">triple
-</ins></a><ins class="diff-chg">
-composed
-of
-</ins><i>
-subject
-<del class="diff-old">,
-and
-</del>
-</i>,
-<code>
-rdf:first
-<del class="diff-old">as
-the
-active
-property
-.
-Process
-</del>
-</code>,
-<ins class="diff-chg">and
-</ins>
-the
-<del class="diff-old">value
-starting
-at
-Step
-1
-.
-Proceed
-</del>
-<ins class="diff-chg">result
-of
-</ins>
-using
-<del class="diff-old">the
-previous
-processor
-state
-.
-</del>
-<ins class="diff-chg">th
-</ins><a href="#object-to-rdf-conversion"><ins class="diff-chg">
-Object
-to
-RDF
-Conversion
-algorithm
-</ins></a><ins class="diff-chg">
-passing
-</ins><i><ins class="diff-chg">
-item
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-list
-triples
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Unless
-this
-is
-</del>
-<ins class="diff-chg">Set
-</ins><i><ins class="diff-chg">
-rest
-</ins></i><ins class="diff-chg">
-as
-</ins>
-the
-<del class="diff-old">last
-element
-</del>
-<ins class="diff-chg">next
-entry
-</ins>
-in
-<del class="diff-old">array
-,
-generate
-a
-new
-blank
-node
-identified
-as
-rest
-blank
-node
-,
-otherwise
-use
-</del>
-<i>
-<ins class="diff-chg">bnodes
-</ins></i>,<ins class="diff-chg">
-or
-if
-that
-does
-not
-exist,
-</ins>
-<code>
-rdf:nil
-</code>.
-<del class="diff-old">Generate
-</del>
-<ins class="diff-chg">Append
-</ins>
-a
-<del class="diff-old">new
-Quad
-</del>
-<a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">
-<ins class="diff-chg">triple
-</ins>
-</a>
-<del class="diff-old">using
-first
-blank
-node
-,
-</del>
-<ins class="diff-chg">composed
-of
-</ins><i><ins class="diff-chg">
-subject
-</ins></i>,
-<code>
-rdf:rest
-</code>,
-and
-<i>
-rest
-<del class="diff-old">blank
-node
-.
-Set
-first
-blank
-node
-</del>
-</i>
-to
-<del class="diff-old">rest
-blank
-node
-.
-</del>
-<i>
-<ins class="diff-chg">list
-triples
-</ins></i>.</li></ol>
-</li>
-<li>
-Return
-<ins class="diff-chg">the
-</ins>
-first
-<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
-blank
-node
-<del class="diff-old">.
-</del>
-</a>
-<ins class="diff-chg">from
-</ins><i><ins class="diff-chg">
-bnodes
-</ins></i><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-rdf:nil
-</ins></code><ins class="diff-chg">
-if
-</ins><i><ins class="diff-chg">
-bnodes
-</ins></i><ins class="diff-chg">
-is
-empty.
-</ins>
-</li>
-</ol>
-</section>
-</section>
-<section id="convert-from-rdf-algorithm">
-<h3>
-<span class="secno">
-<del class="diff-old">4.9.5
-</del>
-<ins class="diff-chg">10.4
-</ins>
-</span>
-Convert
-from
-RDF
-Algorithm
-</h3>
-<p>
-<del class="diff-old">In
-some
-cases,
-data
-exists
-natively
-in
-Triples
-or
-Quads
-form;
-for
-example,
-if
-the
-data
-was
-originally
-represented
-in
-an
-RDF
-graph
-or
-triple/quad
-store.
-</del>
-This
-algorithm
-<del class="diff-old">is
-designed
-to
-simply
-translate
-</del>
-<ins class="diff-chg">converts
-</ins>
-an
-<del class="diff-old">array
-</del>
-<a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">
-<ins class="diff-chg">RDF
-dataset
-</ins></a><ins class="diff-chg">
-consisting
-</ins>
-of
-<del class="diff-old">Quads
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
-default
-graph
-</ins></a><ins class="diff-chg">
-and
-zero
-or
-more
-</ins><a class="tref internalDFN" title="named-graph" href="#dfn-named-graph"><ins class="diff-chg">
-named
-graphs
-</ins>
-</a>
-into
-a
-JSON-LD
-document.
-</p>
-<del class="diff-old">When
-expanding
-typed
-literal
-</del>
-<div class="issue atrisk">
-<div class="issue-title">
-<span>
-<ins class="diff-chg">Feature
-at
-Risk
-5
-</ins></span>:<ins class="diff-chg">
-Converting
-list
-of
-lists
-to
-JSON-LD
-</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-chg">
-Note:
-This
-feature
-is
-</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-chg">
-&quot;at
-risk&quot;
-</ins>
-</a>
-<del class="diff-old">values
-having
-a
-datatype
-</del>
-<ins class="diff-chg">and
-may
-be
-removed
-from
-this
-specification
-based
-on
-feedback.
-Please
-send
-feedback
-to
-</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-chg">
-public-rdf-comments@w3.org
-</ins></a>.<ins class="diff-chg">
-For
-the
-current
-status
-see
-</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
-features
-&quot;at
-risk&quot;
-in
-JSON-LD
-1.0
-</ins></a></p><p><ins class="diff-chg">
-In
-the
-interest
-</ins>
-of
-<del class="diff-old">xsd:string
-,
-</del>
-<ins class="diff-chg">space
-and
-simplicity,
-</ins>
-the
-<ins class="diff-new">steps
-necessary
-for
-handling
-lists
-of
-lists
-have
-been
-omitted.
-Such
-lists
-and
-their
-elements
-must,
-recursively,
-be
-handled
-like
-other
-lists.
-Lists
-of
-lists
-can,
-however,
-not
-be
-represented
-in
-JSON-LD
-using
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@list
-</ins>
-</code>
-<del class="diff-old">must
-not
-</del>
-<ins class="diff-chg">;
-they
-have
-to
-</ins>
-be
-<ins class="diff-new">represented
-as
-a
-</ins>
-set
-<del class="diff-old">to
-</del>
-<ins class="diff-chg">of
-interlinked
-node
-objects
-using
-RDF's
-</ins>
-<code>
-<del class="diff-old">xsd:string
-</del>
-<ins class="diff-chg">rdf:first
-</ins>
-</code>
-and
-<del class="diff-old">the
-resulting
-value
-must
-have
-only
-a
-</del>
-<code>
-<del class="diff-old">@value
-</del>
-<ins class="diff-chg">rdf:rest
-</ins>
-</code>
-<del class="diff-old">property.
-</del>
-<ins class="diff-chg">properties.
-The
-Working
-Group
-might
-either
-require
-handling
-of
-lists-of-lists
-or
-forbid
-them
-in
-JSON-LD
-1.0.
-Implementers
-please
-send
-reports
-of
-whether
-you
-are
-able
-to
-implement
-handling
-for
-lists-of-lists
-or
-would
-instead
-request
-such
-structures
-be
-disallowed.
-</ins>
-</p>
-</div>
-</div>
-<section class="informative">
-<h4 id="overview-16">
-<ins class="diff-new">Overview
-</ins></h4>
-<p>
-<del class="diff-old">The
-conversion
-algorithm
-takes
-a
-single
-parameter
-</del>
-<em>
-<del class="diff-old">input
-</del>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins>
-</em>
-</p>
-<p>
-<ins class="diff-new">Iterate
-through
-each
-graph
-</ins>
-in
-the
-<ins class="diff-new">dataset,
-converting
-</ins><a class="tref internalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab"><ins class="diff-new">
-RDF
-Collections
-</ins></a><ins class="diff-new">
-into
-a
-</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-new">
-list
-</ins></a><ins class="diff-new">
-and
-generating
-a
-JSON-LD
-document
-in
-expanded
-</ins>
-form
-<del class="diff-old">of
-an
-array
-of
-</del>
-<ins class="diff-chg">for
-all
-</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
-RDF
-literals
-</ins></a>,<a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a>.<ins class="diff-chg">
-If
-the
-</ins><i><ins class="diff-chg">
-use
-native
-types
-</ins></i><ins class="diff-chg">
-flag
-is
-set
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
-RDF
-literals
-</ins></a><ins class="diff-chg">
-with
-a
-</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
-datatype
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>
-<ins class="diff-new">that
-equals
-</ins>
-<code>
-<del class="diff-old">Quad
-</del>
-<ins class="diff-chg">xsd:integer
-</ins>
-</code>
-<ins class="diff-new">or
-</ins><code><ins class="diff-new">
-xsd:double
-</ins></code><ins class="diff-new">
-are
-converted
-to
-a
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
-JSON
-numbers
-</ins></a><ins class="diff-new">
-and
-</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-new">
-RDF
-literals
-</ins></a><ins class="diff-new">
-with
-a
-</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-new">
-datatype
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>
-</a>
-<del class="diff-old">representations.
-</del>
-<ins class="diff-chg">that
-equals
-</ins><code><ins class="diff-chg">
-xsd:boolean
-</ins></code><ins class="diff-chg">
-are
-converted
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a><ins class="diff-chg">
-based
-on
-their
-</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form"><ins class="diff-chg">
-lexical
-form
-</ins></a><ins class="diff-chg">
-as
-described
-in
-</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-chg">
-section
-10.6
-Data
-Round
-Tripping
-</ins></a>.</p></section><section><h4 id="algorithm-16"><ins class="diff-chg">
-Algorithm
-</ins></h4><p><ins class="diff-chg">
-The
-algorithm
-takes
-two
-required
-inputs:
-an
-</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-chg">
-RDF
-dataset
-</ins></a><ins class="diff-chg">
-and
-a
-flag
-</ins><i><ins class="diff-chg">
-use
-native
-types
-</ins></i><ins class="diff-chg">
-that
-defaults
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>.
-</p>
-<ol class="algorithm">
-<del class="diff-old">Construct
-defaultGraph
-as
-</del>
-<li>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-default
-graph
-</ins></i><ins class="diff-chg">
-to
-</ins>
-a
-<ins class="diff-chg">new
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-<del class="diff-old">containing
-subjects
-</del>
-<ins class="diff-chg">consisting
-of
-two
-members,
-</ins><code><ins class="diff-chg">
-nodeMap
-</ins></code>
-and
-<code>
-listMap
-<del class="diff-old">,
-each
-</del>
-</code>,
-<ins class="diff-chg">whose
-value
-is
-an
-</ins>
-an
-empty
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>.
-</li>
-<li>
-<del class="diff-old">Construct
-graphs
-as
-a
-</del>
-<ins class="diff-chg">Initialize
-</ins><i><ins class="diff-chg">
-graph
-map
-</ins></i><ins class="diff-chg">
-to
-an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-<del class="diff-old">containing
-defaultGraph
-identified
-by
-an
-empty
-string
-.
-</del>
-<ins class="diff-chg">consisting
-of
-a
-single
-member
-</ins><code><ins class="diff-chg">
-@default
-</ins></code><ins class="diff-chg">
-whose
-value
-is
-set
-to
-reference
-</ins><i><ins class="diff-chg">
-default
-graph
-</ins></i>.</li><li><ins class="diff-chg">
-Reference
-the
-</ins><code><ins class="diff-chg">
-nodeMap
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-default
-graph
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-default
-graph
-nodes
-</ins></i>.
-</li>
-<li>
-For
-each
-<del class="diff-old">quad
-</del>
-<i>
-<ins class="diff-chg">graph
-</ins></i>
-in
-<del class="diff-old">input
-:
-</del>
-<a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">
-<ins class="diff-chg">RDF
-dataset
-</ins></a>:
-<ol class="algorithm">
-<li>
-<del class="diff-old">Set
-</del>
-<ins class="diff-chg">If
-</ins><i>
-graph
-</i>
-<ins class="diff-chg">is
-the
-</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
-default
-graph
-</ins></a>,<ins class="diff-chg">
-set
-</ins><i><ins class="diff-chg">
-name
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-@default
-</ins></code>,<ins class="diff-chg">
-otherwise
-</ins>
-to
-the
-<del class="diff-old">entry
-in
-graphs
-identified
-by
-</del>
-<a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
-<ins class="diff-chg">graph
-</ins>
-name
-<del class="diff-old">,
-initializing
-it
-</del>
-</a>
-<ins class="diff-chg">associated
-with
-</ins><i><ins class="diff-chg">
-graph
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-graph
-map
-</ins></i><ins class="diff-chg">
-has
-no
-</ins><i><ins class="diff-chg">
-name
-</ins></i><ins class="diff-chg">
-member,
-create
-one
-and
-set
-its
-value
-to
-a
-</ins>
-to
-a
-new
-<del class="diff-old">entry
-using
-the
-mechanism
-described
-in
-Step
-1
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins></a><ins class="diff-chg">
-consisting
-of
-two
-members,
-</ins><code><ins class="diff-chg">
-nodeMap
-</ins></code><ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-listMap
-</ins></code>,<ins class="diff-chg">
-whose
-value
-is
-an
-an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins>
-</a>.
-</li>
-<li>
-If
-<del class="diff-old">property
-</del>
-<i>
-<ins class="diff-chg">graph
-</ins></i>
-is
-<del class="diff-old">rdf:first
-,
-use
-</del>
-<ins class="diff-chg">not
-</ins>
-the
-<del class="diff-old">entry
-in
-graph.listMap
-indexed
-by
-subject
-,
-initializing
-it
-</del>
-<a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">
-<ins class="diff-chg">default
-graph
-</ins></a><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-default
-graph
-nodes
-</ins></i><ins class="diff-chg">
-does
-not
-have
-a
-</ins><i><ins class="diff-chg">
-name
-</ins></i><ins class="diff-chg">
-member,
-create
-such
-a
-member
-and
-initialize
-its
-value
-</ins>
-to
-a
-new
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-<del class="diff-old">if
-nesessary.
-Represent
-object
-in
-expanded
-form,
-as
-described
-</del>
-<ins class="diff-chg">with
-a
-single
-member
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-whose
-value
-is
-</ins><i><ins class="diff-chg">
-name
-</ins></i>.</li><li><ins class="diff-chg">
-Reference
-the
-value
-of
-the
-</ins><i><ins class="diff-chg">
-name
-</ins></i><ins class="diff-chg">
-member
-</ins>
-in
-<del class="diff-old">Value
-Expansion
-.
-Add
-</del>
-<i>
-<ins class="diff-chg">graph
-map
-</ins></i><ins class="diff-chg">
-using
-</ins>
-the
-<del class="diff-old">resulting
-</del>
-<ins class="diff-chg">variable
-</ins><i><ins class="diff-chg">
-graph
-</ins>
-object
-<del class="diff-old">representation
-to
-</del>
-</i>.
-</li>
-<li>
-<ins class="diff-chg">Reference
-</ins>
-the
-<del class="diff-old">entry
-indexed
-by
-first
-,
-</del>
-<ins class="diff-chg">value
-of
-the
-</ins><code><ins class="diff-chg">
-nodeMap
-</ins></code><ins class="diff-chg">
-member
-in
-</ins><i><ins class="diff-chg">
-graph
-object
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i>
-and
-<del class="diff-old">skip
-to
-</del>
-the
-<del class="diff-old">next
-quad.
-</del>
-<ins class="diff-chg">value
-of
-the
-</ins><code><ins class="diff-chg">
-listMap
-</ins></code><ins class="diff-chg">
-member
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-list
-map
-</ins></i>.
-</li>
-<li>
-<ins class="diff-new">For
-each
-</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-new">
-RDF
-triple
-</ins></a><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-graph
-</ins></i><ins class="diff-new">
-consisting
-of
-</ins><i><ins class="diff-new">
-subject
-</ins></i>,<i><ins class="diff-new">
-predicate
-</ins></i>,<ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-object
-</ins></i>:<ol class="algorithm"><li>
-If
-<del class="diff-old">property
-is
-</del>
-<i>
-<ins class="diff-chg">predicate
-</ins></i><ins class="diff-chg">
-equals
-</ins>
-<code>
-<del class="diff-old">rdf:rest
-:
-</del>
-<ins class="diff-chg">rdf:first
-</ins></code>,
-<ol class="algorithm">
-<li>
-If
-<del class="diff-old">object
-is
-a
-blank
-node
-,
-use
-the
-entry
-in
-graph.listMap
-indexed
-by
-</del>
-<i>
-<ins class="diff-chg">list
-map
-</ins></i><ins class="diff-chg">
-has
-no
-</ins><i>
-subject
-<del class="diff-old">,
-initializing
-</del>
-</i>
-<ins class="diff-chg">member,
-create
-one
-and
-initialize
-</ins>
-it
-to
-<del class="diff-old">a
-new
-</del>
-<ins class="diff-chg">an
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-<del class="diff-old">if
-necessary.
-Add
-</del>
-</a>.
-</li>
-<li>
-<ins class="diff-chg">Initialize
-</ins>
-the
-<del class="diff-old">nominalValue
-</del>
-<ins class="diff-chg">value
-</ins>
-of
-<del class="diff-old">object
-</del>
-<ins class="diff-chg">the
-</ins><code><ins class="diff-chg">
-first
-</ins></code><ins class="diff-chg">
-member
-of
-the
-</ins><i><ins class="diff-chg">
-subject
-</ins></i><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-list
-map
-</ins></i>
-to
-the
-<del class="diff-old">entry
-indexed
-by
-rest
-.
-</del>
-<ins class="diff-chg">result
-of
-the
-</ins><a href="#rdf-to-object-conversion"><ins class="diff-chg">
-RDF
-to
-Object
-Conversion
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><i><ins class="diff-chg">
-object
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-use
-native
-types
-</ins></i>.
-</li>
-<li>
-<del class="diff-old">Skip
-to
-</del>
-<ins class="diff-chg">Continue
-with
-</ins>
-the
-next
-<del class="diff-old">quad.
-</del>
-<a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">
-<ins class="diff-chg">RDF
-triple
-</ins></a>.
-</li>
-</ol>
-</li>
-<li>
-If
-<del class="diff-old">name
-is
-not
-null
-,
-</del>
-<i>
-<ins class="diff-chg">predicate
-</ins></i><ins class="diff-chg">
-equals
-</ins><code><ins class="diff-chg">
-rdf:rest
-</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-list
-map
-</ins></i><ins class="diff-chg">
-has
-no
-</ins><i><ins class="diff-chg">
-subject
-</ins></i><ins class="diff-chg">
-member,
-create
-one
-</ins>
-and
-<del class="diff-old">defaultGraph.subjects
-does
-not
-contain
-</del>
-<ins class="diff-chg">initialize
-it
-to
-</ins>
-an
-<del class="diff-old">entry
-for
-name
-,
-create
-a
-new
-entry
-for
-name
-from
-a
-new
-</del>
-<ins class="diff-chg">empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-<del class="diff-old">with
-key/value
-pair
-</del>
-</a>.
-</li>
-<li>
-<ins class="diff-chg">Initialize
-the
-value
-</ins>
-of
-<ins class="diff-new">the
-</ins>
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">rest
-</ins>
-</code>
-<del class="diff-old">and
-a
-string
-representation
-</del>
-<ins class="diff-chg">member
-</ins>
-of
-<del class="diff-old">name
-.
-</del>
-<ins class="diff-chg">the
-</ins><i><ins class="diff-chg">
-subject
-</ins></i><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-list
-map
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object"><ins class="diff-chg">
-object
-</ins></a>,<ins class="diff-chg">
-which
-is
-either
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>.
-</li>
-<li>
-<del class="diff-old">Set
-value
-as
-</del>
-<ins class="diff-chg">Continue
-with
-</ins>
-the
-<del class="diff-old">entry
-from
-graph.subjects
-for
-</del>
-<ins class="diff-chg">next
-</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
-RDF
-triple
-</ins></a>.</li></ol></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i><ins class="diff-chg">
-does
-not
-have
-a
-</ins><i>
-subject
-<del class="diff-old">,
-initializing
-it
-</del>
-</i>
-<ins class="diff-chg">member,
-create
-one
-and
-initialize
-its
-value
-</ins>
-to
-a
-new
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-<del class="diff-old">with
-key/value
-pair
-</del>
-<ins class="diff-chg">consisting
-</ins>
-of
-<ins class="diff-new">a
-single
-member
-</ins>
-<code>
-@id
-</code>
-<del class="diff-old">and
-a
-string
-representation
-</del>
-<ins class="diff-chg">whose
-value
-is
-set
-to
-</ins><i><ins class="diff-chg">
-subject
-</ins></i>.</li><li><ins class="diff-chg">
-Reference
-the
-value
-</ins>
-of
-<ins class="diff-chg">the
-</ins><i>
-subject
-<del class="diff-old">if
-necessary.
-</del>
-</i>
-<ins class="diff-chg">member
-in
-</ins><i><ins class="diff-chg">
-node
-map
-</ins></i><ins class="diff-chg">
-using
-the
-variable
-</ins><i><ins class="diff-chg">
-node
-</ins></i>.
-</li>
-<li>
-If
-<del class="diff-old">property
-is
-</del>
-<i>
-<ins class="diff-chg">predicate
-</ins></i><ins class="diff-chg">
-equals
-</ins>
-<code>
-rdf:type
-</code>,
-and
-<del class="diff-old">the
-notType
-option
-</del>
-<i>
-<ins class="diff-chg">object
-</ins></i>
-is
-<del class="diff-old">present
-and
-not
-true
-:
-Append
-the
-string
-representation
-of
-</del>
-<ins class="diff-chg">an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>,<ins class="diff-chg">
-append
-</ins><i>
-object
-</i>
-to
-the
-<del class="diff-old">array
-</del>
-value
-<del class="diff-old">for
-</del>
-<ins class="diff-chg">of
-</ins>
-the
-<del class="diff-old">key
-</del>
-<code>
-@type
-<del class="diff-old">,
-creating
-</del>
-</code>
-<ins class="diff-chg">member
-of
-</ins><i><ins class="diff-chg">
-node
-</ins></i>.<ins class="diff-chg">
-If
-no
-such
-member
-exists,
-create
-one
-and
-initialize
-it
-to
-</ins>
-an
-<del class="diff-old">entry
-in
-value
-if
-necessary.
-Otherwise,
-if
-object
-</del>
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a><ins class="diff-chg">
-whose
-only
-item
-</ins>
-is
-<del class="diff-old">rdf:nil
-:
-Let
-key
-be
-</del>
-<i>
-<ins class="diff-chg">object
-</ins></i>.<ins class="diff-chg">
-Finally,
-continue
-to
-</ins>
-the
-<del class="diff-old">string
-representation
-of
-property
-.
-</del>
-<ins class="diff-chg">next
-</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
-RDF
-triple
-</ins></a>.
-</li>
-<li>
-<del class="diff-old">Append
-</del>
-<ins class="diff-chg">If
-</ins><i><ins class="diff-chg">
-node
-</ins></i><ins class="diff-chg">
-does
-not
-have
-</ins>
-an
-<del class="diff-old">empty
-@list
-representation
-to
-the
-array
-</del>
-<i>
-<ins class="diff-chg">predicate
-</ins></i><ins class="diff-chg">
-member,
-create
-one
-and
-initialize
-its
-</ins>
-value
-<del class="diff-old">for
-key
-,
-creating
-</del>
-<ins class="diff-chg">to
-</ins>
-an
-<del class="diff-old">entry
-in
-value
-if
-necessary.
-</del>
-<ins class="diff-chg">empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.
-</li>
-<li>
-<del class="diff-old">Otherwise,
-Let
-key
-be
-</del>
-<ins class="diff-chg">Set
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-</ins>
-the
-<del class="diff-old">string
-representation
-</del>
-<ins class="diff-chg">result
-</ins>
-of
-<del class="diff-old">property
-and
-let
-object
-representation
-be
-</del>
-<ins class="diff-chg">using
-the
-</ins><a href="#rdf-to-object-conversion"><ins class="diff-chg">
-RDF
-to
-Object
-Conversion
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><i>
-object
-<del class="diff-old">represented
-in
-expanded
-form
-as
-described
-in
-Value
-Expansion
-.
-</del>
-</i>
-<ins class="diff-chg">and
-</ins><i><ins class="diff-chg">
-use
-native
-types
-</ins></i>.</li><li><ins class="diff-chg">
-Add
-a
-reference
-to
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-to
-the
-to
-the
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-associated
-with
-the
-</ins><i><ins class="diff-chg">
-predicate
-</ins></i><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-node
-</ins></i>.
-</li>
-<li>
-If
-<i>
-object
-</i>
-is
-<ins class="diff-new">an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-or
-</ins>
-a
-<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
-blank
-node
-<del class="diff-old">,
-use
-the
-entry
-in
-graph.listMap
-indexed
-by
-object
-,
-initializing
-</del>
-<ins class="diff-chg">identifier
-</ins></a>
-it
-<del class="diff-old">to
-</del>
-<ins class="diff-chg">might
-represent
-the
-head
-of
-</ins>
-a
-<del class="diff-old">new
-JSON
-</del>
-<ins class="diff-chg">RDF
-list:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-list
-map
-</ins></i><ins class="diff-chg">
-has
-no
-</ins><i>
-object
-<del class="diff-old">if
-nesessary.
-Add
-</del>
-</i>
-<ins class="diff-chg">member,
-create
-one
-and
-set
-its
-value
-to
-</ins>
-an
-<del class="diff-old">entry
-for
-head
-with
-</del>
-<ins class="diff-chg">empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-</ins>
-object
-<del class="diff-old">representation
-.
-</del>
-</a>.
-</li>
-<li>
-<del class="diff-old">Append
-</del>
-<ins class="diff-chg">Set
-the
-</ins><code><ins class="diff-chg">
-head
-</ins></code><ins class="diff-chg">
-member
-of
-the
-</ins><i>
-object
-<del class="diff-old">representation
-</del>
-</i>
-<ins class="diff-chg">member
-of
-</ins><i><ins class="diff-chg">
-list
-map
-</ins></i><ins class="diff-chg">
-to
-a
-reference
-of
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.<ins class="diff-chg">
-This
-reference
-may
-be
-required
-later
-</ins>
-to
-<ins class="diff-new">replace
-</ins>
-the
-<del class="diff-old">array
-</del>
-<i>
-value
-<del class="diff-old">for
-key
-,
-creating
-an
-entry
-</del>
-</i>
-in
-<del class="diff-old">value
-if
-necessary.
-</del>
-<ins class="diff-chg">the
-</ins><i><ins class="diff-chg">
-predicate
-</ins></i><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-node
-</ins></i><ins class="diff-chg">
-with
-a
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins></a>.</li></ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-<li>
-For
-each
-<i>
-name
-</i>
-and
-<i>
-graph
-<ins class="diff-chg">object
-</ins></i>
-in
-<del class="diff-old">graphs
-:
-</del>
-<i>
-<ins class="diff-chg">graph
-map
-</ins></i>:
-<ol class="algorithm">
-<li>
-<ins class="diff-new">Reference
-the
-value
-of
-the
-</ins><code><ins class="diff-new">
-listMap
-</ins></code><ins class="diff-new">
-member
-in
-</ins><i><ins class="diff-new">
-graph
-object
-</ins></i><ins class="diff-new">
-using
-the
-variable
-</ins><i><ins class="diff-new">
-list
-map
-</ins></i>.</li><li>
-For
-each
-<ins class="diff-chg">key-value
-pair
-</ins><i>
-subject
-<del class="diff-old">and
-</del>
-</i>
-<ins class="diff-chg">-
-</ins><i>
-entry
-<del class="diff-old">in
-</del>
-</i>
-<ins class="diff-chg">of
-the
-value
-associated
-to
-the
-</ins><code><ins class="diff-chg">
-listMap
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i>
-graph
-<del class="diff-old">where
-</del>
-<ins class="diff-chg">object
-</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
-If
-</ins><i>
-entry
-</i>
-has
-<del class="diff-old">both
-</del>
-<ins class="diff-chg">not
-an
-</ins><code>
-head
-</code>
-and
-<ins class="diff-chg">an
-</ins><code>
-first
-<del class="diff-old">keys:
-</del>
-</code>
-<ins class="diff-chg">member
-it
-does
-not
-represent
-the
-head
-of
-a
-</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
-list
-</ins></a>.<ins class="diff-chg">
-Continue
-with
-the
-next
-key-value
-pair.
-</ins></li>
-<li>
-<del class="diff-old">Set
-value
-to
-</del>
-<ins class="diff-chg">Reference
-</ins>
-the
-value
-of
-<ins class="diff-chg">the
-</ins><code>
-head
-</code>
-<ins class="diff-chg">member
-</ins>
-in
-<i>
-entry
-<del class="diff-old">.
-</del>
-</i>
-<ins class="diff-chg">using
-the
-variable
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.
-</li>
-<li>
-Remove
-the
-<del class="diff-old">entry
-for
-</del>
-<code>
-@id
-</code>
-<del class="diff-old">in
-</del>
-<ins class="diff-chg">member
-from
-</ins><i>
-value
-<del class="diff-old">.
-</del>
-</i>.
-</li>
-<li>
-Add
-an
-<del class="diff-old">entry
-to
-value
-for
-</del>
-<code>
-@list
-</code>
-<del class="diff-old">initialized
-</del>
-<ins class="diff-chg">member
-</ins>
-to
-<del class="diff-old">a
-new
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i><ins class="diff-chg">
-and
-initialize
-it
-to
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-containing
-the
-value
-of
-<ins class="diff-chg">the
-</ins><code>
-first
-<del class="diff-old">from
-</del>
-</code>
-<ins class="diff-chg">member
-of
-</ins><i>
-entry
-<del class="diff-old">.
-</del>
-</i>.
-</li>
-<li>
-While
-<del class="diff-old">entry
-has
-a
-key
-for
-</del>
-<ins class="diff-chg">the
-value
-associated
-with
-the
-</ins><code>
-rest
-<del class="diff-old">:
-</del>
-</code>
-<ins class="diff-chg">member
-of
-</ins><i><ins class="diff-chg">
-entry
-</ins></i><ins class="diff-chg">
-is
-not
-</ins><code><ins class="diff-chg">
-rdf:nil
-</ins></code>:
-<ol class="algorithm">
-<li>
-Set
-<i>
-<ins class="diff-chg">rest
-</ins></i><ins class="diff-chg">
-to
-the
-value
-of
-the
-</ins><code><ins class="diff-chg">
-rest
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i>
-entry
-</i>.
-</li>
-<li>
-<ins class="diff-chg">Set
-</ins><i><ins class="diff-chg">
-entry
-</ins></i>
-to
-the
-value
-<ins class="diff-new">associated
-with
-the
-</ins><i><ins class="diff-new">
-rest
-</ins></i><ins class="diff-new">
-member
-</ins>
-of
-<del class="diff-old">graph.listMap
-for
-entry.rest
-.
-</del>
-<i>
-<ins class="diff-chg">list
-map
-</ins></i>.
-</li>
-<li>
-Add
-the
-value
-<del class="diff-old">for
-entry.first
-</del>
-<ins class="diff-chg">associated
-with
-the
-</ins><code><ins class="diff-chg">
-first
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-entry
-</ins></i>
-to
-the
-<del class="diff-old">list
-array.
-</del>
-<code>
-<ins class="diff-chg">@list
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-<li>
-<del class="diff-old">Create
-array
-as
-</del>
-<ins class="diff-chg">Initialize
-</ins>
-an
-empty
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-<del class="diff-old">.
-</del>
-</a>
-<i>
-<ins class="diff-chg">result
-</ins></i>.
-</li>
-<li>
-For
-each
-<i>
-subject
-</i>
-and
-<del class="diff-old">entry
-</del>
-<i>
-<ins class="diff-chg">node
-</ins></i>
-in
-<del class="diff-old">defaultGraph.subjects
-</del>
-<i>
-<ins class="diff-chg">default
-graph
-nodes
-</ins></i>
-ordered
-by
-<i>
-subject
-<del class="diff-old">:
-</del>
-</i>:
-<ol class="algorithm">
-<li>
-<del class="diff-old">Add
-entry
-to
-array
-.
-</del>
-If
-<del class="diff-old">graphs
-</del>
-<i>
-<ins class="diff-chg">graph
-map
-</ins></i>
-has
-an
-<del class="diff-old">entry
-for
-</del>
-<i>
-subject
-<del class="diff-old">,
-add
-</del>
-</i>
-<ins class="diff-chg">member:
-</ins><ol class="algorithm"><li><ins class="diff-chg">
-Add
-</ins>
-a
-<del class="diff-old">property
-</del>
-<code>
-@graph
-</code>
-<del class="diff-old">in
-entry
-containing
-</del>
-<ins class="diff-chg">member
-to
-</ins><i><ins class="diff-chg">
-node
-</ins></i><ins class="diff-chg">
-and
-initialize
-its
-value
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>.</li><li><ins class="diff-chg">
-Reference
-the
-</ins><code><ins class="diff-chg">
-nodeMap
-</ins></code><ins class="diff-chg">
-member
-of
-the
-</ins><i><ins class="diff-chg">
-subject
-</ins></i><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-graph
-map
-</ins></i><ins class="diff-chg">
-using
-</ins>
-the
-<ins class="diff-new">variable
-</ins><i><ins class="diff-new">
-node
-map
-</ins></i>.</li><li><ins class="diff-new">
-For
-each
-key-value
-pair
-</ins><i><ins class="diff-new">
-s
-</ins></i><ins class="diff-new">
--
-</ins><i><ins class="diff-new">
-n
-</ins></i><ins class="diff-new">
-in
-</ins><i><ins class="diff-new">
-node
-map
-</ins></i>
-ordered
-<del class="diff-old">entries
-from
-graphs[subject].subjects
-.
-</del>
-<ins class="diff-chg">by
-</ins><i><ins class="diff-chg">
-s
-</ins></i>,<ins class="diff-chg">
-append
-</ins><i><ins class="diff-chg">
-n
-</ins></i><ins class="diff-chg">
-to
-the
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-member
-of
-</ins><i><ins class="diff-chg">
-node
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Append
-</ins><i><ins class="diff-chg">
-node
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.
-</li>
-</ol>
-</li>
-<li>
-Return
-<del class="diff-old">array
-as
-the
-result.
-</del>
-<i>
-<ins class="diff-chg">result
-</ins></i>.
-</li>
-</ol>
-</section>
-</section>
-<section id="rdf-to-object-conversion">
-<h3>
-<span class="secno">
-<del class="diff-old">5.
-</del>
-<ins class="diff-chg">10.5
-</ins>
-</span>
-<del class="diff-old">Data
-Round
-Tripping
-</del>
-<ins class="diff-chg">RDF
-to
-Object
-Conversion
-</ins></h3>
-<p>
-<del class="diff-old">When
-coercing
-numbers
-</del>
-<ins class="diff-chg">This
-algorithm
-transforms
-an
-RDF
-literal
-</ins>
-to
-<ins class="diff-chg">a
-JSON-LD
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins></a><ins class="diff-chg">
-and
-a
-RDF
-blank
-node
-or
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-to
-an
-JSON-LD
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a>.</p><section class="informative"><h4 id="overview-17"><ins class="diff-chg">
-Overview
-</ins></h4><p><em><ins class="diff-chg">
-This
-section
-is
-non-normative.
-</ins></em></p><p><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
-RDF
-literals
-</ins></a><ins class="diff-chg">
-are
-transformed
-to
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-objects
-</ins></a><ins class="diff-chg">
-whereas
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a><ins class="diff-chg">
-are
-transformed
-to
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-objects
-</ins></a>.<ins class="diff-chg">
-If
-the
-</ins><i><ins class="diff-chg">
-use
-native
-types
-</ins></i><ins class="diff-chg">
-flag
-is
-set
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
-RDF
-literals
-</ins></a><ins class="diff-chg">
-with
-a
-</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
-datatype
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-that
-equals
-</ins><code>
-xsd:integer
-</code>
-or
-<code>
-xsd:double
-<del class="diff-old">as
-it,
-e.g.,
-happens
-during
-</del>
-</code>
-<ins class="diff-chg">are
-converted
-to
-a
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-JSON
-numbers
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">
-RDF
-<del class="diff-old">Conversion
-,
-implementers
-must
-ensure
-</del>
-<ins class="diff-chg">literals
-</ins></a><ins class="diff-chg">
-with
-a
-</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
-datatype
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>
-that
-<ins class="diff-new">equals
-</ins><code><ins class="diff-new">
-xsd:boolean
-</ins></code><ins class="diff-new">
-are
-converted
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
-false
-</ins></a><ins class="diff-new">
-based
-on
-their
-</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form"><ins class="diff-new">
-lexical
-form
-</ins></a><ins class="diff-new">
-as
-described
-in
-</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-new">
-section
-10.6
-Data
-Round
-Tripping
-</ins></a>.</p></section><section><h4 id="algorithm-17"><ins class="diff-new">
-Algorithm
-</ins></h4><p><ins class="diff-new">
-This
-algorithm
-takes
-two
-required
-inputs:
-a
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-to
-be
-converted
-to
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a><ins class="diff-new">
-and
-a
-flag
-</ins><i><ins class="diff-new">
-use
-native
-types
-</ins></i>.</p><ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-is
-an
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-or
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
-blank
-node
-identifier
-</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
-If
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-equals
-</ins><code><ins class="diff-new">
-rdf:nil
-</ins></code><ins class="diff-new">
-return
-a
-new
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a><ins class="diff-new">
-consisting
-of
-a
-single
-member
-</ins><code><ins class="diff-new">
-@list
-</ins></code><ins class="diff-new">
-whose
-value
-is
-set
-to
-an
-empty
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a>.<ins class="diff-new">
-This
-is
-behavior
-is
-required
-by
-</ins>
-the
-<del class="diff-old">result
-</del>
-<a href="#convert-from-rdf-algorithm">
-<ins class="diff-chg">Convert
-from
-RDF
-algorithm
-</ins></a>.</li><li><ins class="diff-chg">
-Otherwise,
-return
-a
-new
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-consisting
-of
-a
-single
-member
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-whose
-value
-is
-set
-to
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.</li></ol></li><li><ins class="diff-chg">
-Otherwise
-</ins><i><ins class="diff-chg">
-value
-</ins></i>
-is
-<ins class="diff-new">an
-</ins><a class="tref externalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-new">
-RDF
-literal
-</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
-Initialize
-</ins>
-a
-<del class="diff-old">canonical
-</del>
-<ins class="diff-chg">new
-empty
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-result.
-</ins></li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-converted
-value
-</ins></i><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.</li><li><ins class="diff-chg">
-Initialize
-</ins><i><ins class="diff-chg">
-type
-</ins></i><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a></li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-use
-native
-types
-</ins></i><ins class="diff-chg">
-is
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ol class="algorithm"><li><ins class="diff-chg">
-If
-the
-</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
-datatype
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-equals
-</ins><code><ins class="diff-chg">
-xsd:string
-</ins></code>,<ins class="diff-chg">
-set
-</ins><i><ins class="diff-chg">
-converted
-value
-</ins></i><ins class="diff-chg">
-to
-the
-</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">
-lexical
-form
-<del class="diff-old">in
-</del>
-</a>
-<ins class="diff-chg">of
-</ins><i><ins class="diff-chg">
-value
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins>
-the
-<a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">
-<ins class="diff-new">datatype
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-of
-</ins><i><ins class="diff-new">
-value
-</ins></i><ins class="diff-new">
-equals
-</ins><code><ins class="diff-new">
-xsd:boolean
-</ins></code>,<ins class="diff-new">
-set
-</ins><i><ins class="diff-new">
-converted
-value
-</ins></i><ins class="diff-new">
-to
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-if
-the
-</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form"><ins class="diff-new">
-lexical
-</ins>
-form
-</a>
-of
-<del class="diff-old">a
-string
-.
-A
-canonical
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i><ins class="diff-chg">
-matches
-</ins><code><ins class="diff-chg">
-true
-</ins></code>,<ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a><ins class="diff-chg">
-if
-it
-matches
-</ins><code><ins class="diff-chg">
-false
-</ins></code>.<ins class="diff-chg">
-If
-it
-matches
-neither,
-set
-</ins><i><ins class="diff-chg">
-type
-</ins></i><ins class="diff-chg">
-to
-</ins><code><ins class="diff-chg">
-xsd:boolean
-</ins></code>.</li><li><ins class="diff-chg">
-Otherwise,
-if
-the
-</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
-datatype
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-equals
-</ins><code><ins class="diff-chg">
-xsd:integer
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-xsd:double
-</ins></code><ins class="diff-chg">
-and
-its
-</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">
-lexical
-form
-</a>
-is
-a
-<ins class="diff-new">valid
-</ins><code><ins class="diff-new">
-xsd:integer
-</ins></code><ins class="diff-new">
-or
-</ins><code><ins class="diff-new">
-xsd:double
-</ins></code><ins class="diff-new">
-according
-[
-</ins><cite><a class="bibref" href="#bib-XMLSCHEMA11-2"><ins class="diff-new">
-XMLSCHEMA11-2
-</ins></a></cite><ins class="diff-new">
-],
-</ins>
-set
-<i>
-<ins class="diff-new">converted
-value
-</ins></i><ins class="diff-new">
-to
-the
-result
-</ins>
-of
-<del class="diff-old">literals
-from
-among
-</del>
-<ins class="diff-chg">converting
-</ins>
-the
-<del class="diff-old">valid
-</del>
-<a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">
-<ins class="diff-chg">lexical
-form
-</ins></a><ins class="diff-chg">
-to
-a
-JSON
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-number
-</ins></a>.</li></ol></li><li><ins class="diff-chg">
-Otherwise,
-if
-</ins><i><ins class="diff-chg">
-value
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><a class="tref externalDFN" title="language-tagged-string" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string"><ins class="diff-chg">
-language-tagged
-string
-</ins></a><ins class="diff-chg">
-add
-a
-member
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-and
-</ins>
-set
-<ins class="diff-new">its
-value
-to
-the
-</ins><a class="tref externalDFN" title="language-tag" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tag"><ins class="diff-new">
-language
-tag
-</ins></a>
-of
-<del class="diff-old">literals
-for
-a
-</del>
-<i>
-<ins class="diff-chg">value
-</ins></i>.</li><li><ins class="diff-chg">
-Otherwise,
-set
-</ins><i><ins class="diff-chg">
-type
-</ins></i><ins class="diff-chg">
-to
-the
-</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">
-datatype
-<del class="diff-old">such
-that
-there
-</del>
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr></a><ins class="diff-chg">
-of
-</ins><i><ins class="diff-chg">
-value
-</ins></i>,<ins class="diff-chg">
-unless
-it
-equals
-</ins><code><ins class="diff-chg">
-xsd:string
-</ins></code><ins class="diff-chg">
-which
-</ins>
-is
-<ins class="diff-new">ignored.
-</ins></li><li><ins class="diff-new">
-Add
-</ins>
-a
-<del class="diff-old">one-to-one
-mapping
-between
-</del>
-<ins class="diff-chg">member
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-whose
-value
-is
-set
-to
-</ins><i><ins class="diff-chg">
-converted
-value
-</ins></i>.</li><li><ins class="diff-chg">
-If
-</ins><i><ins class="diff-chg">
-type
-</ins></i><ins class="diff-chg">
-is
-not
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-add
-a
-member
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-to
-</ins><i><ins class="diff-chg">
-result
-</ins></i><ins class="diff-chg">
-whose
-value
-is
-set
-to
-</ins><i><ins class="diff-chg">
-type
-</ins></i>.</li><li><ins class="diff-chg">
-Return
-</ins><i><ins class="diff-chg">
-result
-</ins></i>.</li></ol></li></ol></section></section><section id="data-round-tripping"><h3><span class="secno"><ins class="diff-chg">
-10.6
-</ins></span><ins class="diff-chg">
-Data
-Round
-Tripping
-</ins></h3><p><ins class="diff-chg">
-When
-</ins><a href="#convert-to-rdf-algorithm"><ins class="diff-chg">
-converting
-JSON-LD
-to
-RDF
-</ins></a><ins class="diff-chg">
-JSON-native
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-numbers
-</ins></a><ins class="diff-chg">
-are
-automatically
-type-coerced
-to
-</ins><code><ins class="diff-chg">
-xsd:integer
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-xsd:double
-</ins></code><ins class="diff-chg">
-depending
-on
-whether
-</ins>
-the
-<a class="tref internalDFN" title="number" href="#dfn-number">
-<ins class="diff-new">number
-</ins></a><ins class="diff-new">
-has
-fractions
-or
-not,
-the
-boolean
-values
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a><ins class="diff-new">
-and
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
-false
-</ins></a><ins class="diff-new">
-are
-coerced
-to
-</ins><code><ins class="diff-new">
-xsd:boolean
-</ins></code>,<ins class="diff-new">
-and
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-strings
-</ins></a><ins class="diff-new">
-are
-coerced
-to
-</ins><code><ins class="diff-new">
-xsd:string
-</ins></code>.<ins class="diff-new">
-The
-numeric
-or
-boolean
-values
-itself
-are
-converted
-to
-</ins><dfn title="canonical-lexical-form" id="dfn-canonical-lexical-form">
-canonical
-lexical
-form
-<del class="diff-old">and
-</del>
-</dfn>,
-<ins class="diff-chg">i.e.,
-</ins>
-a
-<del class="diff-old">value
-in
-the
-value
-space
-</del>
-<ins class="diff-chg">deterministic
-string
-representation
-</ins>
-as
-defined
-in
-[
-<cite>
-<a class="bibref" href="#bib-XMLSCHEMA11-2">
-XMLSCHEMA11-2
-</a>
-</cite>
-<del class="diff-old">]].
-In
-other
-words,
-every
-value
-must
-be
-converted
-to
-a
-deterministic
-string
-representation.
-</del>
-<ins class="diff-chg">].
-</ins>
-</p>
-<p>
-The
-<a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">
-canonical
-lexical
-form
-</a>
-of
-an
-<em>
-integer
-</em>,
-i.e.,
-a
-<a class="tref internalDFN" title="number" href="#dfn-number">
-number
-</a>
-without
-fractions
-or
-a
-<a class="tref internalDFN" title="number" href="#dfn-number">
-number
-</a>
-coerced
-to
-<code>
-xsd:integer
-<del class="diff-old">,
-</del>
-</code>,
-is
-a
-finite-length
-sequence
-of
-decimal
-digits
-(
-<code>
-0-9
-</code>
-)
-with
-an
-optional
-leading
-minus
-sign;
-leading
-<del class="diff-old">zeroes
-</del>
-<ins class="diff-chg">zeros
-</ins>
-are
-prohibited.
-<del class="diff-old">To
-convert
-the
-number
-in
-</del>
-<ins class="diff-chg">In
-</ins>
-JavaScript,
-implementers
-can
-use
-the
-following
-snippet
-of
-<del class="diff-old">code:
-</del>
-<ins class="diff-chg">code
-to
-convert
-an
-integer
-to
-</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
-canonical
-lexical
-form
-</ins></a>:
-</p>
-<div class="example">
-<div class="example-title">
-<span>
-Example
-<del class="diff-old">23
-</del>
-<ins class="diff-chg">12
-</ins></span>:<ins class="diff-chg">
-Sample
-integer
-serialization
-implementation
-in
-JavaScript
-</ins>
-</div>
-<pre class="example">
-(value).toFixed(0).toString()
-</pre>
-</div>
-<p>
-The
-<a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">
-canonical
-lexical
-form
-</a>
-of
-a
-<em>
-double
-</em>,
-i.e.,
-a
-<a class="tref internalDFN" title="number" href="#dfn-number">
-number
-</a>
-with
-fractions
-or
-a
-<a class="tref internalDFN" title="number" href="#dfn-number">
-number
-</a>
-coerced
-to
-<code>
-xsd:double
-<del class="diff-old">,
-</del>
-</code>,
-consists
-of
-a
-mantissa
-followed
-by
-the
-character
-<del class="diff-old">&quot;E&quot;,
-</del>
-<code>
-<ins class="diff-chg">E
-</ins></code>,
-followed
-by
-an
-exponent.
-The
-mantissa
-<del class="diff-old">must
-be
-</del>
-<ins class="diff-chg">is
-</ins>
-a
-decimal
-<del class="diff-old">number.
-The
-</del>
-<ins class="diff-chg">number
-and
-the
-</ins>
-exponent
-<del class="diff-old">must
-be
-</del>
-<ins class="diff-chg">is
-</ins>
-an
-integer.
-Leading
-<del class="diff-old">zeroes
-</del>
-<ins class="diff-chg">zeros
-</ins>
-and
-a
-preceding
-plus
-sign
-(
-<code>
-+
-</code>
-)
-are
-prohibited
-in
-the
-exponent.
-If
-the
-exponent
-is
-zero,
-it
-<del class="diff-old">must
-be
-</del>
-<ins class="diff-chg">is
-</ins>
-indicated
-by
-<code>
-E0
-</code>.
-For
-the
-mantissa,
-the
-preceding
-optional
-plus
-sign
-is
-prohibited
-and
-the
-decimal
-point
-is
-required.
-Leading
-and
-trailing
-<del class="diff-old">zeroes
-</del>
-<ins class="diff-chg">zeros
-</ins>
-are
-prohibited
-subject
-to
-the
-following:
-number
-representations
-must
-be
-normalized
-such
-that
-there
-is
-a
-single
-digit
-which
-is
-non-zero
-to
-the
-left
-of
-the
-decimal
-point
-and
-at
-least
-a
-single
-digit
-to
-the
-right
-of
-the
-decimal
-point
-unless
-the
-value
-being
-represented
-is
-zero.
-The
-canonical
-representation
-for
-zero
-is
-<code>
-0.0E0
-</code>.
-<del class="diff-old">To
-convert
-the
-number
-in
-JavaScript,
-implementers
-can
-use
-the
-following
-snippet
-of
-code:
-Example
-24
-(value).toExponential().replace(/e\+?/,'E')
-</del>
-<code>
-xsd:double
-</code>
-'s
-value
-space
-is
-defined
-by
-the
-IEEE
-double-precision
-64-bit
-floating
-point
-type
-[
-<cite>
-<a class="bibref" href="#bib-IEEE-754-1985">
-IEEE-754-1985
-</a>
-</cite>
-<del class="diff-old">].
-Note
-When
-data
-such
-as
-decimals
-need
-to
-be
-normalized,
-JSON-LD
-authors
-should
-</del>
-<ins class="diff-chg">]
-whereas
-the
-value
-space
-of
-JSON
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-numbers
-</ins></a><ins class="diff-chg">
-is
-</ins>
-not
-<del class="diff-old">use
-values
-that
-are
-going
-</del>
-<ins class="diff-chg">specified;
-when
-converting
-JSON-LD
-</ins>
-to
-<del class="diff-old">undergo
-automatic
-conversion.
-This
-</del>
-<ins class="diff-chg">RDF
-the
-mantissa
-</ins>
-is
-<del class="diff-old">due
-</del>
-<ins class="diff-chg">rounded
-</ins>
-to
-<ins class="diff-new">15
-digits
-after
-</ins>
-the
-<del class="diff-old">lossy
-nature
-of
-xsd:double
-values.
-Authors
-should
-instead
-</del>
-<ins class="diff-chg">decimal
-point.
-In
-JavaScript,
-implementers
-can
-</ins>
-use
-the
-<del class="diff-old">expanded
-object
-form
-</del>
-<ins class="diff-chg">following
-snippet
-of
-code
-</ins>
-to
-<del class="diff-old">set
-the
-</del>
-<ins class="diff-chg">convert
-a
-double
-to
-</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">
-canonical
-lexical
-form
-<del class="diff-old">directly.
-</del>
-</a>:
-</p>
-<div class="example">
-<div class="example-title">
-<span>
-<del class="diff-old">Note
-</del>
-<ins class="diff-chg">Example
-13
-</ins></span>:<ins class="diff-chg">
-Sample
-floating
-point
-number
-serialization
-implementation
-in
-JavaScript
-</ins>
-</div>
-<pre class="example">
-<ins class="diff-chg">(value).toExponential(15).replace(/(\d)0*e\+?/,'$1E')
-</ins></pre></div><p><ins class="diff-chg">
-The
-</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
-canonical
-lexical
-form
-</ins></a><ins class="diff-chg">
-of
-the
-</ins><em><ins class="diff-chg">
-boolean
-</ins></em><ins class="diff-chg">
-values
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a><ins class="diff-chg">
-are
-the
-strings
-</ins><code><ins class="diff-chg">
-true
-</ins></code><ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-false
-</ins></code>.</p><p>
-When
-JSON-native
-<del class="diff-old">datatypes,
-like
-</del>
-<a class="tref internalDFN" title="number" href="#dfn-number">
-<del class="diff-old">number
-s,
-</del>
-<ins class="diff-chg">numbers
-</ins></a>,
-are
-<del class="diff-old">type
-coerced,
-</del>
-<ins class="diff-chg">converted
-to
-RDF,
-</ins>
-lossless
-data
-round-tripping
-can
-not
-be
-<del class="diff-old">guaranted.
-Consider
-</del>
-<ins class="diff-chg">guaranteed
-as
-rounding
-errors
-might
-occur.
-When
-converting
-</ins><a href="#convert-from-rdf-algorithm"><ins class="diff-chg">
-RDF
-to
-JSON-LD
-</ins></a>,<ins class="diff-chg">
-similar
-rounding
-errors
-might
-occur.
-Furthermore,
-</ins>
-the
-<del class="diff-old">following
-code
-example:
-var myObj1 = {
-               &quot;@context&quot;: {
-                 &quot;number&quot;: {
-                   &quot;@id&quot;: &quot;http://example.com/vocab#number&quot;,
-
-                 }
-               },
-               &quot;number&quot; :
-             };
-// Convert the JSON-LD document to RDF; this converts 42 to a string
-var jsonldText = jsonld.toRDF(myObj1, myRdfTripleCollector);
-// Convert the RDF triples back to a JavaScript object
-var
-myObj2
-=
-jsonld.fromRDF(myRdfTripleCollector.getTriples());
-At
-this
-point,
-myObj1
-and
-myObj2
-will
-have
-different
-values
-for
-</del>
-<ins class="diff-chg">datatype
-or
-</ins>
-the
-<del class="diff-old">&quot;number&quot;
-property.
-</del>
-<ins class="diff-chg">lexical
-representation
-might
-be
-lost.
-An
-</ins>
-<code>
-<del class="diff-old">myObj1
-</del>
-<ins class="diff-chg">xsd:double
-</ins>
-</code>
-<del class="diff-old">will
-have
-the
-number
-42
-,
-while
-</del>
-<ins class="diff-chg">with
-a
-value
-of
-</ins>
-<code>
-<del class="diff-old">myObj2
-</del>
-<ins class="diff-chg">2.0
-</ins>
-</code>
-<del class="diff-old">have
-</del>
-<ins class="diff-chg">will,
-e.g.,
-result
-in
-</ins>
-an
-<del class="diff-old">object
-consisting
-of
-</del>
-<code>
-<del class="diff-old">@value
-</del>
-<ins class="diff-chg">xsd:integer
-</ins>
-</code>
-<del class="diff-old">set
-to
-the
-string
-</del>
-<ins class="diff-chg">with
-a
-value
-of
-</ins>
-<code>
-<del class="diff-old">&quot;42&quot;
-</del>
-<ins class="diff-chg">2
-</ins>
-</code>
-<ins class="diff-new">in
-</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-new">
-canonical
-lexical
-form
-</ins></a><ins class="diff-new">
-when
-converted
-from
-RDF
-to
-JSON-LD
-</ins>
-and
-<ins class="diff-new">back
-to
-RDF.
-It
-is
-important
-to
-highlight
-that
-in
-practice
-it
-might
-be
-impossible
-to
-losslessly
-convert
-an
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">xsd:integer
-</ins>
-</code>
-<del class="diff-old">set
-</del>
-to
-<ins class="diff-new">a
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
-number
-</ins></a><ins class="diff-new">
-because
-its
-value
-space
-is
-not
-limited.
-While
-the
-JSON
-specification
-[
-</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-new">
-RFC4627
-</ins></a></cite><ins class="diff-new">
-]
-does
-not
-limit
-</ins>
-the
-<del class="diff-old">expanded
-</del>
-value
-<ins class="diff-new">space
-</ins>
-of
-<del class="diff-old">xsd:nonNegativeInteger
-.
-</del>
-<a class="tref internalDFN" title="number" href="#dfn-number">
-<ins class="diff-chg">numbers
-</ins></a><ins class="diff-chg">
-either,
-concrete
-implementations
-typically
-do
-have
-a
-limited
-value
-space.
-</ins>
-</p>
-<del class="diff-old">Note
-</del>
-<p>
-<ins class="diff-chg">To
-ensure
-lossless
-round-tripping
-the
-</ins><a href="#convert-from-rdf-algorithm"><ins class="diff-chg">
-Converting
-from
-RDF
-algorithm
-</ins></a><ins class="diff-chg">
-specifies
-an
-</ins><i><ins class="diff-chg">
-use
-native
-types
-</ins></i><ins class="diff-chg">
-flag
-which
-controls
-whether
-</ins><a class="tref externalDFN" title="rdf-literals" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
-RDF
-literals
-</ins></a><ins class="diff-chg">
-with
-a
-</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
-datatype
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>
-<ins class="diff-chg">equal
-to
-</ins><code><ins class="diff-chg">
-xsd:integer
-</ins></code>,<code><ins class="diff-chg">
-xsd:double
-</ins></code>,<ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-xsd:boolean
-</ins></code><ins class="diff-chg">
-are
-converted
-to
-their
-JSON-native
-counterparts.
-If
-the
-</ins><i><ins class="diff-chg">
-use
-native
-types
-</ins></i><ins class="diff-chg">
-flag
-is
-set
-to
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>,<ins class="diff-chg">
-all
-literals
-remain
-in
-their
-original
-string
-representation.
-</ins></p><p>
-Some
-JSON
-serializers,
-such
-as
-PHP's
-native
-implementation
-in
-some
-versions,
-backslash-escape
-the
-forward
-slash
-character.
-For
-example,
-the
-value
-<code>
-http://example.com/
-</code>
-would
-be
-serialized
-as
-<code>
-http:\/\/example.com\/
-</code>.
-This
-is
-problematic
-as
-other
-JSON
-parsers
-might
-not
-understand
-those
-escaping
-characters.
-There
-is
-no
-need
-to
-backslash-escape
-forward
-slashes
-in
-JSON-LD.
-To
-aid
-interoperability
-between
-JSON-LD
-processors,
-<del class="diff-old">a
-JSON-LD
-serializer
-must
-not
-backslash-escape
-</del>
-forward
-<del class="diff-old">slashes.
-</del>
-<ins class="diff-chg">slashes
-</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em><ins class="diff-chg">
-be
-backslash-escaped.
-</ins>
-</p>
-</section>
-</section>
-<section id="the-application-programming-interface">
-<h2>
-<span class="secno">
-<del class="diff-old">A.
-</del>
-<ins class="diff-chg">11.
-</ins>
-</span>
-<del class="diff-old">Initial
-Context
-</del>
-<ins class="diff-chg">The
-Application
-Programming
-Interface
-</ins>
-</h2>
-<p>
-<ins class="diff-chg">This
-API
-provides
-a
-clean
-mechanism
-that
-enables
-developers
-to
-convert
-JSON-LD
-data
-into
-a
-variety
-of
-output
-formats
-that
-are
-often
-easier
-to
-work
-with.
-A
-conformant
-</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation"><ins class="diff-chg">
-JSON-LD
-API
-Implementation
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-implement
-the
-entirety
-of
-the
-following
-API.
-</ins></p><section id="the-jsonldprocessor-interface"><h3>
-<span class="secno">
-<ins class="diff-chg">11.1
-</ins></span><ins class="diff-chg">
-The
-</ins><a href="#idl-def-JsonLdProcessor" class="idlType">
-<del class="diff-old">Issue
-8
-</del>
-<code>
-<ins class="diff-chg">JsonLdProcessor
-</ins></code></a><ins class="diff-chg">
-Interface
-</ins></h3><p><ins class="diff-chg">
-The
-</ins><a href="#idl-def-JsonLdProcessor" class="idlType"><code><ins class="diff-chg">
-JsonLdProcessor
-</ins></code></a><ins class="diff-chg">
-interface
-is
-the
-high-level
-programming
-structure
-that
-developers
-use
-to
-access
-the
-JSON-LD
-transformation
-methods.
-</ins></p><p><ins class="diff-chg">
-It
-is
-important
-to
-highlight
-that
-conformant
-</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation"><ins class="diff-chg">
-JSON-LD
-API
-Implementations
-</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em><ins class="diff-chg">
-modify
-the
-input
-parameters.
-If
-an
-error
-is
-detected,
-the
-</ins><i><ins class="diff-chg">
-callback
-</ins></i><ins class="diff-chg">
-is
-invoked
-passing
-a
-</ins><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-chg">
-JsonLdError
-</ins></code></a><ins class="diff-chg">
-with
-the
-corresponding
-error
-</ins><code class="idlMemberName"><a href="#widl-JsonLdError-code"><ins class="diff-chg">
-code
-</ins></a></code><ins class="diff-chg">
-and
-processing
-is
-stopped.
-</ins></p>    <pre class="idl"><span class="idlInterface" id="idl-def-JsonLdProcessor">[<span class="extAttr">Constructor</span>]<ins class="diff-chg">
-interface <span class="idlInterfaceID">JsonLdProcessor</span> {
-</ins><span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">expand</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span><span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">compact</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a>?</span> <span class="idlParamName">context</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span><span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">flatten</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a>?</span> <span class="idlParamName">context</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span><ins class="diff-chg">
-};
-</ins></span></pre><section><h4 id="methods"><ins class="diff-chg">
-Methods
-</ins></h4><dl class="methods"><dt id="widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><code><ins class="diff-chg">
-compact
-</ins></code></dt><dd><p><a href="#compaction"><ins class="diff-chg">
-Compacts
-</ins></a><ins class="diff-chg">
-the
-given
-</ins><i><ins class="diff-chg">
-input
-</ins></i><ins class="diff-chg">
-using
-the
-</ins><i><ins class="diff-chg">
-context
-</ins></i><ins class="diff-chg">
-according
-to
-the
-steps
-in
-the
-</ins><a href="#compaction-algorithm"><ins class="diff-chg">
-Compaction
-algorithm
-</ins></a>:</p><ol class="algorithm"><li><ins class="diff-chg">
-If
-the
-passed
-</ins><i><ins class="diff-chg">
-input
-</ins></i><ins class="diff-chg">
-is
-a
-</ins><span class="idlParamType"><ins class="diff-chg">
-DOMString
-</ins>
-</span>
-<ins class="diff-new">representing
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-of
-a
-remote
-document,
-dereference
-it.
-If
-the
-retrieved
-document
-has
-a
-content
-type
-different
-than
-</ins><code><ins class="diff-new">
-application/ld+json
-</ins></code><ins class="diff-new">
-or
-</ins><code><ins class="diff-new">
-application/json
-</ins></code><ins class="diff-new">
-or
-if
-the
-document
-cannot
-be
-parsed
-as
-JSON,
-invoke
-the
-</ins><i><ins class="diff-new">
-callback
-</ins></i><ins class="diff-new">
-passing
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed"><ins class="diff-new">
-loading
-document
-failed
-</ins></a></code><ins class="diff-new">
-error.
-</ins></li><li><ins class="diff-new">
-Initialize
-a
-new
-empty
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>.</li><li><ins class="diff-new">
-If
-an
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-new">
-expandContext
-</ins></a></code><ins class="diff-new">
-has
-been
-passed,
-update
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a><ins class="diff-new">
-using
-the
-</ins><a href="#context-processing-algorithm"><ins class="diff-new">
-Context
-Processing
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-the
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-new">
-expandContext
-</ins></a></code><ins class="diff-new">
-as
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
-local
-context
-</ins></a>.</li><li><ins class="diff-new">
-If
-the
-</ins><i><ins class="diff-new">
-input
-</ins></i><ins class="diff-new">
-has
-been
-retrieved
-and
-the
-response
-has
-a
-content
-type
-</ins><code><ins class="diff-new">
-application/json
-</ins></code><ins class="diff-new">
-and
-an
-HTTP
-Link
-Header
-[
-</ins><cite><a class="bibref" href="#bib-RFC5988"><ins class="diff-new">
-RFC5988
-</ins></a></cite><ins class="diff-new">
-]
-using
-the
-</ins><code><ins class="diff-new">
-http://www.w3.org/ns/json-ld#context
-</ins></code><ins class="diff-new">
-link
-relation,
-update
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a><ins class="diff-new">
-using
-the
-</ins><a href="#context-processing-algorithm"><ins class="diff-new">
-Context
-Processing
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-the
-context
-referenced
-in
-the
-HTTP
-Link
-Header
-as
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
-local
-context
-</ins></a>.</li><li><ins class="diff-new">
-Set
-</ins><i><ins class="diff-new">
-expanded
-</ins></i><ins class="diff-new">
-to
-the
-result
-of
-using
-the
-</ins><a href="#expansion-algorithm"><ins class="diff-new">
-Expansion
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-input
-</ins></i><ins class="diff-new">
-as
-</ins><i><ins class="diff-new">
-element
-</ins></i>.</li><li><ins class="diff-new">
-Set
-</ins><i><ins class="diff-new">
-compacted
-</ins></i><ins class="diff-new">
-to
-the
-result
-of
-using
-the
-</ins><a href="#compaction-algorithm"><ins class="diff-new">
-Compaction
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-</ins><i><ins class="diff-new">
-context
-</ins></i>,<i><ins class="diff-new">
-expanded
-</ins></i><ins class="diff-new">
-as
-</ins><i><ins class="diff-new">
-element
-</ins></i>,<ins class="diff-new">
-and
-if
-passed,
-the
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-new">
-compactArrays
-</ins></a></code><ins class="diff-new">
-flag
-in
-</ins><i><ins class="diff-new">
-options
-</ins></i>.</li><li><ins class="diff-new">
-Invoke
-</ins><i><ins class="diff-new">
-callback
-</ins></i>,<ins class="diff-new">
-passing
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-error
-</ins></i><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-compacted
-</ins></i><ins class="diff-new">
-for
-</ins><i><ins class="diff-new">
-document
-</ins></i>.</li></ol><table class="parameters"><tr><th><ins class="diff-new">
-Parameter
-</ins></th><th><ins class="diff-new">
-Type
-</ins></th><th><ins class="diff-new">
-Nullable
-</ins></th><th><ins class="diff-new">
-Optional
-</ins></th><th><ins class="diff-new">
-Description
-</ins></th></tr><tr><td class="prmName"><ins class="diff-new">
-input
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code><ins class="diff-new">
-JsonLdInput
-</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmOptFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmDesc"><ins class="diff-new">
-The
-JSON-LD
-object
-or
-array
-of
-JSON-LD
-objects
-to
-perform
-the
-compaction
-upon
-or
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-referencing
-the
-JSON-LD
-document
-to
-compact.
-</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
-context
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdContext" class="idlType"><code><ins class="diff-new">
-JsonLdContext
-</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
-✔
-</ins></td><td class="prmOptFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmDesc"><ins class="diff-new">
-The
-context
-to
-use
-when
-compacting
-the
-</ins><code><ins class="diff-new">
-input
-</ins></code><ins class="diff-new">
-;
-either
-in
-the
-form
-of
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a><ins class="diff-new">
-or
-as
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>.</td></tr><tr><td class="prmName"><ins class="diff-new">
-callback
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code><ins class="diff-new">
-JsonLdCallback
-</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmOptFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmDesc"><ins class="diff-new">
-A
-callback
-that
-is
-called
-when
-processing
-completed
-successfully
-on
-the
-given
-</ins><code><ins class="diff-new">
-input
-</ins></code>,<ins class="diff-new">
-or
-a
-fatal
-error
-prevented
-processing
-from
-completing.
-</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
-options
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-new">
-JsonLdOptions
-</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
-✔
-</ins></td><td class="prmOptTrue"><ins class="diff-new">
-✔
-</ins></td><td class="prmDesc"><ins class="diff-new">
-A
-set
-of
-options
-to
-configure
-the
-algorithms.
-This
-allows,
-e.g.,
-to
-set
-the
-input
-document's
-base
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>.</td></tr></table><div><em><ins class="diff-new">
-Return
-type:
-</ins></em><code><a><ins class="diff-new">
-void
-</ins></a></code>
-</div>
-<del class="diff-old">It
-</del>
-</dd>
-<dt id="widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">
-<code>
-<ins class="diff-chg">expand
-</ins></code></dt><dd><p><a href="#expansion"><ins class="diff-chg">
-Expands
-</ins></a><ins class="diff-chg">
-the
-given
-</ins><i><ins class="diff-chg">
-input
-</ins></i><ins class="diff-chg">
-according
-to
-the
-steps
-in
-the
-</ins><a href="#expansion-algorithm"><ins class="diff-chg">
-Expansion
-algorithm
-</ins></a>:</p><ol class="algorithm"><li><ins class="diff-chg">
-If
-the
-passed
-</ins><i><ins class="diff-chg">
-input
-</ins></i>
-is
-<del class="diff-old">still
-being
-discussed
-</del>
-<ins class="diff-chg">a
-</ins><span class="idlParamType"><ins class="diff-chg">
-DOMString
-</ins></span><ins class="diff-chg">
-representing
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>
-<del class="diff-old">whether
-</del>
-<ins class="diff-chg">of
-a
-remote
-document,
-dereference
-it.
-If
-the
-retrieved
-document
-has
-a
-content
-type
-different
-than
-</ins><code><ins class="diff-chg">
-application/ld+json
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-application/json
-</ins></code><ins class="diff-chg">
-or
-if
-the
-document
-cannot
-be
-parsed
-as
-JSON,
-invoke
-the
-</ins><i><ins class="diff-chg">
-callback
-</ins></i><ins class="diff-chg">
-passing
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed"><ins class="diff-chg">
-loading
-document
-failed
-</ins></a></code><ins class="diff-chg">
-error.
-</ins></li><li><ins class="diff-chg">
-Initialize
-a
-new
-empty
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>.</li><li><ins class="diff-chg">
-If
-an
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-chg">
-expandContext
-</ins></a></code><ins class="diff-chg">
-has
-been
-passed,
-update
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-using
-the
-</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
-Context
-Processing
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-the
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-chg">
-expandContext
-</ins></a></code><ins class="diff-chg">
-as
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>.</li><li><ins class="diff-chg">
-If
-the
-</ins><i><ins class="diff-chg">
-input
-</ins></i><ins class="diff-chg">
-has
-been
-retrieved
-and
-the
-response
-has
-a
-content
-type
-</ins><code><ins class="diff-chg">
-application/json
-</ins></code><ins class="diff-chg">
-and
-an
-HTTP
-Link
-Header
-[
-</ins><cite><a class="bibref" href="#bib-RFC5988"><ins class="diff-chg">
-RFC5988
-</ins></a></cite><ins class="diff-chg">
-]
-using
-the
-</ins><code><ins class="diff-chg">
-http://www.w3.org/ns/json-ld#context
-</ins></code><ins class="diff-chg">
-link
-relation,
-update
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-using
-the
-</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
-Context
-Processing
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-the
-context
-referenced
-in
-the
-HTTP
-Link
-Header
-as
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>.</li><li><ins class="diff-chg">
-Set
-</ins><i><ins class="diff-chg">
-expanded
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-using
-the
-</ins><a href="#expansion-algorithm"><ins class="diff-chg">
-Expansion
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-input
-</ins></i><ins class="diff-chg">
-as
-</ins><i><ins class="diff-chg">
-element
-</ins></i>.</li><li><ins class="diff-chg">
-Invoke
-</ins><i><ins class="diff-chg">
-callback
-</ins></i>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-error
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-expanded
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-document
-</ins></i>.</li></ol><table class="parameters"><tr><th><ins class="diff-chg">
-Parameter
-</ins></th><th><ins class="diff-chg">
-Type
-</ins></th><th><ins class="diff-chg">
-Nullable
-</ins></th><th><ins class="diff-chg">
-Optional
-</ins></th><th><ins class="diff-chg">
-Description
-</ins></th></tr><tr><td class="prmName"><ins class="diff-chg">
-input
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code><ins class="diff-chg">
-JsonLdInput
-</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-chg">
-✘
-</ins></td><td class="prmOptFalse"><ins class="diff-chg">
-✘
-</ins></td><td class="prmDesc"><ins class="diff-chg">
-The
-</ins>
-JSON-LD
-<ins class="diff-new">object
-or
-array
-of
-JSON-LD
-objects
-to
-perform
-the
-expansion
-upon
-or
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-referencing
-the
-JSON-LD
-document
-to
-expand.
-</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
-callback
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code><ins class="diff-new">
-JsonLdCallback
-</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmOptFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmDesc"><ins class="diff-new">
-A
-callback
-that
-is
-called
-when
-processing
-completed
-successfully
-on
-the
-given
-</ins><code><ins class="diff-new">
-input
-</ins></code>,<ins class="diff-new">
-or
-a
-fatal
-error
-prevented
-processing
-from
-completing.
-</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
-options
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-new">
-JsonLdOptions
-</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
-✔
-</ins></td><td class="prmOptTrue"><ins class="diff-new">
-✔
-</ins></td><td class="prmDesc"><ins class="diff-new">
-A
-set
-of
-options
-to
-configure
-the
-used
-algorithms
-such.
-This
-allows,
-e.g.,
-to
-set
-the
-input
-document's
-base
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>.</td></tr></table><div><em><ins class="diff-new">
-Return
-type:
-</ins></em><code><a><ins class="diff-new">
-void
-</ins></a></code></div></dd><dt id="widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><code><ins class="diff-new">
-flatten
-</ins></code></dt><dd><p><a href="#flattening"><ins class="diff-new">
-Flattens
-</ins></a><ins class="diff-new">
-the
-given
-</ins><i><ins class="diff-new">
-input
-</ins></i><ins class="diff-new">
-and
-</ins><a href="#compaction"><ins class="diff-new">
-compacts
-</ins></a><ins class="diff-new">
-it
-using
-the
-passed
-</ins><i><ins class="diff-new">
-context
-</ins></i><ins class="diff-new">
-according
-to
-the
-steps
-in
-the
-</ins><a href="#flattening-algorithm"><ins class="diff-new">
-Flattening
-algorithm
-</ins></a>:</p><ol class="algorithm"><li><ins class="diff-new">
-If
-the
-passed
-</ins><i><ins class="diff-new">
-input
-</ins></i><ins class="diff-new">
-is
-a
-</ins><span class="idlParamType"><ins class="diff-new">
-DOMString
-</ins></span><ins class="diff-new">
-representing
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-of
-a
-remote
-document,
-dereference
-it.
-If
-the
-retrieved
-document
-has
-a
-content
-type
-different
-than
-</ins><code><ins class="diff-new">
-application/ld+json
-</ins></code><ins class="diff-new">
-or
-</ins><code><ins class="diff-new">
-application/json
-</ins></code><ins class="diff-new">
-or
-if
-the
-document
-cannot
-be
-parsed
-as
-JSON,
-invoke
-the
-</ins><i><ins class="diff-new">
-callback
-</ins></i><ins class="diff-new">
-passing
-an
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed"><ins class="diff-new">
-loading
-document
-failed
-</ins></a></code><ins class="diff-new">
-error.
-</ins></li><li><ins class="diff-new">
-Initialize
-a
-new
-empty
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>.</li><li><ins class="diff-new">
-If
-an
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-new">
-expandContext
-</ins></a></code>
-has
-<ins class="diff-new">been
-passed,
-update
-</ins>
-the
-<del class="diff-old">notion
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context
-</ins></a><ins class="diff-chg">
-using
-the
-</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
-Context
-Processing
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-the
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-chg">
-expandContext
-</ins></a></code><ins class="diff-chg">
-as
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>.</li><li><ins class="diff-chg">
-If
-the
-</ins><i><ins class="diff-chg">
-input
-</ins></i><ins class="diff-chg">
-has
-been
-retrieved
-and
-the
-response
-has
-a
-content
-type
-</ins><code><ins class="diff-chg">
-application/json
-</ins></code><ins class="diff-chg">
-and
-an
-HTTP
-Link
-Header
-[
-</ins><cite><a class="bibref" href="#bib-RFC5988"><ins class="diff-chg">
-RFC5988
-</ins></a></cite><ins class="diff-chg">
-]
-using
-the
-</ins><code><ins class="diff-chg">
-http://www.w3.org/ns/json-ld#context
-</ins></code><ins class="diff-chg">
-link
-relation,
-update
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-using
-the
-</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
-Context
-Processing
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-the
-context
-referenced
-in
-the
-HTTP
-Link
-Header
-as
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a>.</li><li><ins class="diff-chg">
-Set
-</ins><i><ins class="diff-chg">
-expanded
-</ins></i><ins class="diff-chg">
-to
-the
-result
-</ins>
-of
-<ins class="diff-new">using
-the
-</ins><a href="#expansion-algorithm"><ins class="diff-new">
-Expansion
-algorithm
-</ins></a>,<ins class="diff-new">
-passing
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a><ins class="diff-new">
-and
-</ins><i><ins class="diff-new">
-input
-</ins></i><ins class="diff-new">
-as
-</ins><i><ins class="diff-new">
-element
-</ins></i>.</li><li><ins class="diff-new">
-Initialize
-</ins>
-an
-<del class="diff-old">initial
-</del>
-<ins class="diff-chg">empty
-</ins><i><ins class="diff-chg">
-identifier
-map
-</ins></i><ins class="diff-chg">
-and
-a
-</ins><i><ins class="diff-chg">
-counter
-</ins></i><ins class="diff-chg">
-(set
-to
-</ins><code><ins class="diff-chg">
-0
-</ins></code><ins class="diff-chg">
-)
-to
-be
-used
-by
-the
-</ins><a href="#generate-blank-node-identifier"><ins class="diff-chg">
-Generate
-Blank
-Node
-Identifier
-algorithm
-</ins></a>.</li><li><ins class="diff-chg">
-Set
-</ins><i><ins class="diff-chg">
-flattened
-</ins></i><ins class="diff-chg">
-to
-the
-result
-of
-using
-the
-</ins><a href="#flattening-algorithm"><ins class="diff-chg">
-Flattening
-algorithm
-</ins></a>,<ins class="diff-chg">
-passing
-</ins><i><ins class="diff-chg">
-expanded
-</ins></i><ins class="diff-chg">
-as
-</ins><i><ins class="diff-chg">
-element
-</ins></i>,<i><ins class="diff-chg">
-context
-</ins></i>,<ins class="diff-chg">
-and
-if
-passed,
-the
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-chg">
-compactArrays
-</ins></a></code><ins class="diff-chg">
-flag
-in
-</ins><i><ins class="diff-chg">
-options
-</ins></i><ins class="diff-chg">
-(which
-is
-internally
-passed
-to
-the
-</ins><a href="#compaction-algorithm"><ins class="diff-chg">
-Compaction
-algorithm
-</ins></a><ins class="diff-chg">
-).
-</ins></li><li><ins class="diff-chg">
-Invoke
-</ins><i><ins class="diff-chg">
-callback
-</ins></i>,<ins class="diff-chg">
-passing
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-error
-</ins></i><ins class="diff-chg">
-and
-</ins><i><ins class="diff-chg">
-flattened
-</ins></i><ins class="diff-chg">
-for
-</ins><i><ins class="diff-chg">
-document
-</ins></i>.</li></ol><table class="parameters"><tr><th><ins class="diff-chg">
-Parameter
-</ins></th><th><ins class="diff-chg">
-Type
-</ins></th><th><ins class="diff-chg">
-Nullable
-</ins></th><th><ins class="diff-chg">
-Optional
-</ins></th><th><ins class="diff-chg">
-Description
-</ins></th></tr><tr><td class="prmName"><ins class="diff-chg">
-input
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code><ins class="diff-chg">
-JsonLdInput
-</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-chg">
-✘
-</ins></td><td class="prmOptFalse"><ins class="diff-chg">
-✘
-</ins></td><td class="prmDesc"><ins class="diff-chg">
-The
-JSON-LD
-object
-or
-array
-of
-JSON-LD
-objects
-or
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-referencing
-the
-JSON-LD
-document
-to
-flatten.
-</ins></td></tr><tr><td class="prmName">
-context
-</td>
-<td class="prmType">
-<code>
-<a href="#idl-def-JsonLdContext" class="idlType">
-<code>
-<ins class="diff-new">JsonLdContext
-</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
-✔
-</ins></td><td class="prmOptFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmDesc"><ins class="diff-new">
-The
-context
-to
-use
-when
-compacting
-the
-flattened
-</ins><code><ins class="diff-new">
-input
-</ins></code><ins class="diff-new">
-;
-either
-in
-the
-form
-of
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a>
-or
-<del class="diff-old">not.
-</del>
-<ins class="diff-chg">as
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.
-If
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-new">null
-</ins></a><ins class="diff-new">
-is
-passed,
-the
-result
-will
-not
-be
-compacted
-but
-kept
-in
-expanded
-form.
-</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
-callback
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code><ins class="diff-new">
-JsonLdCallback
-</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmOptFalse"><ins class="diff-new">
-✘
-</ins></td><td class="prmDesc"><ins class="diff-new">
-A
-callback
-that
-is
-called
-when
-processing
-completed
-successfully
-on
-the
-given
-</ins><code><ins class="diff-new">
-input
-</ins></code>,<ins class="diff-new">
-or
-a
-fatal
-error
-prevented
-processing
-from
-completing.
-</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
-options
-</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-new">
-JsonLdOptions
-</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
-✔
-</ins></td><td class="prmOptTrue"><ins class="diff-new">
-✔
-</ins></td><td class="prmDesc"><ins class="diff-new">
-A
-set
-of
-options
-to
-configure
-the
-used
-algorithms
-such.
-This
-allows,
-e.g.,
-to
-set
-the
-input
-document's
-base
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>.</td></tr></table><div><em><ins class="diff-new">
-Return
-type:
-</ins></em><code><a><ins class="diff-new">
-void
-</ins></a></code></div></dd></dl></section><pre class="idl"><span class="idlTypedef" id="idl-def-JsonLdInput"><ins class="diff-new">
-typedef
-</ins><span class="idlTypedefType"><ins class="diff-new">
-(
-</ins><a><ins class="diff-new">
-object
-</ins></a><ins class="diff-new">
-or
-</ins><a><ins class="diff-new">
-object[]
-</ins></a><ins class="diff-new">
-or
-</ins><a><ins class="diff-new">
-DOMString
-</ins></a><ins class="diff-new">
-)
-</ins></span><span class="idlTypedefID"><ins class="diff-new">
-JsonLdInput
-</ins></span><ins class="diff-new">
-;
-</ins></span></pre><div class="idlTypedefDesc"><p><ins class="diff-new">
-The
-identifier
-</ins><a href="#idl-def-JsonLdInput" class="idlType"><code><ins class="diff-new">
-JsonLdInput
-</ins></code></a><ins class="diff-new">
-is
-used
-to
-refer
-to
-the
-</ins><span class="idlTypedefType"><ins class="diff-new">
-(object
-or
-object[]
-or
-DOMString)
-</ins></span><ins class="diff-new">
-type.
-</ins></p></div><pre class="idl"><span class="idlTypedef" id="idl-def-JsonLdContext"><ins class="diff-new">
-typedef
-</ins><span class="idlTypedefType"><ins class="diff-new">
-(
-</ins><a><ins class="diff-new">
-object
-</ins></a><ins class="diff-new">
-or
-</ins><a><ins class="diff-new">
-DOMString
-</ins></a><ins class="diff-new">
-)
-</ins></span><span class="idlTypedefID"><ins class="diff-new">
-JsonLdContext
-</ins></span><ins class="diff-new">
-;
-</ins></span></pre><div class="idlTypedefDesc"><p><ins class="diff-new">
-The
-identifier
-</ins><a href="#idl-def-JsonLdContext" class="idlType"><code><ins class="diff-new">
-JsonLdContext
-</ins></code></a><ins class="diff-new">
-is
-used
-to
-refer
-to
-the
-</ins><span class="idlTypedefType"><ins class="diff-new">
-(object
-or
-DOMString)
-</ins></span><ins class="diff-new">
-type.
-</ins></p></div></section><section id="callbacks"><h3><span class="secno"><ins class="diff-new">
-11.2
-</ins></span><ins class="diff-new">
-Callbacks
-</ins></h3><p><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation"><ins class="diff-new">
-JSON-LD
-API
-Implementations
-</ins></a><ins class="diff-new">
-utilize
-callbacks
-in
-order
-to
-exchange
-information
-in
-an
-asynchronous
-manner
-with
-applications.
-This
-section
-details
-the
-parameters
-of
-those
-callbacks.
-</ins></p><section><h4 id="jsonldcallback"><ins class="diff-new">
-JsonLdCallback
-</ins></h4><p><ins class="diff-new">
-The
-</ins><a href="#idl-def-JsonLdCallback" class="idlType"><code><ins class="diff-new">
-JsonLdCallback
-</ins></code></a><ins class="diff-new">
-is
-called
-when
-an
-API
-method
-of
-</ins><a href="#idl-def-JsonLdProcessor" class="idlType"><code><ins class="diff-new">
-JsonLdProcessor
-</ins></code></a><ins class="diff-new">
-has
-been
-completed,
-either
-successfully
-or
-by
-a
-fatal
-error.
-</ins></p><pre class="idl"><span class="idlCallback" id="idl-def-JsonLdCallback"><ins class="diff-new">
-callback
-</ins><span class="idlCallbackID"><ins class="diff-new">
-JsonLdCallback
-</ins></span><ins class="diff-new">
-=
-</ins><span class="idlCallbackType"><a><ins class="diff-new">
-void
-</ins></a></span><ins class="diff-new">
-(
-</ins><span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-new">
-JsonLdError
-</ins></code></a></span><span class="idlParamName"><ins class="diff-new">
-error
-</ins></span></span>,<span class="idlParam"><ins class="diff-new">optional </ins><span class="idlParamType"><ins class="diff-new">
-(
-</ins><a><ins class="diff-new">
-object
-</ins></a><ins class="diff-new">
-or
-</ins><a><ins class="diff-new">
-object[]
-</ins></a><ins class="diff-new">
-)
-</ins></span><span class="idlParamName"><ins class="diff-new">
-document
-</ins></span></span><ins class="diff-new">
-);
-</ins></span></pre><section><h5 id="callback-jsonldcallback-parameters"><ins class="diff-new">
-Callback
-</ins><a class="idlType" href="#idl-def-JsonLdCallback"><code><ins class="diff-new">
-JsonLdCallback
-</ins></code></a><ins class="diff-new">
-Parameters
-</ins></h5><dl class="callback-members"><dt id="widl-JsonLdCallback-error"><code><ins class="diff-new">
-error
-</ins></code><ins class="diff-new">
-of
-type
-</ins><span class="idlMemberType"><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-new">
-JsonLdError
-</ins></code></a></span></dt><dd><ins class="diff-new">
-If
-the
-value
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-then
-no
-issue
-was
-detected
-during
-processing.
-Otherwise,
-a
-processing
-error
-was
-detected
-and
-the
-details
-are
-contained
-within
-the
-</ins><em><ins class="diff-new">
-error
-</ins></em><ins class="diff-new">
-object.
-</ins></dd><dt id="widl-JsonLdCallback-document"><code><ins class="diff-new">
-document
-</ins></code><ins class="diff-new">
-of
-type
-</ins><span class="idlMemberType"><a><ins class="diff-new">
-(object
-or
-object[])
-</ins></a></span></dt><dd><ins class="diff-new">
-The
-processed
-</ins>
-JSON-LD
-<ins class="diff-new">document.
-</ins></dd></dl></section></section><section><h4 id="loadcontextcallback"><ins class="diff-new">
-LoadContextCallback
-</ins></h4><p><ins class="diff-new">
-The
-</ins><a href="#idl-def-LoadContextCallback" class="idlType"><code><ins class="diff-new">
-LoadContextCallback
-</ins></code></a><ins class="diff-new">
-defines
-the
-callback
-that
-custom
-context
-loaders
-have
-to
-implement
-to
-be
-used
-to
-retrieve
-remote
-contexts.
-</ins></p><pre class="idl"><span class="idlCallback" id="idl-def-LoadContextCallback"><ins class="diff-new">
-callback
-</ins><span class="idlCallbackID"><ins class="diff-new">
-LoadContextCallback
-</ins></span><ins class="diff-new">
-=
-</ins><span class="idlCallbackType"><a><ins class="diff-new">
-void
-</ins></a></span><ins class="diff-new">
-(
-</ins><span class="idlParam"><span class="idlParamType"><a><ins class="diff-new">
-DOMString
-</ins></a></span><span class="idlParamName"><ins class="diff-new">
-url
-</ins></span></span>,<span class="idlParam"><span class="idlParamType"><a href="#idl-def-ContextLoadedCallback" class="idlType"><code><ins class="diff-new">
-ContextLoadedCallback
-</ins></code></a></span><span class="idlParamName"><ins class="diff-new">
-callback
-</ins></span></span><ins class="diff-new">
-);
-</ins></span></pre><section><h5 id="callback-loadcontextcallback-parameters"><ins class="diff-new">
-Callback
-</ins><a class="idlType" href="#idl-def-LoadContextCallback"><code><ins class="diff-new">
-LoadContextCallback
-</ins></code></a><ins class="diff-new">
-Parameters
-</ins></h5><dl class="callback-members"><dt id="widl-LoadContextCallback-url"><code><ins class="diff-new">
-url
-</ins></code><ins class="diff-new">
-of
-type
-</ins><span class="idlMemberType"><a><ins class="diff-new">
-DOMString
-</ins></a></span></dt><dd><ins class="diff-new">
-The
-URL
-of
-the
-remote
-context
-to
-load.
-</ins></dd><dt id="widl-LoadContextCallback-callback"><code><ins class="diff-new">
-callback
-</ins></code><ins class="diff-new">
-of
-type
-</ins><span class="idlMemberType"><a href="#idl-def-ContextLoadedCallback" class="idlType"><code><ins class="diff-new">
-ContextLoadedCallback
-</ins></code></a></span></dt><dd><ins class="diff-new">
-The
-callback
-that
-is
-called
-when
-the
-remote
-context
-</ins>
-has
-<ins class="diff-new">been
-successfully
-loaded
-or
-</ins>
-an
-<del class="diff-old">initial
-</del>
-<ins class="diff-chg">error
-preventing
-its
-loading
-has
-been
-detected.
-</ins></dd></dl></section></section><section><h4 id="contextloadedcallback"><ins class="diff-chg">
-ContextLoadedCallback
-</ins></h4><p><ins class="diff-chg">
-The
-</ins><a href="#idl-def-ContextLoadedCallback" class="idlType"><code><ins class="diff-chg">
-ContextLoadedCallback
-</ins></code></a><ins class="diff-chg">
-is
-called
-in
-response
-to
-a
-call
-of
-the
-</ins><a href="#idl-def-LoadContextCallback" class="idlType"><code><ins class="diff-chg">
-LoadContextCallback
-</ins></code></a>.</p><pre class="idl"><span class="idlCallback" id="idl-def-ContextLoadedCallback"><ins class="diff-chg">
-callback
-</ins><span class="idlCallbackID"><ins class="diff-chg">
-ContextLoadedCallback
-</ins></span><ins class="diff-chg">
-=
-</ins><span class="idlCallbackType"><a><ins class="diff-chg">
-void
-</ins></a></span><ins class="diff-chg">
-(
-</ins><span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-chg">
-JsonLdError
-</ins></code></a></span><span class="idlParamName"><ins class="diff-chg">
-error
-</ins></span></span>,<span class="idlParam"><span class="idlParamType"><a><ins class="diff-chg">
-DOMString
-</ins></a></span><span class="idlParamName"><ins class="diff-chg">
-url
-</ins></span></span>,<span class="idlParam"><span class="idlParamType"><a><ins class="diff-chg">
-DOMString
-</ins></a></span><span class="idlParamName"><ins class="diff-chg">
-context
-</ins></span></span><ins class="diff-chg">
-);
-</ins></span></pre><section><h5 id="callback-contextloadedcallback-parameters"><ins class="diff-chg">
-Callback
-</ins><a class="idlType" href="#idl-def-ContextLoadedCallback"><code><ins class="diff-chg">
-ContextLoadedCallback
-</ins></code></a><ins class="diff-chg">
-Parameters
-</ins></h5><dl class="callback-members"><dt id="widl-ContextLoadedCallback-error"><code><ins class="diff-chg">
-error
-</ins></code><ins class="diff-chg">
-of
-type
-</ins><span class="idlMemberType"><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-chg">
-JsonLdError
-</ins></code></a></span></dt><dd><ins class="diff-chg">
-If
-the
-value
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-then
-no
-issue
-was
-detected
-during
-processing.
-Otherwise,
-a
-processing
-issue
-was
-detected
-and
-the
-details
-are
-contained
-within
-the
-</ins><em><ins class="diff-chg">
-error
-</ins></em><ins class="diff-chg">
-object.
-All
-errors
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-have
-a
-</ins><a href="#idl-def-JsonLdErrorCode" class="idlType"><code><ins class="diff-chg">
-JsonLdErrorCode
-</ins></code></a><ins class="diff-chg">
-of
-</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.loading-remote-context-failed"><ins class="diff-chg">
-loading
-remote
-context
-failed
-</ins></a></code>.</dd><dt id="widl-ContextLoadedCallback-url"><code><ins class="diff-chg">
-url
-</ins></code><ins class="diff-chg">
-of
-type
-</ins><span class="idlMemberType"><a><ins class="diff-chg">
-DOMString
-</ins></a></span></dt><dd><ins class="diff-chg">
-The
-final
-URL
-of
-the
-loaded
-JSON-LD
-context.
-This
-is
-important
-to
-handle
-HTTP
-redirects
-properly.
-</ins></dd><dt id="widl-ContextLoadedCallback-context"><code><ins class="diff-chg">
-context
-</ins></code><ins class="diff-chg">
-of
-type
-</ins><span class="idlMemberType"><a><ins class="diff-chg">
-DOMString
-</ins></a></span></dt><dd><ins class="diff-chg">
-The
-raw
-content
-of
-the
-retrieved
-JSON-LD
-context.
-</ins></dd></dl></section></section></section><section id="data-structures"><h3><span class="secno"><ins class="diff-chg">
-11.3
-</ins></span><ins class="diff-chg">
-Data
-Structures
-</ins></h3><p><ins class="diff-chg">
-This
-section
-describes
-datatype
-definitions
-used
-within
-the
-JSON-LD
-API.
-</ins></p><section><h4 id="jsonldoptions"><ins class="diff-chg">
-JsonLdOptions
-</ins></h4><p><ins class="diff-chg">
-The
-</ins><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-chg">
-JsonLdOptions
-</ins></code></a><ins class="diff-chg">
-type
-is
-used
-to
-pass
-various
-options
-to
-the
-</ins><a href="#idl-def-JsonLdProcessor" class="idlType"><code><ins class="diff-chg">
-JsonLdProcessor
-</ins></code></a><ins class="diff-chg">
-methods.
-</ins></p>      <pre class="idl"><span class="idlDictionary" id="idl-def-JsonLdOptions">dictionary <span class="idlDictionaryID">JsonLdOptions</span> {<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a></span>             <span class="idlMemberName"><a href="#widl-JsonLdOptions-base">base</a></span>;</span><span class="idlMember">    <span class="idlMemberType"><a>boolean</a></span>               <span class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></span> = <span class="idlMemberValue">true</span>;</span><span class="idlMember">    <span class="idlMemberType"><a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a></span>   <span class="idlMemberName"><a href="#widl-JsonLdOptions-loadContext">loadContext</a></span>;</span><span class="idlMember">    <span class="idlMemberType">(<a>object</a> or <a>DOMString</a>)</span> <span class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></span> = <span class="idlMemberValue">null</span>;</span><span class="idlMember">    <span class="idlMemberType"><a>DOMString</a></span>             <span class="idlMemberName"><a href="#widl-JsonLdOptions-processingMode">processingMode</a></span> = <span class="idlMemberValue">&quot;json-ld-1.0&quot;</span>;</span><ins class="diff-chg">
-};
-</ins></span></pre><section><h5 id="dictionary-jsonldoptions-members"><ins class="diff-chg">
-Dictionary
-</ins><a class="idlType" href="#idl-def-JsonLdOptions"><code><ins class="diff-chg">
-JsonLdOptions
-</ins></code></a><ins class="diff-chg">
-Members
-</ins></h5><dl class="dictionary-members"><dt id="widl-JsonLdOptions-base"><code><ins class="diff-chg">
-base
-</ins></code><ins class="diff-chg">
-of
-type
-</ins><span class="idlMemberType"><a><ins class="diff-chg">
-DOMString
-</ins></a></span></dt><dd><ins class="diff-chg">
-The
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-to
-use
-when
-expanding
-or
-compacting
-the
-document.
-This
-overrides
-the
-value
-of
-</ins><em><ins class="diff-chg">
-input
-</ins></em><ins class="diff-chg">
-if
-it
-is
-an
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>.<ins class="diff-chg">
-If
-not
-specified
-and
-</ins><em><ins class="diff-chg">
-input
-</ins></em><ins class="diff-chg">
-is
-not
-an
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>,<ins class="diff-chg">
-the
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-defaults
-to
-the
-current
-document
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-if
-in
-a
-browser
-</ins>
-context,
-<ins class="diff-new">or
-the
-empty
-string
-if
-there
-is
-no
-document
-context.
-</ins><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
-Feature
-at
-Risk
-4
-</ins></span>:<ins class="diff-new">
-Default
-value
-of
-base
-member
-in
-JsonLdOptions
-</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
-Note:
-This
-feature
-is
-</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
-&quot;at
-risk&quot;
-</ins></a><ins class="diff-new">
-and
-may
-be
-removed
-from
-this
-specification
-based
-on
-feedback.
-Please
-send
-feedback
-to
-</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-new">
-public-rdf-comments@w3.org
-</ins></a>.<ins class="diff-new">
-For
-the
-current
-status
-see
-</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-new">
-features
-&quot;at
-risk&quot;
-in
-JSON-LD
-1.0
-</ins></a></p><p><ins class="diff-new">
-The
-default
-value
-of
-</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-base"><ins class="diff-new">
-base
-</ins></a></code><ins class="diff-new">
-in
-</ins><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-new">
-JsonLdOptions
-</ins></code></a><ins class="diff-new">
-implies
-that
-all
-IRIs
-that
-cannot
-be
-compacted
-otherwise
-are
-transformed
-to
-relative
-IRIs
-during
-compaction.
-To
-avoid
-that
-data
-is
-being
-lost,
-developers
-thus
-have
-to
-store
-the
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-along
-with
-the
-compacted
-document.
-Based
-on
-implementer
-feedback,
-the
-Working
-Group
-may
-decide
-to
-change
-the
-default
-value
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,<ins class="diff-new">
-meaning
-that
-IRIs
-are
-not
-automatically
-compacted
-to
-relative
-IRIs.
-</ins></p></div></div></dd><dt id="widl-JsonLdOptions-compactArrays"><code><ins class="diff-new">
-compactArrays
-</ins></code><ins class="diff-new">
-of
-type
-</ins><span class="idlMemberType"><a><ins class="diff-new">
-boolean
-</ins></a></span>,<ins class="diff-new">
-defaulting
-to
-</ins><code><ins class="diff-new">
-true
-</ins></code></dt><dd><ins class="diff-new">
-If
-set
-to
-</ins><code><ins class="diff-new">
-true
-</ins></code>,<ins class="diff-new">
-the
-JSON-LD
-processor
-replaces
-arrays
-with
-just
-one
-element
-with
-that
-element
-during
-compaction.
-If
-set
-to
-</ins><code><ins class="diff-new">
-false
-</ins></code>,<ins class="diff-new">
-all
-arrays
-will
-remain
-arrays
-even
-if
-they
-have
-just
-one
-element.
-</ins></dd><dt id="widl-JsonLdOptions-expandContext"><code><ins class="diff-new">
-expandContext
-</ins></code><ins class="diff-new">
-of
-type
-</ins><span class="idlMemberType"><a><ins class="diff-new">
-(object
-or
-DOMString)
-</ins></a></span>,<ins class="diff-new">
-defaulting
-to
-</ins><code><ins class="diff-new">
-null
-</ins></code></dt><dd><ins class="diff-new">
-A
-context
-that
-is
-used
-to
-initialize
-the
-active
-context
-when
-expanding
-a
-document.
-</ins></dd><dt id="widl-JsonLdOptions-loadContext"><code><ins class="diff-new">
-loadContext
-</ins></code><ins class="diff-new">
-of
-type
-</ins><span class="idlMemberType"><a href="#idl-def-LoadContextCallback" class="idlType"><code><ins class="diff-new">
-LoadContextCallback
-</ins></code></a></span></dt><dd><ins class="diff-new">
-The
-callback
-of
-the
-context
-loader
-to
-be
-used
-to
-retrieve
-remote
-contexts.
-If
-specified,
-</ins>
-it
-<del class="diff-old">must
-</del>
-<em class="rfc2119" title="MUST">
-<ins class="diff-chg">MUST
-</ins>
-</em>
-be
-<del class="diff-old">specified
-external
-</del>
-<ins class="diff-chg">used
-</ins>
-to
-<ins class="diff-new">retrieve
-remote
-contexts;
-otherwise,
-if
-not
-specified,
-the
-processor's
-built-in
-context
-loader
-</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-used.
-</ins></dd><dt id="widl-JsonLdOptions-processingMode"><code><ins class="diff-new">
-processingMode
-</ins></code><ins class="diff-new">
-of
-type
-</ins><span class="idlMemberType"><a><ins class="diff-new">
-DOMString
-</ins></a></span>,<ins class="diff-new">
-defaulting
-to
-</ins><code><ins class="diff-new">
-&quot;json-ld-1.0&quot;
-</ins></code></dt><dd><ins class="diff-new">
-If
-set
-to
-</ins><code><ins class="diff-new">
-json-ld-1.0
-</ins></code>,
-the
-JSON-LD
-<del class="diff-old">Syntax
-</del>
-<ins class="diff-chg">processor
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-produce
-exactly
-the
-same
-results
-as
-the
-algorithms
-defined
-in
-this
-specification.
-If
-set
-to
-another
-value,
-the
-JSON-LD
-processor
-is
-allowed
-to
-extend
-or
-modify
-the
-algorithms
-defined
-in
-this
-</ins>
-specification
-<del class="diff-old">at
-</del>
-<ins class="diff-chg">to
-enable
-application-specific
-optimizations.
-The
-definition
-of
-such
-optimizations
-is
-beyond
-the
-scope
-of
-this
-specification
-and
-thus
-not
-defined.
-Consequently,
-different
-implementations
-</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
-MAY
-</ins></em><ins class="diff-chg">
-implement
-different
-optimizations.
-Developers
-</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em><ins class="diff-chg">
-define
-modes
-beginning
-with
-</ins><code><ins class="diff-chg">
-json-ld
-</ins></code><ins class="diff-chg">
-as
-they
-are
-reserved
-for
-future
-versions
-of
-this
-specification.
-</ins></dd></dl></section></section><section><h4 id="jsonlderror"><ins class="diff-chg">
-JsonLdError
-</ins></h4><p><ins class="diff-chg">
-The
-</ins><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-chg">
-JsonLdError
-</ins></code></a><ins class="diff-chg">
-type
-is
-used
-to
-report
-processing
-errors
-to
-</ins>
-a
-<del class="diff-old">well-known
-location.
-</del>
-<a href="#idl-def-JsonLdCallback" class="idlType">
-<code>
-<ins class="diff-chg">JsonLdCallback
-</ins></code></a>.
-</p>
-      <pre class="idl"><span class="idlDictionary" id="idl-def-JsonLdError">dictionary <span class="idlDictionaryID">JsonLdError</span> {
-<span class="idlMember">    <span class="idlMemberType"><a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a></span> <span class="idlMemberName"><a href="#widl-JsonLdError-code">code</a></span>;</span>
-<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a>?</span>      <span class="idlMemberName"><a href="#widl-JsonLdError-message">message</a></span>;</span>
-<ins class="diff-new">};
-</ins></span>
-</pre>
-<section>
-<h5 id="dictionary-jsonlderror-members">
-<ins class="diff-chg">Dictionary
-</ins><a class="idlType" href="#idl-def-JsonLdError"><code><ins class="diff-chg">
-JsonLdError
-</ins></code></a><ins class="diff-chg">
-Members
-</ins></h5><dl class="dictionary-members"><dt id="widl-JsonLdError-code"><code><ins class="diff-chg">
-code
-</ins></code><ins class="diff-chg">
-of
-type
-</ins><span class="idlMemberType"><a href="#idl-def-JsonLdErrorCode" class="idlType"><code><ins class="diff-chg">
-JsonLdErrorCode
-</ins></code></a></span></dt><dd><ins class="diff-chg">
-a
-string
-representing
-the
-particular
-error
-type,
-as
-described
-in
-the
-various
-algorithms
-in
-this
-document.
-</ins></dd><dt id="widl-JsonLdError-message"><code><ins class="diff-chg">
-message
-</ins></code><ins class="diff-chg">
-of
-type
-</ins><span class="idlMemberType"><a><ins class="diff-chg">
-DOMString
-</ins></a></span>,<ins class="diff-chg">
-nullable
-</ins></dt><dd><ins class="diff-chg">
-an
-optional
-error
-message
-containing
-additional
-debugging
-information.
-The
-specific
-contents
-of
-error
-messages
-are
-outside
-the
-scope
-of
-this
-specification.
-</ins></dd></dl></section></section><section><h4 id="jsonlderrorcode"><ins class="diff-chg">
-JsonLdErrorCode
-</ins></h4><p><ins class="diff-chg">
-The
-</ins><a href="#idl-def-JsonLdErrorCode" class="idlType"><code><ins class="diff-chg">
-JsonLdErrorCode
-</ins></code></a><ins class="diff-chg">
-represents
-the
-collection
-of
-valid
-JSON-LD
-error
-codes.
-</ins></p>      <pre class="idl"><span class="idlEnum" id="idl-def-JsonLdErrorCode">enum <span class="idlEnumID">JsonLdErrorCode</span> {<ins class="diff-chg">
-    &quot;<a href="#idl-def-JsonLdErrorCode.loading-document-failed" class="idlEnumItem">loading document failed</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.list-of-lists" class="idlEnumItem">list of lists</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--index-value" class="idlEnumItem">invalid @index value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.conflicting-indexes" class="idlEnumItem">conflicting indexes</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--id-value" class="idlEnumItem">invalid @id value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-local-context" class="idlEnumItem">invalid local context</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.loading-remote-context-failed" class="idlEnumItem">loading remote context failed</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-remote-context" class="idlEnumItem">invalid remote context</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.recursive-context-inclusion" class="idlEnumItem">recursive context inclusion</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-base-IRI" class="idlEnumItem">invalid base IRI</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-vocab-mapping" class="idlEnumItem">invalid vocab mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-default-language" class="idlEnumItem">invalid default language</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.keyword-redefinition" class="idlEnumItem">keyword redefinition</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-term-definition" class="idlEnumItem">invalid term definition</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property" class="idlEnumItem">invalid reverse property</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping" class="idlEnumItem">invalid IRI mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.cyclic-IRI-mapping" class="idlEnumItem">cyclic IRI mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-keyword-alias" class="idlEnumItem">invalid keyword alias</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-type-mapping" class="idlEnumItem">invalid type mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-mapping" class="idlEnumItem">invalid language mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.colliding-keywords" class="idlEnumItem">colliding keywords</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-container-mapping" class="idlEnumItem">invalid container mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-type-value" class="idlEnumItem">invalid type value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-value-object" class="idlEnumItem">invalid value object</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-value-object-value" class="idlEnumItem">invalid value object value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-string" class="idlEnumItem">invalid language-tagged string</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-value" class="idlEnumItem">invalid language-tagged value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-typed-value" class="idlEnumItem">invalid typed value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-set-or-list-object" class="idlEnumItem">invalid set or list object</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-map-value" class="idlEnumItem">invalid language map value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.compaction-to-list-of-lists" class="idlEnumItem">compaction to list of lists</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-map" class="idlEnumItem">invalid reverse property map</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--reverse-value" class="idlEnumItem">invalid @reverse value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-value" class="idlEnumItem">invalid reverse property value</a>&quot;
-};
-</ins></span></pre><table class="simple"><tr><th colspan="2"><ins class="diff-chg">
-Enumeration
-description
-</ins></th></tr><tr><td><code id="idl-def-JsonLdErrorCode.loading-document-failed"><ins class="diff-chg">
-loading
-document
-failed
-</ins></code></td><td><ins class="diff-chg">
-The
-document
-could
-not
-be
-loaded
-or
-parsed
-as
-JSON.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.list-of-lists"><ins class="diff-chg">
-list
-of
-lists
-</ins></code></td><td><ins class="diff-chg">
-A
-list
-of
-lists
-was
-detected.
-List
-of
-lists
-are
-not
-supported
-in
-this
-version
-of
-JSON-LD
-due
-to
-the
-algorithmic
-complexity
-associated
-with
-conversion
-to
-RDF.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--index-value"><ins class="diff-chg">
-invalid
-@index
-value
-</ins></code></td><td><ins class="diff-chg">
-An
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-member
-was
-encountered
-whose
-value
-was
-not
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.conflicting-indexes"><ins class="diff-chg">
-conflicting
-indexes
-</ins></code></td><td><ins class="diff-chg">
-Multiple
-conflicting
-indexes
-have
-been
-found
-for
-the
-same
-node.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--id-value"><ins class="diff-chg">
-invalid
-@id
-value
-</ins></code></td><td><ins class="diff-chg">
-An
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-member
-was
-encountered
-whose
-value
-was
-not
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-local-context"><ins class="diff-chg">
-invalid
-local
-context
-</ins></code></td><td><ins class="diff-chg">
-In
-invalid
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-was
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.loading-remote-context-failed"><ins class="diff-chg">
-loading
-remote
-context
-failed
-</ins></code></td><td><ins class="diff-chg">
-There
-was
-a
-problem
-encountered
-loading
-a
-remote
-context.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-remote-context"><ins class="diff-chg">
-invalid
-remote
-context
-</ins></code></td><td><ins class="diff-chg">
-No
-valid
-context
-document
-has
-been
-found
-for
-a
-referenced,
-remote
-context.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.recursive-context-inclusion"><ins class="diff-chg">
-recursive
-context
-inclusion
-</ins></code></td><td><ins class="diff-chg">
-A
-cycle
-in
-remote
-context
-inclusions
-has
-been
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-base-IRI"><ins class="diff-chg">
-invalid
-base
-IRI
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-has
-been
-detected,
-i.e.,
-it
-is
-neither
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-nor
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-vocab-mapping"><ins class="diff-chg">
-invalid
-vocab
-mapping
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
-vocabulary
-mapping
-</ins></a><ins class="diff-chg">
-has
-been
-detected,
-i.e.,
-it
-is
-neither
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-nor
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-default-language"><ins class="diff-chg">
-invalid
-default
-language
-</ins></code></td><td><ins class="diff-chg">
-The
-value
-of
-the
-</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
-default
-language
-</ins></a><ins class="diff-chg">
-is
-not
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-and
-thus
-invalid.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.keyword-redefinition"><ins class="diff-chg">
-keyword
-redefinition
-</ins></code></td><td><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-redefinition
-has
-been
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-term-definition"><ins class="diff-chg">
-invalid
-term
-definition
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-has
-been
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property"><ins class="diff-chg">
-invalid
-reverse
-property
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-reverse
-property
-definition
-has
-been
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-IRI-mapping"><ins class="diff-chg">
-invalid
-IRI
-mapping
-</ins></code></td><td><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-contains
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-that
-has
-an
-invalid
-or
-missing
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mapping
-</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.cyclic-IRI-mapping"><ins class="diff-chg">
-cyclic
-IRI
-mapping
-</ins></code></td><td><ins class="diff-chg">
-A
-cycle
-in
-</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-mappings
-</ins></a><ins class="diff-chg">
-has
-been
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-keyword-alias"><ins class="diff-chg">
-invalid
-keyword
-alias
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-alias
-definition
-has
-been
-encountered.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-type-mapping"><ins class="diff-chg">
-invalid
-type
-mapping
-</ins></code></td><td><ins class="diff-chg">
-An
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-member
-in
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-was
-encountered
-whose
-value
-could
-not
-be
-expanded
-to
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-mapping"><ins class="diff-chg">
-invalid
-language
-mapping
-</ins></code></td><td><ins class="diff-chg">
-An
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-member
-in
-a
-</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
-term
-definition
-</ins></a><ins class="diff-chg">
-was
-encountered
-whose
-value
-was
-neither
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-nor
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-and
-thus
-invalid.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.colliding-keywords"><ins class="diff-chg">
-colliding
-keywords
-</ins></code></td><td><ins class="diff-chg">
-Two
-properties
-which
-expand
-to
-the
-same
-keyword
-have
-been
-detected.
-This
-might
-occur
-if
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-and
-an
-an
-alias
-thereof
-are
-used
-at
-the
-same
-time.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-container-mapping"><ins class="diff-chg">
-invalid
-container
-mapping
-</ins></code></td><td><ins class="diff-chg">
-An
-</ins><code><ins class="diff-chg">
-@container
-</ins></code><ins class="diff-chg">
-member
-was
-encountered
-whose
-value
-was
-not
-one
-of
-the
-following
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-strings
-</ins></a>:<code><ins class="diff-chg">
-@list
-</ins></code>,<code><ins class="diff-chg">
-@set
-</ins></code>,<ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@index
-</ins></code>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-type-value"><ins class="diff-chg">
-invalid
-type
-value
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-value
-for
-an
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-member
-has
-been
-detected,
-i.e.,
-the
-value
-was
-neither
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-nor
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-of
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-strings
-</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-value-object"><ins class="diff-chg">
-invalid
-value
-object
-</ins></code></td><td><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins></a><ins class="diff-chg">
-with
-disallowed
-members
-has
-been
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-value-object-value"><ins class="diff-chg">
-invalid
-value
-object
-value
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-value
-for
-the
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-member
-of
-a
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins></a><ins class="diff-chg">
-has
-been
-detected,
-i.e.,
-it
-is
-neither
-a
-</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
-scalar
-</ins></a><ins class="diff-chg">
-nor
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-tagged-string"><ins class="diff-chg">
-invalid
-language-tagged
-string
-</ins></code></td><td><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="language-tagged-string" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string"><ins class="diff-chg">
-language-tagged
-string
-</ins></a><ins class="diff-chg">
-with
-an
-invalid
-language
-value
-was
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-tagged-value"><ins class="diff-chg">
-invalid
-language-tagged
-value
-</ins></code></td><td><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-number
-</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a><ins class="diff-chg">
-with
-an
-associated
-language
-tag
-was
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-typed-value"><ins class="diff-chg">
-invalid
-typed
-value
-</ins></code></td><td><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
-typed
-value
-</ins></a><ins class="diff-chg">
-with
-an
-invalid
-type
-was
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-set-or-list-object"><ins class="diff-chg">
-invalid
-set
-or
-list
-object
-</ins></code></td><td><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-chg">
-set
-object
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins></a><ins class="diff-chg">
-with
-disallowed
-members
-has
-been
-detected.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-map-value"><ins class="diff-chg">
-invalid
-language
-map
-value
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-value
-in
-a
-</ins><a class="tref externalDFN" title="language-map" href="../json-ld/#dfn-language-map"><ins class="diff-chg">
-language
-map
-</ins></a><ins class="diff-chg">
-has
-been
-detected.
-It
-has
-to
-be
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-or
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-of
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-strings
-</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.compaction-to-list-of-lists"><ins class="diff-chg">
-compaction
-to
-list
-of
-lists
-</ins></code></td><td><ins class="diff-chg">
-The
-compacted
-document
-contains
-a
-list
-of
-lists
-as
-multiple
-lists
-have
-been
-compacted
-to
-the
-same
-term.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property-map"><ins class="diff-chg">
-invalid
-reverse
-property
-map
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-reverse
-property
-map
-has
-been
-detected.
-No
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a><ins class="diff-chg">
-apart
-from
-</ins><code><ins class="diff-chg">
-@context
-</ins></code><ins class="diff-chg">
-are
-allowed
-in
-reverse
-property
-maps.
-</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--reverse-value"><ins class="diff-chg">
-invalid
-@reverse
-value
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-value
-for
-an
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-member
-has
-been
-detected,
-i.e.,
-the
-value
-was
-not
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property-value"><ins class="diff-chg">
-invalid
-reverse
-property
-value
-</ins></code></td><td><ins class="diff-chg">
-An
-invalid
-value
-for
-a
-reverse
-property
-has
-been
-detected.
-The
-value
-of
-an
-inverse
-property
-must
-be
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a>.</td></tr></table></section></section></section><section class="appendix informative" id="acknowledgements">
-<h2>
-<span class="secno">
-<del class="diff-old">B.
-</del>
-<ins class="diff-chg">A.
-</ins>
-</span>
-Acknowledgements
-</h2>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-new">
-A
-large
-amount
-of
-thanks
-goes
-out
-to
-the
-JSON-LD
-Community
-Group
-participants
-who
-worked
-through
-many
-of
-the
-technical
-issues
-on
-the
-mailing
-list
-and
-the
-weekly
-telecons
--
-of
-special
-mention
-are
-Niklas
-Lindström,
-François
-Daoust,
-Lin
-Clark,
-and
-Zdenko
-'Denny'
-Vrandečić.
-</ins>
-The
-editors
-would
-like
-to
-thank
-Mark
-Birbeck,
-who
-provided
-a
-great
-deal
-of
-the
-initial
-push
-behind
-the
-JSON-LD
-work
-via
-his
-work
-on
-<del class="diff-old">RDFj,
-</del>
-<ins class="diff-chg">RDFj.
-The
-work
-of
-</ins>
-Dave
-Lehn
-and
-Mike
-Johnson
-<del class="diff-old">who
-reviewed,
-provided
-feedback,
-</del>
-<ins class="diff-chg">are
-appreciated
-for
-reviewing,
-</ins>
-and
-<del class="diff-old">performed
-</del>
-<ins class="diff-chg">performing
-</ins>
-several
-implementations
-of
-the
-<del class="diff-old">specification,
-and
-</del>
-<ins class="diff-chg">specification.
-</ins>
-Ian
-<del class="diff-old">Davis,
-who
-created
-</del>
-<ins class="diff-chg">Davis
-is
-thanked
-for
-his
-work
-on
-</ins>
-RDF/JSON.
-Thanks
-also
-to
-Nathan
-Rixham,
-Bradley
-P.
-Allen,
-Kingsley
-Idehen,
-Glenn
-McDonald,
-Alexandre
-Passant,
-Danny
-Ayers,
-Ted
-Thibodeau
-Jr.,
-Olivier
-Grisel,
-Josh
-Mandel,
-Eric
-Prud'hommeaux,
-David
-Wood,
-Guus
-Schreiber,
-Pat
-Hayes,
-Sandro
-Hawke,
-and
-Richard
-Cyganiak
-for
-their
-input
-on
-the
-specification.
-</p>
-</section>
-<section id="references" class="appendix" typeof="bibo:Chapter" resource="#references" rel="bibo:chapter">
-<h2>
-<span class="secno">
-<del class="diff-old">C.
-</del>
-<ins class="diff-chg">B.
-</ins>
-</span>
-References
-</h2>
-<section id="normative-references" typeof="bibo:Chapter" resource="#normative-references" rel="bibo:chapter">
-<h3>
-<span class="secno">
-<del class="diff-old">C.1
-</del>
-<ins class="diff-chg">B.1
-</ins>
-</span>
-Normative
-references
-</h3>
-<del class="diff-old">[BCP47]
-A.
-Phillips;
-M.
-Davis.
-Tags
-for
-Identifying
-Languages
-September
-2009.
-IETF
-Best
-Current
-Practice.
-URL:
-http://tools.ietf.org/html/bcp47
-</del>
-<dl class="bibliography" about="">
-<dt id="bib-IEEE-754-1985">
-[IEEE-754-1985]
-</dt>
-<dd rel="dcterms:requires">
-IEEE.
-<cite>
-IEEE
-Standard
-for
-Binary
-Floating-Point
-Arithmetic.
-</cite>
-<del class="diff-old">See
-</del>
-<ins class="diff-chg">URL:
-</ins>
-<a href="http://standards.ieee.org/reading/ieee/std_public/description/busarch/754-1985_desc.html">
-http://standards.ieee.org/reading/ieee/std_public/description/busarch/754-1985_desc.html
-</a>
-</dd>
-<dt id="bib-JSON-LD">
-[JSON-LD]
-</dt>
-<del class="diff-old">The
-JSON-LD
-Syntax
-</del>
-<dd rel="dcterms:requires">
-Manu
-Sporny,
-Gregg
-Kellogg,
-Markus
-<del class="diff-old">Lanthaler
-</del>
-<ins class="diff-chg">Lanthaler,
-</ins>
-Editors.
-<del class="diff-old">World
-Wide
-Web
-Consortium
-</del>
-<cite>
-<a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">
-<ins class="diff-chg">JSON-LD
-1.0
-</ins></a>.</cite><ins class="diff-chg">
-W3C
-Working
-Draft
-</ins>
-(work
-in
-progress).
-<del class="diff-old">22
-May
-2012.
-Editor's
-Draft.
-This
-edition
-of
-the
-JSON-LD
-Syntax
-specification
-is
-http://json-ld.org/spec/ED/json-ld-syntax/20120522/.
-</del>
-<ins class="diff-chg">URL:
-</ins><a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/"><ins class="diff-chg">
-http://www.w3.org/TR/2013/WD-json-ld-20130411/
-</ins></a>.
-The
-latest
-edition
-<del class="diff-old">of
-the
-JSON-LD
-Syntax
-</del>
-is
-available
-at
-<del class="diff-old">http://json-ld.org/spec/latest/json-ld-syntax/
-[JSON-POINTER]
-JSON
-Pointer
-P.
-Bryan,
-Ed.
-IETF
-Draft.
-URL:
-http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-02
-</del>
-<a href="http://www.w3.org/TR/json-ld/">
-<ins class="diff-chg">http://www.w3.org/TR/json-ld/
-</ins>
-</a>
-</dd>
-<del class="diff-old">[RDF-CONCEPTS]
-</del>
-<dt id="bib-RDF-MT">
-<ins class="diff-chg">[RDF-MT]
-</ins>
-</dt>
-<dd rel="dcterms:requires">
-<ins class="diff-chg">Patrick
-Hayes.
-</ins><a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210">
-<cite>
-RDF
-<del class="diff-old">1.1
-Concepts
-and
-Abstract
-Syntax
-</del>
-<ins class="diff-chg">Semantics
-</ins>
-</cite>
-<del class="diff-old">Richard
-Cyganiak,
-David
-Wood,
-Editors.
-World
-Wide
-Web
-Consortium
-(work
-in
-progress).
-30
-May
-2012.
-Editor's
-Draft.
-This
-edition
-of
-the
-JSON-LD
-Syntax
-specification
-is
-http://www.w3.org/TR/2011/WD-rdf11-concepts-20110830/.
-The
-latest
-edition
-of
-the
-JSON-LD
-Syntax
-</del>
-</a>.
-<ins class="diff-chg">10
-February
-2004.
-W3C
-Recommendation.
-URL:
-</ins><a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210"><ins class="diff-chg">
-http://www.w3.org/TR/2004/REC-rdf-mt-20040210
-</ins>
-</a>
-<del class="diff-old">is
-available
-at
-http://www.w3.org/TR/rdf11-concepts/
-</del>
-</dd>
-<del class="diff-old">[RDF-SCHEMA]
-</del>
-<dt id="bib-RFC2119">
-<ins class="diff-chg">[RFC2119]
-</ins>
-</dt>
-<del class="diff-old">Dan
-Brickley;
-Ramanathan
-V.
-Guha.
-</del>
-<dd rel="dcterms:requires">
-<ins class="diff-chg">S.
-Bradner.
-</ins><a href="http://www.ietf.org/rfc/rfc2119.txt">
-<cite>
-<del class="diff-old">RDF
-Vocabulary
-Description
-Language
-1.0:
-RDF
-Schema.
-</del>
-<ins class="diff-chg">Key
-words
-for
-use
-in
-RFCs
-to
-Indicate
-Requirement
-Levels.
-</ins>
-</cite>
-</a>
-<del class="diff-old">10
-February
-2004.
-W3C
-Recommendation.
-</del>
-<ins class="diff-chg">March
-1997.
-Internet
-RFC
-2119.
-</ins>
-URL:
-<del class="diff-old">http://www.w3.org/TR/2004/REC-rdf-schema-20040210
-</del>
-<a href="http://www.ietf.org/rfc/rfc2119.txt">
-<ins class="diff-chg">http://www.ietf.org/rfc/rfc2119.txt
-</ins>
-</a>
-</dd>
-<dt id="bib-RFC3986">
-[RFC3986]
-</dt>
-<dd rel="dcterms:requires">
-T.
-Berners-Lee;
-R.
-Fielding;
-L.
-Masinter.
-<a href="http://www.ietf.org/rfc/rfc3986.txt">
-<cite>
-Uniform
-Resource
-Identifier
-(URI):
-Generic
-<del class="diff-old">Syntax.
-</del>
-<ins class="diff-chg">Syntax
-(RFC
-3986)
-</ins>
-</cite>
-</a>.
-January
-2005.
-<del class="diff-old">Internet
-RFC
-3986.
-</del>
-<ins class="diff-chg">RFC.
-</ins>
-URL:
-<a href="http://www.ietf.org/rfc/rfc3986.txt">
-http://www.ietf.org/rfc/rfc3986.txt
-</a>
-</dd>
-<dt id="bib-RFC3987">
-[RFC3987]
-</dt>
-<dd rel="dcterms:requires">
-M.
-Dürst;
-M.
-Suignard.
-<a href="http://www.ietf.org/rfc/rfc3987.txt">
-<cite>
-Internationalized
-Resource
-Identifiers
-<del class="diff-old">(IRIs).
-</del>
-<ins class="diff-chg">(IRIs)
-(RFC
-3987)
-</ins>
-</cite>
-</a>.
-January
-2005.
-<del class="diff-old">Internet
-RFC
-3987.
-</del>
-<ins class="diff-chg">RFC.
-</ins>
-URL:
-<a href="http://www.ietf.org/rfc/rfc3987.txt">
-http://www.ietf.org/rfc/rfc3987.txt
-</a>
-</dd>
-<dt id="bib-RFC4627">
-[RFC4627]
-</dt>
-<dd rel="dcterms:requires">
-D.
-Crockford.
-<a href="http://www.ietf.org/rfc/rfc4627.txt">
-<cite>
-The
-application/json
-Media
-Type
-for
-JavaScript
-Object
-Notation
-(JSON)
-<ins class="diff-new">(RFC
-4627)
-</ins>
-</cite>
-</a>.
-July
-2006.
-<del class="diff-old">Internet
-RFC
-4627.
-</del>
-<ins class="diff-chg">RFC.
-</ins>
-URL:
-<a href="http://www.ietf.org/rfc/rfc4627.txt">
-http://www.ietf.org/rfc/rfc4627.txt
-</a>
-</dd>
-<del class="diff-old">[WEBIDL]
-</del>
-<dt id="bib-RFC5988">
-<ins class="diff-chg">[RFC5988]
-</ins>
-</dt>
-<dd rel="dcterms:requires">
-<ins class="diff-chg">M.
-Nottingham.
-</ins>
-<cite>
-<a href="http://www.ietf.org/rfc/rfc5988.txt">
-Web
-<del class="diff-old">IDL
-</del>
-<ins class="diff-chg">Linking
-</ins></a>.</cite><ins class="diff-chg">
-October
-2010.
-Internet
-RFC
-5988.
-URL:
-</ins><a href="http://www.ietf.org/rfc/rfc5988.txt"><ins class="diff-chg">
-http://www.ietf.org/rfc/rfc5988.txt
-</ins>
-</a>
-</dd>
-<dt id="bib-WEBIDL">
-<ins class="diff-chg">[WEBIDL]
-</ins></dt><dd rel="dcterms:requires">
-Cameron
-McCormack,
-Editor.
-<del class="diff-old">World
-Wide
-</del>
-<cite>
-<a href="http://www.w3.org/TR/2012/CR-WebIDL-20120419/">
-Web
-<del class="diff-old">Consortium.
-</del>
-<ins class="diff-chg">IDL.
-</ins></a></cite>
-19
-April
-2012.
-<ins class="diff-new">W3C
-</ins>
-Candidate
-<del class="diff-old">Recommendataion.
-This
-edition
-of
-Web
-IDL
-is
-http://www.w3.org/TR/2012/CR-WebIDL-20120419/.
-</del>
-<ins class="diff-chg">Recommendation
-(work
-in
-progress).
-URL:
-</ins><a href="http://www.w3.org/TR/2012/CR-WebIDL-20120419/"><ins class="diff-chg">
-http://www.w3.org/TR/2012/CR-WebIDL-20120419/
-</ins></a>.
-The
-latest
-edition
-<del class="diff-old">of
-Web
-IDL
-</del>
-is
-available
-at
-<del class="diff-old">http://dev.w3.org/2006/webapi/WebIDL/
-</del>
-<a href="http://www.w3.org/TR/WebIDL/">
-<ins class="diff-chg">http://www.w3.org/TR/WebIDL/
-</ins></a>
-</dd>
-<dt id="bib-XMLSCHEMA11-2">
-[XMLSCHEMA11-2]
-</dt>
-<dd rel="dcterms:requires">
-Henry
-S.
-<del class="diff-old">Thompson;
-</del>
-<ins class="diff-chg">Thompson
-</ins>
-et
-al.
-<a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/">
-<cite>
-W3C
-XML
-Schema
-Definition
-Language
-(XSD)
-1.1
-Part
-2:
-<del class="diff-old">Datatypes.
-</del>
-<ins class="diff-chg">Datatypes
-</ins>
-</cite>
-</a>.
-5
-April
-2012.
-W3C
-<del class="diff-old">Recommendation
-</del>
-<ins class="diff-chg">Recommendation.
-</ins>
-URL:
-<a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/">
-http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/
-</a>
-</dd>
-</dl>
-</section>
-<section id="informative-references" typeof="bibo:Chapter" resource="#informative-references" rel="bibo:chapter">
-<h3>
-<span class="secno">
-<del class="diff-old">C.2
-</del>
-<ins class="diff-chg">B.2
-</ins>
-</span>
-Informative
-references
-</h3>
-<dl class="bibliography" about="">
-<dt id="bib-BCP47">
-<ins class="diff-chg">[BCP47]
-</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
-A.
-Phillips;
-M.
-Davis.
-</ins><a href="http://tools.ietf.org/html/bcp47"><cite><ins class="diff-chg">
-Tags
-for
-Identifying
-Languages
-</ins></cite></a>.<ins class="diff-chg">
-September
-2009.
-IETF
-Best
-Current
-Practice.
-URL:
-</ins><a href="http://tools.ietf.org/html/bcp47"><ins class="diff-chg">
-http://tools.ietf.org/html/bcp47
-</ins></a></dd>
-<dt id="bib-ECMA-262">
-[ECMA-262]
-</dt>
-<dd rel="dcterms:references">
-<a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">
-<cite>
-ECMAScript
-Language
-<del class="diff-old">Specification.
-</del>
-<ins class="diff-chg">Specification,
-Edition
-5.1
-</ins>
-</cite>
-<del class="diff-old">December
-1999.
-</del>
-</a>.
-<ins class="diff-chg">June
-2011.
-</ins>
-URL:
-<a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">
-http://www.ecma-international.org/publications/standards/Ecma-262.htm
-</a>
-</dd>
-<del class="diff-old">[TURTLE-TR]
-</del>
-<dt id="bib-JSON-LD-TESTS">
-<ins class="diff-chg">[JSON-LD-TESTS]
-</ins>
-</dt>
-<del class="diff-old">Eric
-Prud'hommeaux,
-Gavin
-Carothers.
-</del>
-<dd rel="dcterms:references">
-<cite>
-<del class="diff-old">Turtle:
-Terse
-</del>
-<a href="http://www.w3.org/2013/json-ld-tests/">
-<ins class="diff-chg">JSON-LD
-1.0
-Test
-Suite
-</ins></a></cite>.<ins class="diff-chg">
-W3C
-Test
-Suite
-(work
-in
-progress).
-URL:
-</ins><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-chg">
-http://www.w3.org/2013/json-ld-tests/
-</ins></a></dd><dt id="bib-RDF11-CONCEPTS"><ins class="diff-chg">
-[RDF11-CONCEPTS]
-</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
-Richard
-Cyganiak,
-David
-Wood,
-Editors.
-</ins><cite><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">
-RDF
-<del class="diff-old">Triple
-Language.
-</del>
-<ins class="diff-chg">1.1
-Concepts
-and
-Abstract
-Syntax.
-</ins>
-</a>
-</cite>
-<del class="diff-old">09
-August
-2011.
-</del>
-<ins class="diff-chg">15
-January
-2013.
-</ins>
-W3C
-Working
-<del class="diff-old">Draft.
-</del>
-<ins class="diff-chg">Draft
-(work
-in
-progress).
-</ins>
-URL:
-<del class="diff-old">http://www.w3.org/TR/2011/WD-turtle-20110809/
-</del>
-<a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">
-<ins class="diff-chg">http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/
-</ins></a>.<ins class="diff-chg">
-The
-latest
-edition
-is
-available
-at
-</ins><a href="http://www.w3.org/TR/rdf11-concepts/"><ins class="diff-chg">
-http://www.w3.org/TR/rdf11-concepts/
-</ins>
-</a>
-</dd>
-<del class="diff-old">[UNICODE]
-</del>
-<dt id="bib-TURTLE">
-<ins class="diff-chg">[TURTLE]
-</ins>
-</dt>
-<del class="diff-old">The
-Unicode
-Consortium.
-</del>
-<dd rel="dcterms:references">
-<ins class="diff-chg">Eric
-Prud'hommeaux,
-Gavin
-Carothers,
-Editors.
-</ins>
-<cite>
-<del class="diff-old">The
-Unicode
-Standard.
-</del>
-<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
-<ins class="diff-new">Turtle:
-Terse
-RDF
-Triple
-Language.
-</ins>
-</a>
-<del class="diff-old">2003.
-Defined
-by:
-The
-Unicode
-Standard,
-Version
-4.0
-(Boston,
-MA,
-Addison-Wesley,
-ISBN
-0-321-18578-1),
-as
-updated
-from
-time
-to
-time
-by
-the
-publication
-of
-new
-versions
-</del>
-</cite>
-<ins class="diff-chg">19
-February
-2013.
-W3C
-Candidate
-Recommendation
-(work
-in
-progress).
-</ins>
-URL:
-<del class="diff-old">http://www.unicode.org/unicode/standard/versions/enumeratedversions.html
-</del>
-<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
-<ins class="diff-chg">http://www.w3.org/TR/2013/CR-turtle-20130219/
-</ins></a>.<ins class="diff-chg">
-The
-latest
-edition
-is
-available
-at
-</ins><a href="http://www.w3.org/TR/turtle/"><ins class="diff-chg">
-http://www.w3.org/TR/turtle/
-</ins>
-</a>
-</dd>
-</dl>
-</section>
-</section>
-</body>
-</html>
-
--- a/spec/WD/20130411/json-ld-api/index.html	Mon Apr 08 11:44:09 2013 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4590 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
-<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" typeof="bibo:Document">
-<head>
-<title>JSON-LD 1.0 Processing Algorithms and API</title>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-<style type="text/css">
-  .diff {
-    font-weight:bold; color:#0a3;
-  }
-  .error a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-  }
-  .atrisk-head {
-    font-style: italic;
-  }
-</style>
-<style type="text/css">
-/* --- INLINES --- */
-em.rfc2119 {
-    text-transform:     lowercase;
-    font-variant:       small-caps;
-    font-style:         normal;
-    color:              #900;
-}
-
-h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
-h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
-    border: none;
-}
-
-dfn {
-    font-weight:    bold;
-}
-
-a.internalDFN {
-    color:  inherit;
-    border-bottom:  1px solid #99c;
-    text-decoration:    none;
-}
-
-a.externalDFN {
-    color:  inherit;
-    border-bottom:  1px dotted #ccc;
-    text-decoration:    none;
-}
-
-a.bibref {
-    text-decoration:    none;
-}
-
-cite .bibref {
-    font-style: normal;
-}
-
-code {
-    color:  #ff4500;
-}
-
-
-/* --- --- */
-ol.algorithm { counter-reset:numsection; list-style-type: none; }
-ol.algorithm li { margin: 0.5em 0; }
-ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
-
-/* --- TOC --- */
-.toc a, .tof a {
-    text-decoration:    none;
-}
-
-a .secno, a .figno {
-    color:  #000;
-}
-
-ul.tof, ol.tof {
-    list-style: none outside none;
-}
-
-.caption {
-    margin-top: 0.5em;
-    font-style:   italic;
-}
-
-/* --- TABLE --- */
-table.simple {
-    border-spacing: 0;
-    border-collapse:    collapse;
-    border-bottom:  3px solid #005a9c;
-}
-
-.simple th {
-    background: #005a9c;
-    color:  #fff;
-    padding:    3px 5px;
-    text-align: left;
-}
-
-.simple th[scope="row"] {
-    background: inherit;
-    color:  inherit;
-    border-top: 1px solid #ddd;
-}
-
-.simple td {
-    padding:    3px 10px;
-    border-top: 1px solid #ddd;
-}
-
-.simple tr:nth-child(even) {
-    background: #f0f6ff;
-}
-
-/* --- DL --- */
-.section dd > p:first-child {
-    margin-top: 0;
-}
-
-.section dd > p:last-child {
-    margin-bottom: 0;
-}
-
-.section dd {
-    margin-bottom:  1em;
-}
-
-.section dl.attrs dd, .section dl.eldef dd {
-    margin-bottom:  0;
-}
-</style><style type="text/css">/* --- EXAMPLES --- */
-div.example-title {
-    min-width: 7.5em;
-    color: #b9ab2d;
-}
-div.example-title span {
-    text-transform: uppercase;
-}
-aside.example, div.example, div.illegal-example {
-    padding: 0.5em;
-    margin: 1em 0;
-    position: relative;
-    clear: both;
-}
-div.illegal-example { color: red }
-div.illegal-example p { color: black }
-aside.example, div.example {
-    padding: .5em;
-    border-left-width: .5em;
-    border-left-style: solid;
-    border-color: #e0cb52;
-    background: #fcfaee;
-}
-
-aside.example div.example {
-    border-left-width: .1em;
-    border-color: #999;
-    background: #fff;
-}
-aside.example div.example div.example-title {
-    color: #999;
-}
-</style><style type="text/css">/* --- ISSUES/NOTES --- */
-div.issue-title, div.note-title {
-    padding-right:  1em;
-    min-width: 7.5em;
-    color: #b9ab2d;
-}
-div.issue-title { color: #e05252; }
-div.note-title { color: #52e052; }
-div.issue-title span, div.note-title span {
-    text-transform: uppercase;
-}
-div.note, div.issue {
-    margin-top: 1em;
-    margin-bottom: 1em;
-}
-.note > p:first-child, .issue > p:first-child { margin-top: 0 }
-.issue, .note {
-    padding: .5em;
-    border-left-width: .5em;
-    border-left-style: solid;
-}
-div.issue, div.note {
-    padding: 0.5em;
-    margin: 1em 0;
-    position: relative;
-    clear: both;
-}
-span.note, span.issue { padding: .1em .5em .15em; }
-
-.issue {
-    border-color: #e05252;
-    background: #fbe9e9;
-}
-.note {
-    border-color: #52e052;
-    background: #e9fbe9;
-}
-
-
-</style><style type="text/css">/* --- WEB IDL --- */
-pre.idl {
-    border-top: 1px solid #90b8de;
-    border-bottom: 1px solid #90b8de;
-    padding:    1em;
-    line-height:    120%;
-}
-
-pre.idl::before {
-    content:    "WebIDL";
-    display:    block;
-    width:      150px;
-    background: #90b8de;
-    color:  #fff;
-    font-family:    initial;
-    padding:    3px;
-    font-weight:    bold;
-    margin: -1em 0 1em -1em;
-}
-
-.idlType {
-    color:  #ff4500;
-    font-weight:    bold;
-    text-decoration:    none;
-}
-
-/*.idlModule*/
-/*.idlModuleID*/
-/*.idlInterface*/
-.idlInterfaceID, .idlDictionaryID, .idlCallbackID, .idlEnumID {
-    font-weight:    bold;
-    color:  #005a9c;
-}
-a.idlEnumItem {
-    color:  #000;
-    border-bottom:  1px dotted #ccc;
-    text-decoration: none;
-}
-
-.idlSuperclass {
-    font-style: italic;
-    color:  #005a9c;
-}
-
-/*.idlAttribute*/
-.idlAttrType, .idlFieldType, .idlMemberType {
-    color:  #005a9c;
-}
-.idlAttrName, .idlFieldName, .idlMemberName {
-    color:  #ff4500;
-}
-.idlAttrName a, .idlFieldName a, .idlMemberName a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-}
-
-/*.idlMethod*/
-.idlMethType, .idlCallbackType {
-    color:  #005a9c;
-}
-.idlMethName {
-    color:  #ff4500;
-}
-.idlMethName a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-}
-
-/*.idlCtor*/
-.idlCtorName {
-    color:  #ff4500;
-}
-.idlCtorName a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-}
-
-/*.idlParam*/
-.idlParamType {
-    color:  #005a9c;
-}
-.idlParamName, .idlDefaultValue {
-    font-style: italic;
-}
-
-.extAttr {
-    color:  #666;
-}
-
-/*.idlSectionComment*/
-.idlSectionComment {
-    color: gray;
-}
-
-/*.idlConst*/
-.idlConstType {
-    color:  #005a9c;
-}
-.idlConstName {
-    color:  #ff4500;
-}
-.idlConstName a {
-    color:  #ff4500;
-    border-bottom:  1px dotted #ff4500;
-    text-decoration: none;
-}
-
-/*.idlException*/
-.idlExceptionID {
-    font-weight:    bold;
-    color:  #c00;
-}
-
-.idlTypedefID, .idlTypedefType {
-    color:  #005a9c;
-}
-
-.idlRaises, .idlRaises a.idlType, .idlRaises a.idlType code, .excName a, .excName a code {
-    color:  #c00;
-    font-weight:    normal;
-}
-
-.excName a {
-    font-family:    monospace;
-}
-
-.idlRaises a.idlType, .excName a.idlType {
-    border-bottom:  1px dotted #c00;
-}
-
-.excGetSetTrue, .excGetSetFalse, .prmNullTrue, .prmNullFalse, .prmOptTrue, .prmOptFalse {
-    width:  45px;
-    text-align: center;
-}
-.excGetSetTrue, .prmNullTrue, .prmOptTrue { color:  #0c0; }
-.excGetSetFalse, .prmNullFalse, .prmOptFalse { color:  #c00; }
-
-.idlImplements a {
-    font-weight:    bold;
-}
-
-dl.attributes, dl.methods, dl.constants, dl.constructors, dl.fields, dl.dictionary-members {
-    margin-left:    2em;
-}
-
-.attributes dt, .methods dt, .constants dt, .constructors dt, .fields dt, .dictionary-members dt {
-    font-weight:    normal;
-}
-
-.attributes dt code, .methods dt code, .constants dt code, .constructors dt code, .fields dt code, .dictionary-members dt code {
-    font-weight:    bold;
-    color:  #000;
-    font-family:    monospace;
-}
-
-.attributes dt code, .fields dt code, .dictionary-members dt code {
-    background:  #ffffd2;
-}
-
-.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
-    color:  #005a9c;
-    background:  transparent;
-    font-family:    inherit;
-    font-weight:    normal;
-    font-style: italic;
-}
-
-.methods dt code {
-    background:  #d9e6f8;
-}
-
-.constants dt code {
-    background:  #ddffd2;
-}
-
-.constructors dt code {
-    background:  #cfc;
-}
-
-.attributes dd, .methods dd, .constants dd, .constructors dd, .fields dd, .dictionary-members dd {
-    margin-bottom:  1em;
-}
-
-table.parameters, table.exceptions {
-    border-spacing: 0;
-    border-collapse:    collapse;
-    margin: 0.5em 0;
-    width:  100%;
-}
-table.parameters { border-bottom:  1px solid #90b8de; }
-table.exceptions { border-bottom:  1px solid #deb890; }
-
-.parameters th, .exceptions th {
-    color:  #fff;
-    padding:    3px 5px;
-    text-align: left;
-    font-family:    initial;
-    font-weight:    normal;
-    text-shadow:    #666 1px 1px 0;
-}
-.parameters th { background: #90b8de; }
-.exceptions th { background: #deb890; }
-
-.parameters td, .exceptions td {
-    padding:    3px 10px;
-    border-top: 1px solid #ddd;
-    vertical-align: top;
-}
-
-.parameters tr:first-child td, .exceptions tr:first-child td {
-    border-top: none;
-}
-
-.parameters td.prmName, .exceptions td.excName, .exceptions td.excCodeName {
-    width:  100px;
-}
-
-.parameters td.prmType {
-    width:  120px;
-}
-
-table.exceptions table {
-    border-spacing: 0;
-    border-collapse:    collapse;
-    width:  100%;
-}
-</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
-</head>
-
-<body><div class="head">
-  <p>
-
-      <a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" /></a>
-
-  </p>
-  <h1 class="title" id="title">JSON-LD 1.0 Processing Algorithms and API</h1>
-
-  <h2 id="w3c-last-call-working-draft-11-april-2013"><abbr title="World Wide Web Consortium">W3C</abbr> Last Call Working Draft 11 April 2013</h2>
-  <dl>
-
-      <dt>This version:</dt>
-      <dd><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/">http://www.w3.org/TR/2013/WD-json-ld-api-20130411/</a></dd>
-      <dt>Latest published version:</dt>
-      <dd><a href="http://www.w3.org/TR/json-ld-api/">http://www.w3.org/TR/json-ld-api/</a></dd>
-
-
-      <dt>Latest editor's draft:</dt>
-      <dd><a href="http://json-ld.org/spec/latest/json-ld-api/index.html">http://json-ld.org/spec/latest/json-ld-api/index.html</a></dd>
-
-
-      <dt>Test suite:</dt>
-      <dd><a href="http://www.w3.org/2013/json-ld-tests/">http://www.w3.org/2013/json-ld-tests/</a></dd>
-
-
-
-
-      <dt>Previous version:</dt>
-      <dd><a href="http://www.w3.org/TR/2012/WD-json-ld-api-20120712/">http://www.w3.org/TR/2012/WD-json-ld-api-20120712/</a></dd>
-
-
-    <dt>Editors:</dt>
-    <dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>, <a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">Graz University of Technology</a></span>
-</dd>
-<dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">Gregg Kellogg</a>, <a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">Kellogg Associates</a></span>
-</dd>
-<dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://manu.sporny.org/">Manu Sporny</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
-</dd>
-
-
-      <dt>Authors:</dt>
-      <dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Dave Longley" href="http://digitalbazaar.com/">Dave Longley</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
-</dd>
-<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">Gregg Kellogg</a>, <a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">Kellogg Associates</a></span>
-</dd>
-<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>, <a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">Graz University of Technology</a></span>
-</dd>
-<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://digitalbazaar.com/">Manu Sporny</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
-</dd>
-
-
-  </dl>
-
-
-    <p>
-
-        This document is also available in this non-normative format:
-
-      <a rel="alternate" href="diff-20120712.html">diff to previous version</a>
-    </p>
-
-
-
-
-      <p class="copyright">
-        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©
-        2010-2013
-
-        <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup>
-        (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,
-        <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
-        <a href="http://www.keio.ac.jp/">Keio</a>, <a href="http://ev.buaa.edu.cn/">Beihang</a>), All Rights Reserved.
-        <abbr title="World Wide Web Consortium">W3C</abbr> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
-        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and
-        <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.
-      </p>
-
-
-  <hr />
-</div>
-<div id="abstract" class="introductory section" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:chapter"><h2>Abstract</h2>
-  <p>This specification defines an Application Programming Interface (API)
-    and a set of algorithms for programmatic transformations of JSON-LD
-    documents. Restructuring data according the defined transformations
-    often dramatically simplifies its usage.</p>
-</div><div id="sotd" class="introductory section" typeof="bibo:Chapter" resource="#sotd" rel="bibo:chapter"><h2>Status of This Document</h2>
-
-
-
-        <p>
-          <em>This section describes the status of this document at the time of its publication. Other
-          documents may supersede this document. A list of current <abbr title="World Wide Web Consortium">W3C</abbr> publications and the latest revision
-          of this technical report can be found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports
-          index</a> at http://www.w3.org/TR/.</em>
-        </p>
-
-  <p>This document has been under development for over 25 months in the
-    JSON for Linking Data Community Group. The document has recently been
-    transferred to the RDF Working Group for review, improvement, and publication
-    along the Recommendation track. The specification has undergone significant
-    development, review, and changes during the course of the last 25 months.
-    There are several independent
-    <a href="http://json-ld.org/#impl">interoperable implementations</a> of
-    this specification and a fairly complete test suite [<cite><a class="bibref" href="#bib-JSON-LD-TESTS">JSON-LD-TESTS</a></cite>].</p>
-
-        <p>
-          This document was published by the <a href="http://www.w3.org/2011/rdf-wg/">RDF Working Group</a> as a Last Call Working Draft.
-
-            This document is intended to become a <abbr title="World Wide Web Consortium">W3C</abbr> Recommendation.
-
-
-          If you wish to make comments regarding this document, please send them to
-          <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>
-          (<a href="mailto:public-rdf-comments-request@w3.org?subject=subscribe">subscribe</a>,
-          <a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">archives</a>).
-
-          The Last Call period ends 11 May 2013.
-
-
-        All comments are welcome.
-
-
-          </p>
-
-  <div style="padding: 1em; margin: 1em; border: 1px solid red;">
-    <p>The Working Group welcomes reports of implementations, sent to the
-      comments address. If we gather sufficient evidence of interoperable
-      implementations, the group may request to skip Call for Implementations
-      (Candidate Recommendation) drafts and have the next round of
-      publications be Proposed Recommendations.</p>
-  </div>
-
-          <p>
-            Publication as a Last Call Working Draft does not imply endorsement by the <abbr title="World Wide Web Consortium">W3C</abbr> Membership.
-            This is a draft document and may be updated, replaced or obsoleted by other documents at
-            any time. It is inappropriate to cite this document as other than work in progress.
-          </p>
-
-
-          <p>
-            This is a Last Call Working Draft and thus the Working Group has determined that this document has satisfied the
-            relevant technical requirements and is sufficiently stable to advance through the Technical Recommendation process.
-          </p>
-
-        <p>
-
-            This document was produced by a group operating under the
-            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
-
-
-
-
-              <abbr title="World Wide Web Consortium">W3C</abbr> maintains a <a href="http://www.w3.org/2004/01/pp-impl/46168/status" rel="disclosure">public list of any patent disclosures</a>
-
-            made in connection with the deliverables of the group; that page also includes instructions for
-            disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains
-            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the
-            information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
-            6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
-
-
-        </p>
-
-
-
-
-</div><div class="section" id="toc"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a href="#features" class="tocxref"><span class="secno">2. </span>Features</a><ul class="toc"><li class="tocline"><a href="#expansion" class="tocxref"><span class="secno">2.1 </span>Expansion</a></li><li class="tocline"><a href="#compaction" class="tocxref"><span class="secno">2.2 </span>Compaction</a></li><li class="tocline"><a href="#flattening" class="tocxref"><span class="secno">2.3 </span>Flattening</a></li><li class="tocline"><a href="#rdf-conversion" class="tocxref"><span class="secno">2.4 </span>RDF Conversion</a></li></ul></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">3. </span>Conformance</a></li><li class="tocline"><a href="#general-terminology" class="tocxref"><span class="secno">4. </span>General Terminology</a></li><li class="tocline"><a href="#algorithm-terms" class="tocxref"><span class="secno">5. </span>Algorithm Terms</a></li><li class="tocline"><a href="#context-processing-algorithms" class="tocxref"><span class="secno">6. </span>Context Processing Algorithms</a><ul class="toc"><li class="tocline"><a href="#context-processing-algorithm" class="tocxref"><span class="secno">6.1 </span>Context Processing Algorithm</a></li><li class="tocline"><a href="#create-term-definition" class="tocxref"><span class="secno">6.2 </span>Create Term Definition</a></li><li class="tocline"><a href="#iri-expansion" class="tocxref"><span class="secno">6.3 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion</a></li></ul></li><li class="tocline"><a href="#expansion-algorithms" class="tocxref"><span class="secno">7. </span>Expansion Algorithms</a><ul class="toc"><li class="tocline"><a href="#expansion-algorithm" class="tocxref"><span class="secno">7.1 </span>Expansion Algorithm</a></li><li class="tocline"><a href="#value-expansion" class="tocxref"><span class="secno">7.2 </span>Value Expansion</a></li></ul></li><li class="tocline"><a href="#compaction-algorithms" class="tocxref"><span class="secno">8. </span>Compaction Algorithms</a><ul class="toc"><li class="tocline"><a href="#compaction-algorithm" class="tocxref"><span class="secno">8.1 </span>Compaction Algorithm</a></li><li class="tocline"><a href="#inverse-context-creation" class="tocxref"><span class="secno">8.2 </span>Inverse Context Creation</a></li><li class="tocline"><a href="#iri-compaction" class="tocxref"><span class="secno">8.3 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction</a></li><li class="tocline"><a href="#term-selection" class="tocxref"><span class="secno">8.4 </span>Term Selection</a></li><li class="tocline"><a href="#value-compaction" class="tocxref"><span class="secno">8.5 </span>Value Compaction</a></li></ul></li><li class="tocline"><a href="#flattening-algorithms" class="tocxref"><span class="secno">9. </span>Flattening Algorithms</a><ul class="toc"><li class="tocline"><a href="#flattening-algorithm" class="tocxref"><span class="secno">9.1 </span>Flattening Algorithm</a></li><li class="tocline"><a href="#node-map-generation" class="tocxref"><span class="secno">9.2 </span>Node Map Generation</a></li><li class="tocline"><a href="#generate-blank-node-identifier" class="tocxref"><span class="secno">9.3 </span>Generate Blank Node Identifier</a></li></ul></li><li class="tocline"><a href="#rdf-conversion-algorithms" class="tocxref"><span class="secno">10. </span>RDF Conversion Algorithms</a><ul class="toc"><li class="tocline"><a href="#convert-to-rdf-algorithm" class="tocxref"><span class="secno">10.1 </span>Convert to RDF Algorithm</a></li><li class="tocline"><a href="#object-to-rdf-conversion" class="tocxref"><span class="secno">10.2 </span>Object to RDF Conversion</a></li><li class="tocline"><a href="#list-to-rdf-conversion" class="tocxref"><span class="secno">10.3 </span>List to RDF Conversion</a></li><li class="tocline"><a href="#convert-from-rdf-algorithm" class="tocxref"><span class="secno">10.4 </span>Convert from RDF Algorithm</a></li><li class="tocline"><a href="#rdf-to-object-conversion" class="tocxref"><span class="secno">10.5 </span>RDF to Object Conversion</a></li><li class="tocline"><a href="#data-round-tripping" class="tocxref"><span class="secno">10.6 </span>Data Round Tripping</a></li></ul></li><li class="tocline"><a href="#the-application-programming-interface" class="tocxref"><span class="secno">11. </span>The Application Programming Interface</a><ul class="toc"><li class="tocline"><a href="#the-jsonldprocessor-interface" class="tocxref"><span class="secno">11.1 </span>The <span class="formerLink"><code>JsonLdProcessor</code></span> Interface</a></li><li class="tocline"><a href="#callbacks" class="tocxref"><span class="secno">11.2 </span>Callbacks</a></li><li class="tocline"><a href="#data-structures" class="tocxref"><span class="secno">11.3 </span>Data Structures</a></li></ul></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></div>
-
-
-
-
-<div class="informative section" id="introduction">
-
-<!--OddPage-->
-<h2><span class="secno">1. </span>Introduction</h2><p><em>This section is non-normative.</em></p>
-
-  <p>This document is a detailed specification for an Application Programming
-    Interface for the JSON-LD syntax. The document is primarily intended for
-    the following audiences:</p>
-
-  <ul>
-    <li>Developers who want an overview of the JSON-LD API.</li>
-    <li>Web authors and developers who want a very detailed view of how
-      a <a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processor</a> or a <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementation</a>
-      operates.</li>
-    <li>Software developers who want to implement the algorithms to transform
-      JSON-LD documents.</li>
-  </ul>
-
-  <p>To understand the basics in this specification you must first be familiar with
-    JSON, which is detailed in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]. You must also understand the
-    JSON-LD syntax defined in [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>], which is the base syntax used by all
-    of the algorithms in this document. To understand the API and how it is
-    intended to operate in a programming environment, it is useful to have working
-    knowledge of the JavaScript programming language [<cite><a class="bibref" href="#bib-ECMA-262">ECMA-262</a></cite>] and
-    WebIDL [<cite><a class="bibref" href="#bib-WEBIDL">WEBIDL</a></cite>]. To understand how JSON-LD maps to RDF, it is helpful to be
-    familiar with the basic RDF concepts [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</p>
-</div>
-<!-- end of Introduction -->
-
-
-
-<div class="informative section" id="features">
-
-<!--OddPage-->
-<h2><span class="secno">2. </span>Features</h2><p><em>This section is non-normative.</em></p>
-
-  <p>The JSON-LD Syntax specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>] defines a syntax to
-    express Linked Data in JSON. Because there is more than one way to
-    express Linked Data using this syntax, it is often useful to be able to
-    transform JSON-LD documents so that they may be more easily consumed by
-    specific applications.</p>
-
-  <p>JSON-LD uses <a class="tref internalDFN" title="context" href="#dfn-context">contexts</a> to allow Linked Data
-    to be expressed in a way that is specifically tailored to a particular
-    person or application. By providing a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>,
-    JSON data can be expressed in a way that is a natural fit for a particular
-    person or application whilst also indicating how the data should be
-    understood at a global scale. In order for people or applications to
-    share data that was created using a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> that is different
-    from their own, a JSON-LD processor must be able to transform a document
-    from one <a class="tref internalDFN" title="context" href="#dfn-context">context</a> to another. Instead of requiring JSON-LD
-    processors to write specific code for every imaginable
-    <a class="tref internalDFN" title="context" href="#dfn-context">context</a> switching scenario, it is much easier to specify a
-    single algorithm that can remove any <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. Similarly,
-    another algorithm can be specified to subsequently apply any
-    <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. These two algorithms represent the most basic
-    transformations of JSON-LD documents. They are referred to as
-    <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expansion</a> and <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compaction</a>, respectively.</p>
-
-  <p>There are four major types of transformation that are discussed in this
-    document: expansion, compaction, flattening, and RDF conversion.</p>
-
-  <div class="informative section" id="expansion">
-    <h3><span class="secno">2.1 </span>Expansion</h3><p><em>This section is non-normative.</em></p>
-
-    <p>The algorithm that removes <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is
-      called <dfn title="expansion" id="dfn-expansion">expansion</dfn>. Before performing any other
-      transformations on a JSON-LD document, it is easiest to
-      remove any <a class="tref internalDFN" title="context" href="#dfn-context">context</a> from it and to make data structures
-      more regular.</p>
-
-    <p>To get an idea of how context and data structuring affects the same data,
-      here is an example of JSON-LD that uses only <a class="tref internalDFN" title="term" href="#dfn-term">terms</a>
-      and is fairly compact:</p>
-
-    <div class="example"><div class="example-title"><span>Example 1</span>: Sample JSON-LD document</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;
-}</pre></div>
-
-    <p>The next input example uses one <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> to express a property
-    and an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> to encapsulate another, but
-    leaves the rest of the information untouched.</p>
-
-    <div class="example"><div class="example-title"><span>Example 2</span>: Sample JSON-LD document using an IRI instead of a term to express a property</div><pre class="example">{
-  &quot;@context&quot;: {
-    <span class="diff">&quot;website&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;</span>
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;<span class="diff">http://xmlns.com/foaf/0.1/name</span>&quot;: &quot;Markus Lanthaler&quot;,
-  <span class="diff">&quot;website&quot;</span>: <span class="diff">{ &quot;@id&quot;:</span> &quot;http://www.markus-lanthaler.com/&quot; <span class="diff">}</span>
-}</pre></div>
-
-    <p>Note that both inputs are valid JSON-LD and both represent the same
-      information. The difference is in their <a class="tref internalDFN" title="context" href="#dfn-context">context</a> information
-      and in the data structures used. A JSON-LD processor can remove
-      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and ensure that the data is more regular by employing
-      <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expansion</a>.</p>
-
-    <p><a class="tref internalDFN" title="expansion" href="#dfn-expansion">Expansion</a> has two important goals: removing any contextual
-      information from the document, and ensuring all values are represented
-      in a regular form. These goals are accomplished by expanding all properties
-      to <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a> and by expressing all
-      values in <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a> in
-      <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a>. <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">Expanded form</a> is the most verbose
-      and regular way of expressing of values in JSON-LD; all contextual
-      information from the document is instead stored locally with each value.
-      Running the <a href="#expansion-algorithm">Expansion algorithm</a>
-      (<code class="idlMemberName"><a href="#widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">expand</a></code>
-      operation) against the above examples results in the following output:</p>
-
-    <div class="example"><div class="example-title"><span>Example 3</span>: Expanded sample document</div><pre class="example">[
-  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
-    ]
-  }
-]</pre></div>
-
-    <p>Note that in the output above all <a class="tref internalDFN" title="context" href="#dfn-context">context</a> definitions have
-      been removed, all <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> and
-      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> have been expanded to absolute
-      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, and all
-      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a> are expressed in
-      <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a> in <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a>. While the
-      output is more verbose and difficult for a human to read, it establishes a
-      baseline that makes JSON-LD processing easier because of its very regular
-      structure.</p>
-  </div>
-<!-- end of Expansion -->
-
-
-  <div class="informative section" id="compaction">
-    <h3><span class="secno">2.2 </span>Compaction</h3><p><em>This section is non-normative.</em></p>
-
-    <p>While <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expansion</a> removes <a class="tref internalDFN" title="context" href="#dfn-context">context</a> from a given
-      input, <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compaction's</a> primary function is to
-      perform the opposite operation: to express a given input according to
-      a particular <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. <dfn title="compaction" id="dfn-compaction">Compaction</dfn> applies a
-      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> that specifically tailors the way information is
-      expressed for a particular person or application. This simplifies applications
-      that consume JSON or JSON-LD by expressing the data in application-specific
-      terms, and it makes the data easier to read by humans.</p>
-
-    <p><a class="tref internalDFN" title="compaction" href="#dfn-compaction">Compaction</a> uses a developer-supplied <a class="tref internalDFN" title="context" href="#dfn-context">context</a> to
-      shorten <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> to <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or
-      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> and
-      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a> expressed in
-      <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a> to simple values such as <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>
-      or <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>.</p>
-
-    <p>For example, assume the following expanded JSON-LD input document:</p>
-
-    <div class="example"><div class="example-title"><span>Example 4</span>: Expanded sample document</div><pre class="example">[
-  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
-    ]
-  }
-]</pre></div>
-
-    <p>Additionally, assume the following developer-supplied JSON-LD
-      <a class="tref internalDFN" title="context" href="#dfn-context">context</a>:</p>
-
-    <div class="example"><div class="example-title"><span>Example 5</span>: JSON-LD context</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  }
-}</pre></div>
-
-    <p>Running the <a href="#compaction-algorithm">Compaction Algorithm</a>
-      (<code class="idlMemberName"><a href="#widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">compact</a></code>
-      operation) given the context supplied above against the JSON-LD input
-      document provided above would result in the following output:</p>
-
-    <div class="example"><div class="example-title"><span>Example 6</span>: Compacted sample document</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;
-}</pre></div>
-
-    <p>Note that all <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> have been compacted to
-      <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> as specified in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>,
-      which has been injected into the output. While compacted output is
-      useful to humans, it is also used to generate structures that are easy to
-      program against. Compaction enables developers to map any expanded document
-      into an application-specific compacted document. While the context provided
-      above mapped <code>http://xmlns.com/foaf/0.1/name</code> to <code>name</code>, it
-      could also have been mapped to any other term provided by the developer.</p>
-  </div>
-<!-- end of Compaction -->
-
-
-  <div class="informative section" id="flattening">
-    <h3><span class="secno">2.3 </span>Flattening</h3><p><em>This section is non-normative.</em></p>
-
-    <p>While expansion ensures that a document is in a uniform structure,
-      flattening goes a step further to ensure that the shape of the data
-      is deterministic. In expanded documents, the properties of a single
-      <a class="tref internalDFN" title="node" href="#dfn-node">node</a> may be spread across a number of different
-      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a>. By flattening a
-      document, all properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> are collected in a single
-      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> and all <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>
-      are labeled with a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. This may drastically
-      simplify the code required to process JSON-LD data in certain applications.</p>
-
-    <p>For example, assume the following JSON-LD input document:</p>
-
-    <div class="example"><div class="example-title"><span>Example 7</span>: Sample JSON-LD document</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;knows&quot;: [
-    {
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    }
-  ]
-}</pre></div>
-
-    <p>Running the <a href="#flattening-algorithm">Flattening algorithm</a>
-      (<code class="idlMemberName"><a href="#widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">flatten</a></code>
-      operation) with a context set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> to prevent compaction
-      returns the following document:</p>
-
-    <div class="example"><div class="example-title"><span>Example 8</span>: Flattened sample document in expanded form</div><pre class="example">[
-  {
-    &quot;@id&quot;: &quot;_:t0&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Dave Longley&quot; }
-    ]
-  },
-  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/knows&quot;: [
-      { &quot;@id&quot;: &quot;_:t0&quot; }
-    ]
-  }
-]</pre></div>
-
-    <p>Note how in the output above all properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> are collected in a
-      single <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> and how the <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> representing
-      &quot;Dave Longley&quot; has been assigned the <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
-      <code>_:t0</code>.</p>
-
-    <p>To make it easier for humans to read or for certain applications to
-      process it, a flattened document can be compacted by passing a context. Using
-      the same context as the input document, the flattened and compacted document
-      looks as follows:</p>
-
-    <div class="example"><div class="example-title"><span>Example 9</span>: Flattened and compacted sample document</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@graph&quot;: [
-    {
-      &quot;@id&quot;: &quot;_:t0&quot;,
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-      &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-      &quot;knows&quot;: { &quot;@id&quot;: &quot;_:t0&quot; }
-    }
-  ]
-}</pre></div>
-
-    <p>Please note that the result of flattening and compacting a document
-      is always a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> which contains an <code>@graph</code>
-      member that represents the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a>.</p>
-  </div>
-<!-- end of Flattening -->
-
-
-  <div class="informative section" id="rdf-conversion">
-    <h3><span class="secno">2.4 </span>RDF Conversion</h3><p><em>This section is non-normative.</em></p>
-
-    <p>JSON-LD can be used to serialize data expressed in RDF as described in
-      [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>]. This ensures that data can be round-tripped to and from
-      any RDF syntax without any loss in fidelity.</p>
-
-    <p>For example, assume the following RDF input serialized in Turtle [<cite><a class="bibref" href="#bib-TURTLE">TURTLE</a></cite>]:</p>
-
-    <div class="example"><div class="example-title"><span>Example 10</span>: Sample Turtle document</div><pre class="example">&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Markus Lanthaler&quot; .
-&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/homepage&gt; &lt;http://www.markus-lanthaler.com/&gt; .</pre></div>
-
-    <p>Using the <a href="#convert-from-rdf-algorithm">Convert from RDF algorithm</a> a
-      developer could transform this document into expanded JSON-LD:</p>
-
-    <div class="example"><div class="example-title"><span>Example 11</span>: Sample Turtle document converted to JSON-LD</div><pre class="example">[
-  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
-    ]
-  }
-]</pre></div>
-
-    <p>Note that the output above could easily be compacted using the technique outlined
-      in the previous section. It is also possible to transform the JSON-LD document back
-      to RDF using the <a href="#convert-to-rdf-algorithm">Convert to RDF algorithm</a>.</p>
-  </div>
-<!-- end of RDF Conversion -->
-
-</div>
-<!-- end of Features section -->
-
-
-
-<div class="section" id="conformance">
-
-<!--OddPage-->
-<h2><span class="secno">3. </span>Conformance</h2>
-
-  <p>All examples and notes as well as sections marked as non-normative in this
-    specification are non-normative. Everything else in this specification is
-    normative.</p>
-
-  <p>The keywords <em class="rfc2119" title="MUST">MUST</em>, <em class="rfc2119" title="MUST NOT">MUST NOT</em>, <em class="rfc2119" title="REQUIRED">REQUIRED</em>, <em class="rfc2119" title="SHOULD">SHOULD</em>, <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em>, <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em>,
-    <em class="rfc2119" title="MAY">MAY</em>, and <em class="rfc2119" title="OPTIONAL">OPTIONAL</em> in this specification are to be interpreted as described
-    in [<cite><a class="bibref" href="#bib-RFC2119">RFC2119</a></cite>].</p>
-
-  <p>There are three classes of products that can claim conformance to this
-    specification: <a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processors</a>,
-    <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementations</a>,
-    and <a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter">JSON-LD-RDF Converters</a>.</p>
-
-  <p>A conforming <dfn title="json-ld-processor" id="dfn-json-ld-processor">JSON-LD Processor</dfn> is a system which can perform the
-    <a href="#expansion-algorithm">Expansion</a>, <a href="#compaction-algorithm">Compaction</a>,
-    and <a href="#flattening-algorithm">Flattening</a> operations defined in this specification.</p>
-
-  <p>A conforming <dfn title="json-ld-api-implementation" id="dfn-json-ld-api-implementation">JSON-LD API Implementation</dfn> is a conforming <a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processor</a>
-    that exposes the <a href="#the-application-programming-interface">Application Programming Interface (API)</a>
-    defined in this specification. It <em class="rfc2119" title="MUST">MUST</em> implement the <code>json-ld-1.0</code>
-    processing mode (for further details, see the
-    <code class="idlMemberName"><a href="#widl-JsonLdOptions-processingMode">processingMode</a></code>
-    option of <a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>).</p>
-
-  <p><a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processors</a> and
-    <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">API Implementations</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em>
-    attempt to correct malformed <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> or language tags;
-    however, they <em class="rfc2119" title="MAY">MAY</em> issue validation warnings. IRIs are not modified other
-    than converted between <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative</a> and
-    <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>.</p>
-
-  <p>A conforming <dfn title="json-ld-rdf-converter" id="dfn-json-ld-rdf-converter">JSON-LD-RDF Converter</dfn> is a system that can perform
-    <a href="#convert-to-rdf-algorithm">Conversion to RDF</a> and
-    <a href="#convert-from-rdf-algorithm">Conversion from RDF</a>.</p>
-
-  <p>The algorithms in this specification are generally written with more concern for clarity
-    than efficiency. Thus, <a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processors</a>
-    and <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">API Implementations</a> may
-    implement the algorithms given in this specification in any way desired,
-    so long as the end result is indistinguishable from the result that would
-    be obtained by the specification's algorithms.</p>
-
-  <div class="note"><div class="note-title"><span>Note</span></div><p class="">Implementers can partially check their level of conformance to
-    this specification by successfully passing the test cases of the JSON-LD test
-    suite [<cite><a class="bibref" href="#bib-JSON-LD-TESTS">JSON-LD-TESTS</a></cite>]. Note, however, that passing all the tests in the test
-    suite does not imply complete conformance to this specification. It only implies
-    that the implementation conforms to aspects tested by the test suite.</p></div>
-</div>
-<!-- end of Conformance section -->
-
-
-
-<div class="section" id="general-terminology">
-
-<!--OddPage-->
-<h2><span class="secno">4. </span>General Terminology</h2>
-
-  <p>This document uses the following terms as defined in JSON [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]. Refer
-    to the <em>JSON Grammar</em> section in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>] for formal definitions.</p>
-
-  <dl>
-    <dt><dfn title="json-object" id="dfn-json-object">JSON object</dfn></dt>
-    <dd>An object structure is represented as a pair of curly brackets surrounding
-      zero or more key-value pairs. A key is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.
-      A single colon comes after each key, separating the key from the value.
-      A single comma separates a value from a following key. In contrast to JSON,
-      in JSON-LD the keys in an object must be unique.</dd>
-    <dt><dfn title="array" id="dfn-array">array</dfn></dt>
-    <dd>An array structure is represented as square brackets surrounding zero
-      or more values. Values are separated by commas.
-      In JSON, an array is an <em>ordered</em> sequence of zero or more values.
-      While JSON-LD uses the same array representation as JSON,
-      the collection is <em>unordered</em> by default. While order is
-      preserved in regular JSON arrays, it is not in regular JSON-LD arrays
-      unless specifically defined (see
-      <cite><a href="../json-ld/#sets-and-lists">Sets and Lists</a></cite> in
-      the JSON-LD specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>]).</dd>
-    <dt><dfn title="string" id="dfn-string">string</dfn></dt>
-    <dd>A string is a sequence of zero or more Unicode characters,
-      wrapped in double quotes, using backslash escapes (if necessary). A
-      character is represented as a single character string.</dd>
-    <dt><dfn title="number" id="dfn-number">number</dfn></dt>
-    <dd>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.</dd>
-    <dt><dfn title="true" id="dfn-true">true</dfn> and <dfn title="false" id="dfn-false">false</dfn></dt>
-    <dd>Values that are used to express one of two possible boolean states.</dd>
-    <dt><dfn title="null" id="dfn-null">null</dfn></dt>
-    <dd>The <a class="tref internalDFN" title="null" href="#dfn-null">null</a> value. A key-value pair in the
-      <code>@context</code> where the value, or the <code>@id</code> of the
-      value, is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> explicitly decouples a term's association
-      with an <abbr title="Internationalized Resource Identifier">IRI</abbr>. A key-value pair in the body of a JSON-LD document whose
-      value is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> has the same meaning as if the key-value pair
-      was not defined. If <code>@value</code>, <code>@list</code>, or
-      <code>@set</code> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in expanded form, then
-      the entire <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is ignored.</dd>
-  </dl>
-
-  <p>Furthermore, the following terminology is used throughout this document:</p>
-
-  <dl>
-    <dt><dfn title="keyword" id="dfn-keyword">keyword</dfn></dt>
-    <dd>A JSON key that is specific to JSON-LD, specified in the section
-      <cite><a href="../json-ld/#syntax-tokens-and-keywords">Syntax Tokens and Keywords</a></cite>
-      of the JSON-LD specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>].</dd>
-    <dt><dfn title="context" id="dfn-context">context</dfn></dt>
-    <dd>A set of rules for interpreting a JSON-LD document as specified in the section
-      <cite><a href="../json-ld/#the-context">The Context</a></cite> of the JSON-LD
-      specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>].</dd>
-    <dt><dfn title="json-ld-document" id="dfn-json-ld-document">JSON-LD document</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> is a serialization of a collection of
-      <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graphs</a> and comprises exactly one
-      <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> and zero or more <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graphs</a>.</dd>
-    <dt><dfn title="named-graph" id="dfn-named-graph">named graph</dfn></dt>
-    <dd>A named graph is a pair consisting of an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>
-      (the <dfn title="graph-name" id="dfn-graph-name">graph name</dfn>) and a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>.</dd>
-    <dt><dfn title="default-graph" id="dfn-default-graph">default graph</dfn></dt>
-    <dd>The default graph is the only graph in a JSON-LD document which has no <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a>.</dd>
-    <dt><dfn title="json-ld-graph" id="dfn-json-ld-graph">JSON-LD graph</dfn></dt>
-    <dd>A labeled directed graph, i.e., a set of <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>
-      connected by <a class="tref internalDFN" title="edge" href="#dfn-edge">edges</a>,
-      as specified in the <cite><a href="../json-ld/#data-model">Data Model</a></cite>
-      section of the JSON-LD specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>].</dd>
-    <dt><dfn title="edge" id="dfn-edge">edge</dfn></dt>
-    <dd>Every <a class="tref internalDFN" title="edge" href="#dfn-edge">edge</a> has a direction associated with it and is labeled with
-      an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. Within the JSON-LD syntax
-      these edge labels are called <dfn title="property" id="dfn-property">properties</dfn>. Whenever possible, an
-      <a class="tref internalDFN" title="edge" href="#dfn-edge">edge</a> should be labeled with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</dd>
-    <dt><dfn title="node" id="dfn-node">node</dfn></dt>
-    <dd>Every <a class="tref internalDFN" title="node" href="#dfn-node">node</a> is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>,
-      a <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a>, or a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>.</dd>
-    <dt><dfn title="iri" id="dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></dfn></dt>
-    <dd>An <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> (Internationalized Resource Identifier) is a string that conforms to the syntax
-      defined in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>].</dd>
-    <dt><dfn title="absolute-iri" id="dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn></dt>
-    <dd>An absolute <abbr title="Internationalized Resource Identifier">IRI</abbr> is defined in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>] containing a <em>scheme</em> along with a <em>path</em> and
-      optional <em>query</em> and fragment segments.</dd>
-    <dt><dfn title="relative-iri" id="dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn></dt>
-    <dd>A relative <abbr title="Internationalized Resource Identifier">IRI</abbr> is an <abbr title="Internationalized Resource Identifier">IRI</abbr> that is relative some other <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>;
-      in the case of JSON-LD this is the base location of the document.</dd>
-    <dt><dfn title="blank-node" id="dfn-blank-node">blank node</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> that is neither an
-      <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, nor a <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a>, nor a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>.</dd>
-    <dt><dfn title="blank-node-identifier" id="dfn-blank-node-identifier">blank node identifier</dfn></dt>
-    <dd>A blank node identifier is a string that can be used as an identifier for a
-      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> within the scope of a JSON-LD document. Blank node identifiers
-      begin with <code>_:</code>.</dd>
-    <dt><dfn title="json-ld-value" id="dfn-json-ld-value">JSON-LD value</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, a <a class="tref internalDFN" title="number" href="#dfn-number">number</a>,
-      <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, a <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>, or a
-      <a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged string</a>.</dd>
-    <dt><dfn title="typed-value" id="dfn-typed-value">typed value</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a> consists of a value, which is a string, and a type,
-      which is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</dd>
-    <dt><dfn title="language-tagged-string" id="dfn-language-tagged-string">language-tagged string</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged string</a> consists of a string and a non-empty language
-      tag as defined by [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>]. The language tag must be well-formed according to
-      <a href="http://tools.ietf.org/html/bcp47#section-2.2.9">section 2.2.9 Classes of Conformance</a>
-      of [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>], and is normalized to lowercase.</dd>
-    <dt><dfn title="list" id="dfn-list">list</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="list" href="#dfn-list">list</a> is an ordered sequence of <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
-      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>, and
-      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a>.</dd>
-  </dl>
-</div>
-<!-- end of General Terminology section -->
-
-
-
-<div class="section" id="algorithm-terms">
-
-<!--OddPage-->
-<h2><span class="secno">5. </span>Algorithm Terms</h2>
-
-  <dl>
-    <dt><dfn title="active-graph" id="dfn-active-graph">active graph</dfn></dt>
-    <dd>The name of the currently active graph that the processor should use when
-      processing.</dd>
-    <dt><dfn title="active-subject" id="dfn-active-subject">active subject</dfn></dt>
-    <dd>The currently active subject that the processor should use when
-      processing.</dd>
-    <dt><dfn title="active-property" id="dfn-active-property">active property</dfn></dt>
-    <dd>The currently active <a class="tref internalDFN" title="property" href="#dfn-property">property</a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> that
-      the processor should use when processing.</dd>
-    <dt><dfn title="active-context" id="dfn-active-context">active context</dfn></dt>
-    <dd>A context that is used to resolve <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> while
-      the processing algorithm is running.</dd>
-    <dt><dfn title="local-context" id="dfn-local-context">local context</dfn></dt>
-    <dd>A context that is specified within a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>,
-      specified via the <code>@context</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>.</dd>
-    <dt><dfn title="json-ld-input" id="dfn-json-ld-input">JSON-LD input</dfn></dt>
-    <dd>The JSON-LD data structure that is provided as input to the algorithm.</dd>
-    <dt><dfn title="term" id="dfn-term">term</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is a short word defined in a context that may be expanded to
-      an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a></dd>
-    <dt><dfn title="compact-iri" id="dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn></dt>
-    <dd>A compact <abbr title="Internationalized Resource Identifier">IRI</abbr> has the form of <dfn title="prefix" id="dfn-prefix">prefix</dfn>:<em>suffix</em> and is used as a way
-      of expressing an <abbr title="Internationalized Resource Identifier">IRI</abbr> without needing to define separate <a class="tref internalDFN" title="term" href="#dfn-term">term</a> definitions for
-      each <abbr title="Internationalized Resource Identifier">IRI</abbr> contained within a common vocabulary identified by <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>.</dd>
-    <dt><dfn title="node-object" id="dfn-node-object">node object</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> represents zero or more properties of a
-      <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in the <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> serialized by the
-      JSON-LD document. A <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>
-      if it exists outside of the JSON-LD <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and:
-      <ul>
-        <li>it does not contain the <code>@value</code>, <code>@list</code>,
-          or <code>@set</code> keywords, or</li>
-        <li>it is not the top-most <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> in the JSON-LD document consisting
-          of no other members than <code>@graph</code> and <code>@context</code>.</li>
-      </ul>
-    </dd>
-    <dt><dfn title="value-object" id="dfn-value-object">value object</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that has an <code>@value</code>
-      member.</dd>
-    <dt><dfn title="list-object" id="dfn-list-object">list object</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that has an <code>@list</code>
-      member.</dd>
-    <dt><dfn title="set-object" id="dfn-set-object">set object</dfn></dt>
-    <dd>A <a class="tref internalDFN" title="set-object" href="#dfn-set-object">set object</a> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that has an <code>@set</code>
-      member.</dd>
-    <dt><dfn title="scalar" id="dfn-scalar">scalar</dfn></dt>
-    <dd>A scalar is either a JSON <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, <a class="tref internalDFN" title="number" href="#dfn-number">number</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
-      or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>.</dd>
-    <dt><dfn title="rdf-subject" id="dfn-rdf-subject">RDF subject</dfn></dt>
-    <dd>A <a class="tref externalDFN" title="subject" href="http://www.w3.org/TR/rdf11-concepts/#dfn-subject">subject</a>
-      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</dd>
-    <dt><dfn title="rdf-predicate" id="dfn-rdf-predicate">RDF predicate</dfn></dt>
-    <dd>A <a class="tref externalDFN" title="predicate" href="http://www.w3.org/TR/rdf11-concepts/#dfn-predicate">predicate</a>
-      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</dd>
-    <dt><dfn title="rdf-object" id="dfn-rdf-object">RDF object</dfn></dt>
-    <dd>An <a class="tref externalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object">object</a>
-      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</dd>
-    <dt><dfn title="rdf-triple" id="dfn-rdf-triple">RDF triple</dfn></dt>
-    <dd>A <a class="tref externalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a>
-      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</dd>
-    <dt><dfn title="rdf-dataset" id="dfn-rdf-dataset">RDF dataset</dfn></dt>
-    <dd>A <a class="tref externalDFN" title="dataset" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset">dataset</a>
-      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>] representing a collection of
-      <a class="tref externalDFN" title="rdf-graphs" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-graph">RDF graphs</a>.</dd>
-  </dl>
-</div>
-<!-- end of Algorithm Terms section -->
-
-
-
-<div class="section" id="context-processing-algorithms">
-
-<!--OddPage-->
-<h2><span class="secno">6. </span>Context Processing Algorithms</h2>
-
-  <div class="section" id="context-processing-algorithm">
-    <h3><span class="secno">6.1 </span>Context Processing Algorithm</h3>
-
-    <p>When processing a JSON-LD data structure, each processing rule is applied
-      using information provided by the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. This
-      section describes how to produce an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</p>
-
-    <p>The <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> contains the active
-      <dfn title="term-definition" id="dfn-term-definition">term definitions</dfn> which specify how
-      properties and values have to be interpreted as well as the current <dfn title="base-iri" id="dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn>,
-      the <dfn title="vocabulary-mapping" id="dfn-vocabulary-mapping">vocabulary mapping</dfn> and the <dfn title="default-language" id="dfn-default-language">default language</dfn>. Each
-      <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> consists of an <dfn title="iri-mapping" id="dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</dfn>, a boolean
-      flag <dfn title="reverse-property" id="dfn-reverse-property">reverse property</dfn>, an optional <dfn title="type-mapping" id="dfn-type-mapping">type mapping</dfn>
-      or <dfn title="language-mapping" id="dfn-language-mapping">language mapping</dfn>, and an optional  <dfn title="container-mapping" id="dfn-container-mapping">container mapping</dfn>.
-      A <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> can not only be used to map a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-      to an <abbr title="Internationalized Resource Identifier">IRI</abbr>, but also to map a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> to a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>,
-      in which case it is referred to as a <dfn title="keyword-alias" id="dfn-keyword-alias">keyword alias</dfn>.</p>
-
-    <p>When processing, the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is initialized
-      without any <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definitions</a>,
-      <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, or <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>.
-      If a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is encountered during processing, a new
-      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is created by cloning the existing
-      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. Then the information from the
-      <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is merged into the new <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.
-      Given that <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local contexts</a> may contain
-      references to remote contexts, this includes their retrieval.</p>
-
-    <div class="informative section">
-      <h4 id="overview">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>First we prepare a new <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> <i>result</i> by cloning
-        the current <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. Then we normalize the form of the passed
-        <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.
-        <a class="tref internalDFN" title="local-context" href="#dfn-local-context">Local contexts</a> may be in the form of a
-        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, or an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing
-        a combination of the two. Finally we process each <a class="tref internalDFN" title="context" href="#dfn-context">context</a> contained
-        in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> <a class="tref internalDFN" title="array" href="#dfn-array">array</a> as follows.</p>
-
-      <p>If <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, it represents a reference to
-        a remote context. We dereference the remote context and replace <a class="tref internalDFN" title="context" href="#dfn-context">context</a>
-        with the value of the <code>@context</code> key of the top-level object in the
-        retrieved JSON-LD document. If there's no such key, an invalid remote context has
-        been detected. Otherwise, we process <a class="tref internalDFN" title="context" href="#dfn-context">context</a> by recursively using
-        this algorithm ensuring that there is no cyclical reference.</p>
-
-      <p>If <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, we first update the
-        <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, the <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, and the
-        <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a> by processing three specific keywords:
-        <code>@base</code>, <code>@vocab</code>, and <code>@language</code>.
-        These are handled before any other keys in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> because
-        they affect how the other keys are processed.</p>
-
-      <p>Then, for every other key in <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, we update
-        the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <i>result</i>. Since
-        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definitions</a> in a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>
-        may themselves contain <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or
-        <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>, we may need to recurse.
-        When doing so, we must ensure that there is no cyclical dependency,
-        which is an error. After we have processed any
-        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> dependencies,
-        we update the current <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>,
-        which may be a <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword alias</a>.</p>
-
-      <p>Finally, we return <i>result</i> as the new <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm">Algorithm</h4>
-
-      <p>This algorithm specifies how a new <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is updated
-        with a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>. The algorithm takes three input variables:
-        an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and an  <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-        <i>remote contexts</i> which is used to detect cyclical context inclusions.
-        If <i>remote contexts</i> is not passed, it is initialized to an empty
-        <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</p>
-
-      <ol class="algorithm">
-        <li>Initialize <i>result</i> to the result of cloning
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
-        <li>If <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
-          set it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
-          <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
-        <li>
-          For each item <i>context</i> in <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>:
-          <ol class="algorithm">
-            <li>If <i>context</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set <i>result</i> to a
-              newly-initialized <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and continue with the
-              next <i>context</i>.</li>
-            <li>If <i>context</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>,
-              <ol class="algorithm">
-                <li>Set <i>context</i> to the result of resolving <i>value</i> against
-                  the base <abbr title="Internationalized Resource Identifier">IRI</abbr> which is established as specified in
-                  <cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1">section 5.1 Establishing a Base URI</a></cite>
-                  of [<cite><a class="bibref" href="#bib-RFC3986">RFC3986</a></cite>]. Only the basic algorithm in
-                  <cite><a href="http://tools.ietf.org/html/rfc3986#section-5.2">section 5.2</a></cite>
-                  of [<cite><a class="bibref" href="#bib-RFC3986">RFC3986</a></cite>] is used; neither
-                  <cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.2">Syntax-Based Normalization</a></cite> nor
-                  <cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.3">Scheme-Based Normalization</a></cite>
-                  are performed. Characters additionally allowed in <abbr title="Internationalized Resource Identifier">IRI</abbr>
-                  references are treated in the same way that unreserved
-                  characters are treated in URI references, per
-                  <cite><a href="http://tools.ietf.org/html/rfc3987#section-6.5">section 6.5</a></cite>
-                  of [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>].</li>
-                <li>If <i>context</i> is in the <i>remote contexts</i> array, a
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.recursive-context-inclusion">recursive context inclusion</a></code>
-                  error has been detected and processing is aborted;
-                  otherwise, add <i>context</i> to <i>remote contexts</i>.</li>
-                <li>Initialize <i>context no base</i> to the result of cloning the
-                  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
-                <li>Remove the <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> of <i>context no base</i>.</li>
-                <li>Dereference <i>context</i>. If the dereferenced document has no
-                  top-level <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with an <code>@context</code> member, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-remote-context">invalid remote context</a></code>
-                  has been detected and processing is aborted; otherwise,
-                  set <i>context</i> to the value of that member.</li>
-                <li>Set <i>context</i> to the result of recursively calling this algorithm,
-                  passing <i>context no base</i> for <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-                  <i>context</i> for <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>remote contexts</i>.</li>
-                <li>If <i>context</i> has no <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> but <i>result</i> does,
-                  set the <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> of <i>context</i> to the one of
-                  <i>result</i>.</li>
-                <li>Overwrite <i>result</i> with <i>context</i> and continue with the
-                  next <i>context</i>.</li>
-              </ol>
-            </li><li>If <i>context</i> is not a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-local-context">invalid local context</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>If <i>context</i> has an <code>@base</code> key:
-              <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 1</span>: @base keyword</div><div class="atrisk">
-                <p class="atrisk-head">Note: This feature is
-                  <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
-                  be removed from this specification based on feedback. Please send feedback to
-                  <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
-                  For the current status see
-                  <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
-                <p>Support for the <code>@base</code> keyword might be removed from JSON-LD 1.0 if
-                  implementation experience reveals that the fact that a document may have multiple
-                  base IRIs is confusing for developers. It is also being discussed whether relative
-                  IRIs are allowed as values of <code>@base</code> or whether the empty string should
-                  be used to explicitly specify that there isn't a base <abbr title="Internationalized Resource Identifier">IRI</abbr>, which could be used to
-                  ensure that relative IRIs remain relative when expanding.</p>
-              </div></div>
-              <ol class="algorithm">
-                <li>Initialize <i>value</i> to the value associated with the
-                  <code>@base</code> key.</li>
-                <li>If <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, remove the
-                  <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> of <i>result</i>.</li>
-                <li>Otherwise, if <i>value</i> is an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-                  the <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> of <i>result</i> is set to <i>value</i>.
-                  If it is not an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-base-IRI">invalid base <abbr title="Internationalized Resource Identifier">IRI</abbr></a></code>
-                  error has been detected and processing is aborted.</li>
-              </ol>
-            </li>
-            <li>If <i>context</i> has an <code>@vocab</code> key:
-              <ol class="algorithm">
-                <li>Initialize <i>value</i> to the value associated with the
-                  <code>@vocab</code> key.</li>
-                <li>If <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, remove
-                  any <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a> from <i>result</i>.</li>
-                <li>Otherwise, if <i>value</i> is an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-                  the <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a> of <i>result</i> is set
-                  to <i>value</i>. If it is not an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-vocab-mapping">invalid vocab mapping</a></code>
-                  error has been detected and processing is aborted.</li>
-              </ol>
-            </li>
-            <li>If <i>context</i> has an <code>@language</code> key:
-              <ol class="algorithm">
-                <li>Initialize <i>value</i> to the value associated with the
-                  <code>@language</code> key.</li>
-                <li>If <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, remove
-                  any <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a> from <i>result</i>.</li>
-                <li>Otherwise, if <i>value</i> is <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, the
-                  <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a> of <i>result</i> is set to
-                  lowercased <i>value</i>. If it is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-default-language">invalid default language</a></code>
-                  error has been detected and processing is aborted.</li>
-              </ol>
-            </li>
-            <li>Create a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>defined</i> to use to keep
-              track of whether or not a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> has already been defined
-              or currently being defined during recursion.</li>
-            <li>For each <i>key</i>-<i>value</i> pair in <i>context</i> where
-              <i>key</i> is not <code>@base</code>, <code>@vocab</code>, or
-              <code>@language</code>, invoke the
-              <a href="#create-term-definition">Create Term Definition algorithm</a>,
-              passing <i>result</i> for <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-              <i>context</i> for <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, <i>key</i>,
-              and <i>defined</i>.</li>
-          </ol>
-        </li>
-        <li>Return <i>result</i>.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Context Processing -->
-
-
-  <div class="section" id="create-term-definition">
-    <h3><span class="secno">6.2 </span>Create Term Definition</h3>
-
-    <p>This algorithm is called from the
-      <a href="#context-processing-algorithm">Context Processing algorithm</a>
-      to create a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>
-      for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> being processed in a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</p>
-
-    <div class="informative section">
-      <h4 id="overview-1">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">Term definitions</a> are created by
-        parsing the information in the given <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> for the
-        given <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. If the given <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is a
-        <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, it may omit an <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> by
-        depending on its <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> having its own
-        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>. If the <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> is
-        a key in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, then its <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
-        must first be created, through recursion, before continuing. Because a
-        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> can depend on other
-        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definitions</a>, a mechanism must
-        be used to detect cyclical dependencies. The solution employed here
-        uses a map, <i>defined</i>, that keeps track of whether or not a
-        <a class="tref internalDFN" title="term" href="#dfn-term">term</a> has been defined or is currently in the process of
-        being defined. This map is checked before any recursion is attempted.</p>
-
-      <p>After all dependencies for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> have been defined, the rest of
-        the information in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> for the given
-        <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is taken into account, creating the appropriate
-        <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>, <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>, and
-        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> for the
-        <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-1">Algorithm</h4>
-
-      <p>The algorithm has four required inputs which are:
-        an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>,
-        a <i>term</i>, and a map <i>defined</i>.</p>
-
-      <ol class="algorithm">
-        <li>If <i>defined</i> contains the key <i>term</i> and the associated
-          value is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> (indicating that the
-          <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has already been created), return. Otherwise,
-          if the value is <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, a
-          <code class="error"><a href="#idl-def-JsonLdErrorCode.cyclic-IRI-mapping">cyclic <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
-          error has been detected and processing is aborted.</li>
-        <li>Set the value associated with <i>defined</i>'s <i>term</i> key to
-          <a class="tref internalDFN" title="false" href="#dfn-false">false</a>. This indicates that the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
-          is now being created but is not yet complete.</li>
-        <li>Since <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> cannot be overridden,
-          <i>term</i> must not be a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. Otherwise, a
-          <code class="error"><a href="#idl-def-JsonLdErrorCode.keyword-redefinition">keyword redefinition</a></code>
-          error has been detected and processing is aborted.</li>
-        <li>Remove any existing <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> for <i>term</i> in
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
-        <li>Initialize <i>value</i> to the value associated with the key
-          <i>term</i> in <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
-        <li>If <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or <i>value</i>
-          is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing the key-value pair
-          <code>@id</code>-<a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set the
-          <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to
-          <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set the value associated with <i>defined</i>'s
-          key <i>term</i> to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, and return.</li>
-        <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>:
-          <ol class="algorithm">
-            <li>Expand <i>value</i> by setting it to the result of
-              using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>,
-              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>value</i>,
-              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
-              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i>,
-              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>defined</i>.</li>
-            <li>If <i>value</i> is <code>@context</code>, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-keyword-alias">invalid keyword alias</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>Set the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> for the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
-              for <i>term</i> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to <i>value</i>,
-              set the value associated with <i>defined</i>'s key <i>term</i> to
-              <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, and return.</li>
-          </ol>
-        </li>
-        <li>Otherwise, <i>value</i> must be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, if not, an
-          <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-term-definition">invalid term definition</a></code>
-          error has been detected and processing is aborted.</li>
-        <li>Create a new <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>, <i>definition</i>.</li>
-        <li>If <i>value</i> contains the key <code>@reverse</code>:
-          <ol class="algorithm">
-            <li>If <i>value</i> contains an <code>@id</code>, an
-              <code>@type</code>, or an <code>@language</code>, member, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property">invalid reverse property</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>If the value associated with the <code>@reverse</code> key
-              is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>Otherwise, set the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> of <i>definition</i> to the
-              result of using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>,
-              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, the value associated with
-              the <code>@reverse</code> key for <i>value</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>
-              for <i>vocab</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i>,
-              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>defined</i>. If the result
-              is not an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, i.e., it contains no
-              colon (<code>:</code>), an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>Set the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of <i>definition</i> to
-              <code>@id</code>.</li>
-            <li>If <i>value</i> contains an <code>@container</code> member,
-              set the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> of <i>definition</i>
-              to <code>@index</code> if that is the value of the
-              <code>@container</code> member; otherwise an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property">invalid reverse property</a></code>
-              error has been detected (reverse properties only support
-              index-containers) and processing is aborted.</li>
-            <li>Set the <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a> flag of <i>definition</i>
-              to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>.</li>
-            <li>Set the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> of <i>term</i> in
-              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to <i>definition</i> and the
-              value associated with <i>defined</i>'s key <i>term</i> to
-              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and return.</li>
-          </ol>
-        </li>
-        <li>Set the <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a> flag of <i>definition</i>
-          to <a class="tref internalDFN" title="false" href="#dfn-false">false</a>.</li>
-        <li>If <i>value</i> contains the key <code>@id</code>:
-          <ol class="algorithm">
-            <li>If the value associated with the <code>@id</code> key is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>Otherwise, set the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> of <i>definition</i> to the
-              result of using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
-              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, the value associated with the <code>@id</code> key for
-              <i>value</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
-              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i>,
-              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>defined</i>.</li>
-          </ol>
-        </li>
-        <li>
-          Otherwise if the <i>term</i> contains a colon (<code>:</code>):
-          <ol class="algorithm">
-            <li>If <i>term</i> is a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> with a
-              <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> that is a key in <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>
-              a dependency has been found. Use this algorithm recursively passing
-              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, the
-              <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> as <i>term</i>, and <i>defined</i>.</li>
-            <li>If <i>term</i>'s <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> has a
-              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, set
-              the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> of <i>definition</i> to the result of
-              concatenating the value associated with the <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>'s
-              <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> and the <i>term</i>'s <i>suffix</i>.</li>
-            <li>Otherwise, <i>term</i> is an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Set the
-              <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> of <i>definition</i> to <i>term</i>.</li>
-          </ol>
-        </li>
-        <li>Otherwise, if <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a
-          <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>
-          of <i>definition</i> is set to the result of concatenating the value
-          associated with the <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a> and <i>term</i>.
-          If it does not have a <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, an
-          <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
-          error been detected and processing is aborted.</li>
-        <li>If <i>value</i> contains the key <code>@type</code>:
-          <ol class="algorithm">
-            <li>Initialize <i>type</i> to the value associated with the
-              <code>@type</code> key, which must be a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>. Otherwise, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-mapping">invalid type mapping</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>Set <i>type</i> to the result of using the
-              <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
-              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>type</i> for <i>value</i>,
-              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
-              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i>,
-              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>defined</i>. If the expanded <i>type</i> is
-              neither <code>@id</code>, nor <code>@vocab</code>, nor an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-mapping">invalid type mapping</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>Set the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> for <i>definition</i> to <i>type</i>.</li>
-          </ol>
-        </li>
-        <li>If <i>value</i> contains the key <code>@container</code>:
-          <ol class="algorithm">
-            <li>Initialize <i>container</i> to the value associated with the
-              <code>@container</code> key, which must be either
-              <code>@list</code>, <code>@set</code>, <code>@index</code>,
-              or <code>@language</code>. Otherwise, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-container-mapping">invalid container mapping</a></code> error
-              has been detected and processing is aborted.</li>
-            <li>Set the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> of <i>definition</i> to
-              <i>container</i>.</li>
-          </ol>
-        </li>
-        <li>If <i>value</i> contains the key <code>@language</code> and
-          does not contain the key <code>@type</code>:
-          <ol class="algorithm">
-            <li>Initialize <i>language</i> to the value associated with the
-              <code>@language</code> key, which must be either <a class="tref internalDFN" title="null" href="#dfn-null">null</a>
-              or a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>. Otherwise, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-mapping">invalid language mapping</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>If <i>language</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> set it to
-              lowercased <i>language</i>. Set the <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>
-              of <i>definition</i> to <i>language</i>.</li>
-          </ol>
-        </li>
-        <li>Set the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> of <i>term</i> in
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to <i>definition</i> and set the value
-          associated with <i>defined</i>'s key <i>term</i> to
-          <a class="tref internalDFN" title="true" href="#dfn-true">true</a>.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Term Creation -->
-
-
-  <div class="section" id="iri-expansion">
-    <h3><span class="secno">6.3 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion</h3>
-
-    <p>In JSON-LD documents, some keys and values may represent
-      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>. This section defines an algorithm for
-      transforming a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> that represents an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> into
-      an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.
-      It also covers transforming <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword aliases</a>
-      into <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>.</p>
-
-    <p><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> expansion may occur during context processing or during
-      any of the other JSON-LD algorithms. If <abbr title="Internationalized Resource Identifier">IRI</abbr> expansion occurs during context
-      processing, then the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> and its related <i>defined</i>
-      map from the <a href="#context-processing-algorithm">Context Processing algorithm</a>
-      are passed to this algorithm. This allows for <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
-      dependencies to be processed via the
-      <a href="#create-term-definition">Create Term Definition algorithm</a>.</p>
-
-    <div class="informative section">
-      <h4 id="overview-2">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>In order to expand <i>value</i> to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, we must
-        first determine if it is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, a
-        <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword alias</a>, or some form of <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Based on what
-        we find, we handle the specific kind of expansion; for example, we expand
-        a <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword alias</a> to a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> and a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-        to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> according to its <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>
-        in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. While inspecting <i>value</i> we
-        may also find that we need to create <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
-        dependencies because we're running this algorithm during context processing.
-        We can tell whether or not we're running during context processing by
-        checking <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> against <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.
-        We know we need to create a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in the
-        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> when <i>value</i> is
-        a key in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> and the <i>defined</i> map
-        does not have a key for <i>value</i> with an associated value of
-        <a class="tref internalDFN" title="true" href="#dfn-true">true</a>. The <i>defined</i> map is used during
-        <a href="#context-processing-algorithm">Context Processing</a> to keep track of
-        which <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> have already been defined or are
-        in the process of being defined. We create a
-        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> by using the
-        <a href="#create-term-definition">Create Term Definition algorithm</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-2">Algorithm</h4>
-
-      <p>The algorithm takes two required and four optional input variables. The
-        required inputs are an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and a <i>value</i>
-        to be expanded. The optional inputs are two flags,
-        <i>document relative</i> and <i>vocab</i>, that specifying
-        whether <i>value</i> can be interpreted as a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-        against the document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or the
-        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
-        <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, respectively, and
-        a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> and a map <i>defined</i> to be used when
-        this algorithm is used during <a href="#context-processing-algorithm">Context Processing</a>.
-        If not passed, the two flags are set to <code>false</code> and
-        <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> and <i>defined</i> are initialized to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-      <ol class="algorithm">
-        <li>If <i>value</i> is a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
-          return <i>value</i> as is.</li>
-        <li>If <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, it contains
-          a key that equals <i>value</i>, and the value associated with the key
-          that equals <i>value</i> in <i>defined</i> is not <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
-          invoke the <a href="#create-term-definition">Create Term Definition algorithm</a>,
-          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>,
-          <i>value</i> as <i>term</i>, and <i>defined</i>. This will ensure that
-          a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> is created for <i>value</i> in
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> during <a href="#context-processing-algorithm">Context Processing</a>.
-        </li>
-        <li>If <i>vocab</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and the
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> for
-          <i>value</i>, return the associated <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>.</li>
-        <li>If <i>value</i> contains a colon (<code>:</code>), it is either
-          an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>:
-          <ol class="algorithm">
-            <li>Split <i>value</i> into a <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> and <i>suffix</i>
-              at the first occurrence of a colon (<code>:</code>).</li>
-            <li>If <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> is underscore (<code>_</code>)
-              or <i>suffix</i> begins with double-forward-slash
-              (<code>//</code>), return <i>value</i> as it is already an
-              <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
-            <li>If <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, it
-              contains a key that equals <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>, and the value
-              associated with the key that equals <i>prefix</i> in <i>defined</i>
-              is not <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, invoke the
-              <a href="#create-term-definition">Create Term Definition algorithm</a>,
-              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, <i>prefix</i> as <i>term</i>,
-              and <i>defined</i>. This will ensure that a
-              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> is created for <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>
-              in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> during
-              <a href="#context-processing-algorithm">Context Processing</a>.</li>
-            <li>If <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> contains a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
-              for <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>, return the result of concatenating
-              the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> associated with <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> and
-              <i>suffix</i>.</li>
-            <li>Return <i>value</i> as it is already an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
-          </ol>
-        </li>
-        <li>If <i>vocab</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, and
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>,
-          return the result of concatenating the <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>
-          with <i>value</i>.</li>
-        <li>Otherwise, if <i>document relative</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
-          set <i>value</i> to the result of resolving <i>value</i> against
-          the <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Only the basic algorithm in
-          <cite><a href="http://tools.ietf.org/html/rfc3986#section-5.2">section 5.2</a></cite>
-          of [<cite><a class="bibref" href="#bib-RFC3986">RFC3986</a></cite>] is used; neither
-          <cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.2">Syntax-Based Normalization</a></cite> nor
-          <cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.3">Scheme-Based Normalization</a></cite>
-          are performed. Characters additionally allowed in <abbr title="Internationalized Resource Identifier">IRI</abbr> references are treated
-          in the same way that unreserved characters are treated in URI references, per
-          <cite><a href="http://tools.ietf.org/html/rfc3987#section-6.5">section 6.5</a></cite>
-          of [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>].</li>
-        <li>If <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and
-          <i>value</i> is not an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an
-          <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
-          error has been detected and processing is aborted.</li>
-        <li>Otherwise, return <i>value</i> as is.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of IRI Expansion -->
-
-</div>
-<!-- end of Context Processing section -->
-
-
-
-<div class="section" id="expansion-algorithms">
-
-<!--OddPage-->
-<h2><span class="secno">7. </span>Expansion Algorithms</h2>
-
-  <div class="section" id="expansion-algorithm">
-    <h3><span class="secno">7.1 </span>Expansion Algorithm</h3>
-
-    <p>This algorithm expands a JSON-LD document, such that all <a class="tref internalDFN" title="context" href="#dfn-context">context</a>
-      definitions are removed, all <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> and
-      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> are expanded to
-      <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>,
-      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>, or
-      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> and all
-      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a> are expressed in
-      <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a> in <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a>.</p>
-
-    <div class="informative section">
-      <h4 id="overview-3">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>Starting with its root <i>element</i>, we can process the
-        JSON-LD document recursively, until we have a fully
-        <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expanded</a> <i>result</i>. When
-        <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expanding</a> an <i>element</i>, we can treat
-        each one differently according to its type, in order to break down the
-        problem:</p>
-
-      <ol>
-        <li>If the <i>element</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, there is nothing
-          to expand.</li>
-        <li>Otherwise, if <i>element</i> is a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>, we expand it
-          according to the <a href="#value-expansion">Value Expansion algorithm</a>.</li>
-        <li>Otherwise, if the <i>element</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, then we expand
-          each of its items recursively and return them in a new
-          <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-        <li>Otherwise, <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. We expand
-          each of its keys, adding them to our <i>result</i>, and then we expand
-          each value for each key recursively. Some of the keys will be
-          <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or
-          <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> and others will be
-          <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> or simply ignored because
-          they do not have definitions in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. Any
-          <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> will be expanded using the
-          <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>.
-        </li>
-      </ol>
-
-      <p>Finally, after ensuring <i>result</i> is in an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
-        we return <i>result</i>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-3">Algorithm</h4>
-
-      <p>The algorithm takes three input variables: an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-        an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and an <i>element</i> to be expanded.
-        To begin, the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is set to the result of performing,
-        <a href="#context-processing-algorithm">Context Processing</a> on the passed
-        <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>,
-        or empty if <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
-        is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
-        and <i>element</i> is set to the <a class="tref internalDFN" title="json-ld-input" href="#dfn-json-ld-input">JSON-LD input</a>.</p>
-
-      <ol class="algorithm">
-        <li>If <i>element</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
-        <li>If <i>element</i> is a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>,
-          <ol class="algorithm">
-            <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or <code>@graph</code>,
-              drop the free-floating <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a> by returning <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
-            <li>Return the result of the
-              <a href="#value-expansion">Value Expansion algorithm</a>, passing the
-              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and
-              <i>element</i> as <i>value</i>.</li>
-          </ol>
-        </li>
-        <li>If <i>element</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
-          <ol class="algorithm">
-            <li>Initialize an empty array, <i>result</i>.</li>
-            <li>For each <i>item</i> in <i>element</i>:
-              <ol class="algorithm">
-                <li>Initialize <i>expanded item</i> to the result of using this
-                  algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-                  <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>item</i> as <i>element</i>.</li>
-                <li>If the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is <code>@list</code> or its
-                  <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> is set to <code>@list</code>, the
-                  <i>expanded item</i> must not be an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> or a
-                  <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, otherwise a
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists">list of lists</a></code>
-                  error has been detected and processing is aborted.</li>
-                <li>If <i>expanded item</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, append each
-                  of its items to <i>result</i>. Otherwise, if
-                  <i>expanded item</i> is not null, append it to <i>result</i>.</li>
-              </ol>
-            </li>
-            <li>Return <i>result</i>.</li>
-          </ol>
-        </li>
-        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-        <li>If <i>element</i> contains the key <code>@context</code>, set
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to the result of the
-          <a href="#context-processing-algorithm">Context Processing algorithm</a>,
-          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and the value of the
-          <code>@context</code> key as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
-        <li>Initialize an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, <i>result</i>.</li>
-        <li>For each <i>key</i> and <i>value</i> in <i>element</i>,
-          ordered lexicographically by <i>key</i>:
-          <ol class="algorithm">
-            <li>If <i>key</i> is <code>@context</code>, continue to
-              the next <i>key</i>.</li>
-            <li>Set <i>expanded property</i> to the result of
-              using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>,
-              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>key</i> for
-              <i>value</i>, and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>.</li>
-            <li>If <i>expanded property</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or it neither
-              contains a colon (<code>:</code>) nor it is a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>,
-              drop <i>key</i> by continuing to the next <i>key</i>.</li>
-            <li>If <i>expanded property</i> is a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>:
-              <ol class="algorithm">
-                <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> equals <code>@reverse</code>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-map">invalid reverse property map</a></code>
-                  error has been detected and processing is aborted.</li>
-                <li>If <i>result</i> has already an <i>expanded property</i> member, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.colliding-keywords">colliding keywords</a></code>
-                  error has been detected and processing is aborted.</li>
-                <li>If <i>expanded property</i> is <code>@id</code> and
-                  <i>value</i> is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--id-value">invalid @id value</a></code>
-                  error has been detected and processing is aborted. Otherwise,
-                  set <i>expanded value</i> to the result of using the
-                  <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>,
-                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>value</i>, and <a class="tref internalDFN" title="true" href="#dfn-true">true</a>
-                  for <i>document relative</i>.</li>
-                <li>If <i>expanded property</i> is <code>@type</code> and <i>value</i>
-                  is neither a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> nor an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of
-                  <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-value">invalid type value</a></code>
-                  error has been detected and processing is aborted. Otherwise,
-                  set <i>expanded value</i> to the result of using the
-                  <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
-                  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
-                  and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i> to expand the <i>value</i>
-                  or each of its items.</li>
-                <li>If <i>expanded property</i> is <code>@graph</code>, set
-                  <i>expanded value</i> to the result of using this algorithm
-                  recursively passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <code>@graph</code>
-                  for <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>value</i> for <i>element</i>.</li>
-                <li>If <i>expanded property</i> is <code>@value</code> and
-                  <i>value</i> is not a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a> or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object-value">invalid value object value</a></code>
-                  error has been detected and processing is aborted. Otherwise,
-                  set <i>expanded value</i> to <i>value</i>. If <i>expanded value</i>
-                  is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set the <code>@value</code>
-                  member of <i>result</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and continue with the
-                  next <i>key</i> from <i>element</i>. Null values need to be preserved
-                  in this case as the meaning of an <code>@type</code> member depends
-                  on the existence of an <code>@value</code> member.</li>
-                <li>If <i>expanded property</i> is <code>@language</code> and
-                  <i>value</i> is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-string">invalid language-tagged string</a></code>
-                  error has been detected and processing is aborted. Otherwise,
-                  set <i>expanded value</i> to lowercased <i>value</i>.</li>
-                <li>If <i>expanded property</i> is <code>@index</code> and
-                  <i>value</i> is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--index-value">invalid @index value</a></code>
-                  error has been detected and processing is aborted. Otherwise,
-                  set <i>expanded value</i> to <i>value</i>.</li>
-                <li>If <i>expanded property</i> is <code>@list</code>:
-                  <ol class="algorithm">
-                    <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or
-                      <code>@graph</code>, continue with the next <i>key</i>
-                      from <i>element</i> to remove the free-floating list..</li>
-                    <li>Otherwise, initialize <i>expanded value</i> to the result of using
-                      this algorithm recursively passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-                      <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>value</i> for <i>element</i>.</li>
-                    <li>If <i>expanded value</i> is a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, a
-                      <code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists">list of lists</a></code>
-                      error has been detected and processing is aborted.</li>
-                  </ol>
-                </li>
-                <li>If <i>expanded property</i> is <code>@set</code>, set
-                  <i>expanded value</i> to the result of using this algorithm
-                  recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-                  <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>value</i> for
-                  <i>element</i>.</li>
-                <li>If <i>expanded property</i> is <code>@reverse</code> and
-                  <i>value</i> is not a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, an
-                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value">invalid @reverse value</a></code>
-                  error has been detected and processing is aborted. Otherwise
-                  <ol class="algorithm">
-                    <li>Initialize <i>expanded value</i> to the result of using this
-                      algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-                      <code>@reverse</code> as <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and
-                      <i>value</i> as <i>element</i>.</li>
-                    <li>If <i>expanded value</i> contains an <code>@reverse</code> member,
-                      i.e., properties that are reversed twice, execute for each of its
-                      <i>property</i> and <i>item</i> the following steps:
-                      <ol class="algorithm">
-                        <li>If <i>result</i> does not have a <i>property</i> member, create
-                          one and set its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                        <li>Append <i>item</i> to the value of the <i>property</i> member
-                          of <i>result</i>.</li>
-                      </ol>
-                    </li>
-                    <li>If <i>expanded value</i> contains members other than <code>@reverse</code>:
-                      <ol class="algorithm">
-                        <li>If <i>result</i> does not have an <code>@reverse</code> member, create
-                          one and set its value to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-                        <li>Reference the value of the <code>@reverse</code> member in <i>result</i>
-                          using the variable <i>reverse map</i>.</li>
-                        <li>For each <i>property</i> and <i>items</i> in <i>expanded value</i>
-                          other than <code>@reverse</code>:
-                          <ol class="algorithm">
-                            <li>For each <i>item</i> in <i>items</i>:
-                              <ol class="algorithm">
-                                <li>If <i>item</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> or <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, an
-                                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value">invalid reverse property value</a></code>
-                                  has been detected and processing is aborted.</li>
-                                <li>If <i>reverse map</i> has no <i>property</i> member, create one
-                                  and initialize its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                                <li>Append <i>item</i> to the value of the <i>property</i>
-                                  member in <i>reverse map</i>.</li>
-                              </ol>
-                            </li>
-                          </ol>
-                        </li>
-                      </ol>
-                    </li>
-                    <li>Continue with the next <i>key</i> from <i>element</i>.</li>
-                  </ol>
-                </li>
-                <li>Unless <i>expanded value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set
-                  the <i>expanded property</i> member of <i>result</i> to
-                  <i>expanded value</i>.</li>
-                <li>Continue with the next <i>key</i> from <i>element.</i>.</li>
-              </ol>
-            </li>
-            <li>Otherwise, if <i>key</i>'s <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> in
-              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is <code>@language</code> and
-              <i>value</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> then <i>value</i>
-              is expanded from a <a class="tref externalDFN" title="language-map" href="../json-ld/#dfn-language-map">language map</a>
-              as follows:
-              <ol class="algorithm">
-                <li>Initialize <i>expanded value</i> to an empty
-                  <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                <li>For each key-value pair <i>language</i>-<i>language value</i>
-                  in <i>value</i>, ordered lexicographically by <i>language</i>:
-                  <ol class="algorithm">
-                    <li>If <i>language value</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-                      set it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
-                      <i>language value</i>.</li>
-                    <li>For each <i>item</i> in <i>language value</i>:
-                      <ol class="algorithm">
-                        <li><i>item</i> must be a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>,
-                          otherwise an
-                          <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-map-value">invalid language map value</a></code>
-                          error has been detected and processing is aborted.</li>
-                        <li>Append a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> to
-                          <i>expanded value</i> that consists of two
-                          key-value pairs: (<code>@value</code>-<i>item</i>)
-                          and (<code>@language</code>-lowercased
-                          <i>language</i>).</li>
-                      </ol>
-                    </li>
-                  </ol>
-                </li>
-              </ol>
-            </li>
-            <li>Otherwise, if <i>key</i>'s <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> in
-              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is <code>@index</code> and
-              <i>value</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> then <i>value</i>
-              is expanded from an index map as follows:
-              <ol class="algorithm">
-                <li>Initialize <i>expanded value</i> to an empty
-                  <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                <li>For each key-value pair <i>index</i>-<i>index value</i>
-                  in <i>value</i>, ordered lexicographically by <i>index</i>:
-                  <ol class="algorithm">
-                    <li>If <i>index value</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-                      set it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
-                      <i>index value</i>.</li>
-                    <li>Initialize <i>index value</i> to the result of
-                      using this algorithm recursively, passing
-                      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-                      <i>key</i> as <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>,
-                      and <i>index value</i> as <i>element</i>.</li>
-                    <li>For each <i>item</i> in <i>index value</i>:
-                      <ol class="algorithm">
-                        <li>If <i>item</i> does not have the key
-                          <code>@index</code>, add the key-value pair
-                          (<code>@index</code>-<i>index</i>) to
-                          <i>item</i>.</li>
-                        <li>Append <i>item</i> to <i>expanded value</i>.</li>
-                      </ol>
-                    </li>
-                  </ol>
-                </li>
-              </ol>
-            </li>
-            <li>Otherwise, initialize <i>expanded value</i> to the result of
-              using this algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-              <i>key</i> for <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>value</i>
-              for <i>element</i>.</li>
-            <li>If <i>expanded value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, ignore <i>key</i>
-              by continuing to the next <i>key</i> from <i>element</i>.</li>
-            <li>If the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> associated to <i>key</i> in
-              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is <code>@list</code> and
-              <i>expanded value</i> is not already a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>,
-              convert <i>expanded value</i> to a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>
-              by first setting it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
-              <i>expanded value</i> if it is not already an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
-              and then by setting it to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing
-              the key-value pair <code>@list</code>-<i>expanded value</i>.</li>
-            <li>Otherwise, if the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> associated to
-              <i>key</i> indicates that it is a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a>
-              <ol class="algorithm">
-                <li>If <i>result</i> has no <code>@reverse</code> member, create
-                  one and initialize its value to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-                <li>Reference the value of the <code>@reverse</code> member in <i>result</i>
-                  using the variable <i>reverse map</i>.
-                </li><li>If <i>expanded value</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set
-                  it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing <i>expanded value</i>.</li>
-                <li>For each <i>item</i> in <i>expanded value</i>
-                  <ol class="algorithm">
-                    <li>If <i>item</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> or <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, an
-                      <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value">invalid reverse property value</a></code>
-                      has been detected and processing is aborted.</li>
-                    <li>If <i>reverse map</i> has no <i>expanded property</i> member,
-                      create one and initialize its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                    <li>Append <i>item</i> to the value of the <i>expanded property</i>
-                      member of <i>reverse map</i>.</li>
-                  </ol>
-                </li>
-              </ol>
-            </li>
-            <li>Otherwise, if <i>key</i> is not a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a>:
-              <ol class="algorithm">
-                <li>If <i>result</i> does not have an <i>expanded property</i>
-                  member, create one and initialize its value to an empty
-                  <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                <li>Append <i>expanded value</i> to value of the <i>expanded property</i>
-                  member of <i>result</i>.</li>
-              </ol>
-            </li>
-          </ol>
-        </li>
-        <li>If <i>result</i> contains the key <code>@value</code>:
-          <ol class="algorithm">
-            <li>The <i>result</i> must not contain any keys other than
-              <code>@value</code>, <code>@language</code>, <code>@type</code>,
-              and <code>@index</code>. It must not contain both the
-              <code>@language</code> key and the <code>@type</code> key.
-              Otherwise, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object">invalid value object</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>If the value of <i>result</i>'s <code>@value</code> key is
-              <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, then set <i>result</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
-            <li>Otherwise, if the value of <i>result</i>'s <code>@value</code> member
-              is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> and <i>result</i> contains the key
-              <code>@language</code>, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-value">invalid language-tagged value</a></code>
-              error has been detected (only <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>
-              can be language-tagged) and processing is aborted.</li>
-            <li>Otherwise, if the <i>result</i> has a <code>@type</code> member
-              and its value is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-typed-value">invalid typed value</a></code>
-              error has been detected and processing is aborted.</li>
-          </ol>
-        </li>
-        <li>Otherwise, if <i>result</i> contains the key <code>@type</code>
-          and its associated value is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set it to
-          an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only the associated value.</li>
-        <li>Otherwise, if <i>result</i> contains the key <code>@set</code>
-          or <code>@list</code>:
-          <ol class="algorithm">
-            <li>The <i>result</i> must contain at most one other key and that
-              key must be <code>@index</code>. Otherwise, an
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-set-or-list-object">invalid set or list object</a></code>
-              error has been detected and processing is aborted.</li>
-            <li>If <i>result</i> contains the key <code>@set</code>, then
-              set <i>result</i> to the key's associated value.</li>
-          </ol>
-        </li>
-        <li>If <i>result</i> contains only the key
-          <code>@language</code>, set <i>result</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
-        <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or <code>@graph</code>,
-          drop free-floating values as follows:
-          <ol class="algorithm">
-            <li>If <i>result</i> is an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> or contains
-              the keys <code>@value</code> or <code>@list</code>, set <i>result</i> to
-              <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
-            <li>Otherwise, if <i>result</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> whose only
-              key is <code>@id</code>, set <i>result</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
-          </ol>
-        </li>
-        <li>Return <i>result</i>.</li>
-      </ol>
-
-      <p>If, after the above algorithm is run, the result is a
-        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that contains only an <code>@graph</code> key, set the
-        result to the value of <code>@graph</code>'s value. Otherwise, if the result
-        is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Finally, if
-        the result is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, then set the result to an
-        <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only the result.</p>
-    </div>
-  </div>
-<!-- end of Expansion Algorithm -->
-
-
-
-  <div class="section" id="value-expansion">
-    <h3><span class="secno">7.2 </span>Value Expansion</h3>
-
-    <p>Some values in JSON-LD can be expressed in a
-      <a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form">compact form</a>. These values are required
-      to be <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expanded</a> at times when processing
-      JSON-LD documents. A value is said to be in <dfn title="expanded-form" id="dfn-expanded-form">expanded form</dfn>
-      after the application of this algorithm.</p>
-
-    <div class="informative section">
-      <h4 id="overview-4">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> in the
-        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> set to <code>@id</code> or <code>@vocab</code>,
-        a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with a single member <code>@id</code> whose
-        value is the result of using the
-        <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a> on <i>value</i>
-        is returned.</p>
-
-      <p>Otherwise, the result will be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing
-        an <code>@value</code> member whose value is the passed <i>value</i>.
-        Additionally, an <code>@type</code> member will be included if there is a
-        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> associated with the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
-        or an <code>@language</code> member if <i>value</i> is a
-        <a class="tref internalDFN" title="string" href="#dfn-string">string</a> and there is <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> associated
-        with the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-4">Algorithm</h4>
-
-      <p>The algorithm takes three required inputs: an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-        an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and a <i>value</i> to expand.</p>
-
-      <ol class="algorithm">
-        <li>If the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
-          in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that is <code>@id</code>, return a new
-          <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing a single key-value pair where the
-          key is <code>@id</code> and the value is the result of using the
-          <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>value</i>, and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for
-          <i>document relative</i>.</li>
-        <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> in
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that is <code>@vocab</code>, return
-          a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing a single key-value pair
-          where the key is <code>@id</code> and the value is the result of
-          using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>value</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for
-          <i>vocab</i>, and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for
-          <i>document relative</i>.</li>
-        <li>Otherwise, initialize <i>result</i> to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
-          with an <code>@value</code> member whose value is set to
-          <i>value</i>.</li>
-        <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> in
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, add an <code>@type</code> member to
-          <i>result</i> and set its value to the value associated with the
-          <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>.</li>
-        <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>:
-          <ol class="algorithm">
-            <li>If a <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> is associated with
-              <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-              add an <code>@language</code> to <i>result</i> and set its
-              value to the language code associated with the
-              <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>; unless the
-              <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in
-              which case no member is added.</li>
-            <li>Otherwise, if the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a
-              <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>, add an <code>@language</code>
-              to <i>result</i> and set its value to the
-              <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>.</li>
-          </ol>
-        </li>
-        <li>Return <i>result</i>.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Value Expansion -->
-
-
-</div>
-<!-- end of Expansion section -->
-
-
-
-<div class="section" id="compaction-algorithms">
-
-<!--OddPage-->
-<h2><span class="secno">8. </span>Compaction Algorithms</h2>
-
-  <div class="section" id="compaction-algorithm">
-    <h3><span class="secno">8.1 </span>Compaction Algorithm</h3>
-
-    <p>This algorithm compacts a JSON-LD document, such that the given
-      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is applied. This must result in shortening
-      any applicable <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> to
-      <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or
-      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>, any applicable
-      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> to
-      <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword aliases</a>, and
-      any applicable <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a>
-      expressed in <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a> to simple values such as
-      <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> or
-      <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>.</p>
-
-    <div class="informative section">
-      <h4 id="overview-5">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>Starting with its root <i>element</i>, we can process the
-        JSON-LD document recursively, until we have a fully
-        <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compacted</a> <i>result</i>. When
-        <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compacting</a> an <i>element</i>, we can treat
-        each one differently according to its type, in order to break down the
-        problem:</p>
-
-      <ol>
-        <li>If the <i>element</i> is a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>, it is
-          already in <a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form">compacted form</a>, so we simply return it.</li>
-        <li>If the <i>element</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, we compact
-          each of its items recursively and return them in a new
-          <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. The value
-          of each key in element is compacted recursively. Some of the keys will be
-          compacted, using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-          to <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>
-          and others will be compacted from <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> to
-          <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword aliases</a> or simply left
-          unchanged because they do not have definitions in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>.
-          Values will be converted to <a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form">compacted form</a> via the
-          <a href="#value-compaction">Value Compaction algorithm</a>. Some data
-          will be reshaped based on <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>
-          specified in the context such as <code>@index</code> or <code>@language</code>
-          maps.</li>
-      </ol>
-
-      <p>The final output is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with a <code>@context</code>
-        key, if a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> was given, where the <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
-        is either <i>result</i> or a wrapper for it where <i>result</i> appears
-        as the value of an (aliased) <code>@graph</code> key because <i>result</i>
-        contained two or more items in an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-5">Algorithm</h4>
-
-      <p>The algorithm takes five required input variables: an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-        an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, an
-        <i>element</i> to be compacted, and a flag
-        <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>.
-        To begin, the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is set to the result of
-        performing <a href="#context-processing-algorithm">Context Processing</a>
-        on the passed <a class="tref internalDFN" title="context" href="#dfn-context">context</a>, the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> is
-        set to the result of performing the
-        <a href="#inverse-context-creation">Inverse Context Creation algorithm</a>
-        on <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is
-        set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, <i>element</i> is set to the result of
-        performing the <a href="#expansion-algorithm">Expansion algorithm</a>
-        on the <a class="tref internalDFN" title="json-ld-input" href="#dfn-json-ld-input">JSON-LD input</a>, and, if not passed,
-        <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
-        is set to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>.</p>
-
-      <ol class="algorithm">
-        <li>If <i>element</i> is a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>, it is already in its most
-          compact form, so simply return <i>element</i>.</li>
-        <li>If <i>element</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>:
-          <ol class="algorithm">
-            <li>Initialize <i>result</i> to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-            <li>For each <i>item</i> in <i>element</i>:
-              <ol class="algorithm">
-                <li>Initialize <i>compacted item</i> to the result of using this
-                  algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-                  <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and
-                  em&gt;item for <i>element</i>.</li>
-                <li>If <i>compacted item</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, then append
-                  it to <i>result</i>.</li>
-              </ol>
-            </li>
-            <li>If <i>result</i> contains only one item (it has a length of
-              <code>1</code>), <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has no
-              <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, and
-              <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
-              is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, set <i>result</i> to its only item.</li>
-            <li>Return <i>result</i>.</li>
-          </ol>
-        </li>
-        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-        <li>If <i>element</i> has an <code>@value</code> or <code>@id</code>
-          member and the result of using the
-          <a href="#value-compaction">Value Compaction algorithm</a>,
-          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-          <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>,and <i>element</i> as <i>value</i> is
-          a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>, return that result.</li>
-        <li>Initialize <i>inside reverse</i> to <a class="tref internalDFN" title="true" href="#dfn-true">true</a> if
-          <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> equals <code>@reverse</code>,
-          otherwise to <a class="tref internalDFN" title="false" href="#dfn-false">false</a>.</li>
-        <li>Initialize <i>result</i> to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-        <li>For each key <i>expanded property</i> and value <i>expanded value</i>
-          in <i>element</i>,  ordered lexicographically by <i>expanded property</i>:
-          <ol class="algorithm">
-            <li>If <i>expanded property</i> is <code>@id</code> or
-              <code>@type</code>:
-                <ol class="algorithm">
-                  <li>If <i>expanded value</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>,
-                    then initialize <i>compacted value</i> to the result
-                    of using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-                    passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-                    <i>expanded value</i> for <i>iri</i>,
-                    and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i> if
-                    <i>expanded property</i> is <code>@type</code>,
-                    <a class="tref internalDFN" title="false" href="#dfn-false">false</a> otherwise.</li>
-                  <li>Otherwise, <i>expanded value</i> must be a
-                    <code>@type</code> <a class="tref internalDFN" title="array" href="#dfn-array">array</a>:
-                    <ol class="algorithm">
-                      <li>Initialize <i>compacted value</i> to an empty
-                        <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                      <li>For each item <i>expanded type</i> in
-                        <i>expanded value</i>, append the result of
-                        of using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-                        passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-                        <i>expanded type</i> for <i>iri</i>, and
-                        <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
-                        to <i>compacted value</i>.</li>
-                      <li>If <i>compacted value</i> contains only one
-                        item (it has a length of <code>1</code>), then
-                        set <i>compacted value</i> to its only item.</li>
-                    </ol>
-                  </li>
-                  <li>Initialize <i>alias</i> to the result of using the
-                    <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-                    passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, and
-                    <i>expanded property</i> for <i>iri</i>.</li>
-                  <li>Add a member <i>alias</i> to <i>result</i> whose value is
-                    set to <i>compacted value</i> and continue to the next
-                    <i>expanded property</i>.</li>
-                </ol>
-              </li>
-            <li>If <i>expanded property</i> is <code>@reverse</code>:
-              <ol class="algorithm">
-                <li>Initialize <i>compacted value</i> to the result of using this
-                  algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-                  <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, <code>@reverse</code> for
-                  <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>expanded value</i>
-                  for <i>element</i>.</li>
-                <li>For each <i>property</i> and <i>value</i> in <i>compacted value</i>:
-                  <ol class="algorithm">
-                    <li>If the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> for <i>property</i> in the
-                      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> indicates that <i>property</i> is
-                      a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a>
-                      <ol class="algorithm">
-                        <li>If
-                          <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
-                          is <a class="tref internalDFN" title="false" href="#dfn-false">false</a> and <i>value</i> is not an
-                          <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set <i>value</i> to a new
-                          <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only <i>value</i>.</li>
-                        <li>If <i>property</i> is not a member of
-                          <i>result</i>, add one and set its value to <i>value</i>.</li>
-                        <li>Otherwise, if the value of the <i>property</i> member of
-                          <i>result</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set it to a new
-                          <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only the value. Then
-                          append <i>value</i> to its value if <i>value</i>
-                          is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, otherwise append each
-                          of its items.</li>
-                        <li>Remove the <i>property</i> member from
-                          <i>compacted value</i>.</li>
-                      </ol>
-                    </li>
-                  </ol>
-                </li>
-                <li>If <i>compacted value</i> has some remaining members, i.e.,
-                  it is not an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>:
-                  <ol class="algorithm">
-                    <li>Initialize <i>alias</i> to the result of using the
-                      <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-                      passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, and
-                      <code>@reverse</code> for <i>iri</i>.</li>
-                    <li>Set the value of the <i>alias</i> member of <i>result</i> to
-                      <i>compacted value</i> and continue with the next
-                      <i>expanded property</i> from <i>element</i>.</li>
-                  </ol>
-              </li></ol>
-            </li>
-            <li>If <i>expanded property</i> is <code>@index</code> and
-              <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>
-              in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that is <code>@index</code>,
-              then the compacted result will be inside of an <code>@index</code>
-              container, drop the <code>@index</code> property by continuing
-              to the next <i>expanded property</i>.</li>
-            <li>Otherwise, if <i>expanded property</i> is <code>@index</code>,
-              <code>@value</code>, or <code>@language</code>:
-              <ol class="algorithm">
-                <li>Initialize <i>alias</i> to the result of using
-                  the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, and
-                  <i>expanded property</i> for <i>iri</i>.</li>
-                <li>Add a member <i>alias</i> to <i>result</i> whose value is
-                  set to <i>expanded value</i> and continue with the next
-                  <i>expanded property</i>.</li>
-              </ol>
-            </li>
-            <li>If <i>expanded value</i> is an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>:
-              <ol class="algorithm">
-                <li>Initialize <i>item active property</i> to the result of
-                  using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-                  <i>expanded property</i> for <i>iri</i>,
-                  <i>expanded value</i> for <i>value</i>,
-                  <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>, and
-                  <i>inside reverse</i>.</li>
-                <li>If <i>result</i> does not have the key that equals
-                  <i>item active property</i>, set this key's value in
-                  <i>result</i> to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Otherwise, if
-                  the key's value is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, then set it
-                  to one containing only the value.</li>
-              </ol>
-            </li>
-            <li>
-              At this point, <i>expanded value</i> must be an
-              <a class="tref internalDFN" title="array" href="#dfn-array">array</a> due to the
-              <a href="#expansion-algorithm">Expansion algorithm</a>.
-              For each item <i>expanded item</i> in <i>expanded value</i>:
-              <ol class="algorithm">
-                <li>Initialize <i>item active property</i> to the result of using
-                  the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-                  <i>expanded property</i> for <i>iri</i>,
-                  <i>expanded item</i> for <i>value</i>,
-                  <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>, and
-                  <i>inside reverse</i>.</li>
-                <li>Initialize <i>container</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. If there
-                  is a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> for
-                  <i>item active property</i> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-                  set <i>container</i> to its value.</li>
-                <li>Initialize <i>compacted item</i> to the result of using
-                  this algorithm recursively, passing
-                  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-                  <i>item active property</i> for <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>,
-                  <i>expanded item</i> for <i>element</i> if it does
-                  not contain the key <code>@list</code>, otherwise pass
-                  the key's associated value for <i>element</i>.</li>
-                <li>
-                  If <i>expanded item</i> is a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>:
-                  <ol class="algorithm">
-                    <li>If <i>compacted item</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
-                      then set it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
-                      <i>compacted item</i>.</li>
-                    <li>If <i>container</i> is not <code>@list</code>:
-                      <ol class="algorithm">
-                        <li>Convert <i>compacted item</i> to a
-                          <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a> by setting it to a
-                          <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing key-value pair
-                          where the key is the result of the
-                          <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-                          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-                          <code>@list</code> for <i>iri</i>, and <i>compacted item</i>
-                          for <i>value</i>.</li>
-                        <li>If <i>expanded item</i> contains the key
-                          <code>@index</code>, then add a key-value pair
-                          to <i>compacted item</i> where the key is the
-                          result of the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-                          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-                          <code>@index</code> as <i>iri</i>, and the associated with the
-                          <code>@index</code> key in <i>expanded item</i> as <i>value</i>.</li>
-                      </ol>
-                    </li>
-                    <li>Otherwise, <i>item active property</i> must not be a key
-                      in <i>result</i> because there cannot be two
-                      <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list objects</a> associated
-                      with an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> that has a
-                      <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>; a
-                      <code class="error"><a href="#idl-def-JsonLdErrorCode.compaction-to-list-of-lists">compaction to list of lists</a></code>
-                      error has been detected and processing is aborted.</li>
-                  </ol>
-                </li>
-                <li>
-                  If <i>container</i> is <code>@language</code> or
-                  <code>@index</code>:
-                  <ol class="algorithm">
-                    <li>If <i>item active property</i> is a key in
-                      <i>result</i>, then initialize <i>map object</i> to
-                      its associated value, otherwise initialize it to an empty
-                      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-                    <li>If <i>container</i> is <code>@language</code> and
-                      <i>compacted item</i> contains the key
-                      <code>@value</code>, then set <i>compacted item</i>
-                      to the value associated with its <code>@value</code> key.</li>
-                    <li>Initialize <i>map key</i> to the value associated with
-                      with the key that equals <i>container</i> in
-                      <i>expanded item</i>.</li>
-                    <li>If <i>map key</i> is not a key in <i>map object</i>,
-                      then set this key's value in <i>map object</i>
-                      to <i>compacted item</i>. Otherwise, if the value
-                      is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, then set it to one
-                      containing only the value and then append
-                      <i>compacted item</i> to it.</li>
-                  </ol>
-                </li>
-                <li>
-                  Otherwise,
-                  <ol class="algorithm">
-                    <li>If
-                      <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
-                      is <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, <i>container</i> is <code>@set</code> or
-                      <code>@list</code>, or <i>expanded property</i> is
-                      <code>@list</code> or <code>@graph</code> and
-                      <i>compacted item</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
-                      set it to a new <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-                      containing only <i>compacted item</i>.</li>
-                    <li>If <i>item active property</i> is not a key in
-                      <i>result</i> then add the key-value pair,
-                      (<i>item active property</i>-<i>compacted item</i>),
-                      to <i>result</i>.</li>
-                    <li>Otherwise, if the value associated with the key that
-                      equals <i>item active property</i> in <i>result</i>
-                      is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set it to a new
-                      <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only the value. Then
-                      append <i>compacted item</i> to the value if
-                      <i>compacted item</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
-                      otherwise, concatenate it.</li>
-                  </ol>
-                </li>
-              </ol>
-            </li>
-          </ol>
-        </li>
-        <li>Return <i>result</i>.</li>
-      </ol>
-
-      <p>If, after the algorithm outlined above is run, the result <i>result</i>
-        is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, replace it with a new
-        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with a single member whose key is the result
-        of using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-        passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, and
-        <code>@graph</code> as <i>iri</i> and whose value is the <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-        <i>result</i>. Finally, if a <i>context</i> has been passed, add an
-        <code>@context</code> member to <i>result</i> and set its value to
-        the passed <i>context</i>.</p>
-    </div>
-  </div>
-<!-- end of Compaction -->
-
-
-  <div class="section" id="inverse-context-creation">
-    <h3><span class="secno">8.2 </span>Inverse Context Creation</h3>
-
-    <p>When there is more than one <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that could be chosen
-      to compact an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, it has to be ensured that the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-      selection is both deterministic and represents the most context-appropriate
-      choice whilst taking into consideration algorithmic complexity.</p>
-
-    <p>In order to make <a class="tref internalDFN" title="term" href="#dfn-term">term</a> selections, the concept of an
-      <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> is introduced. An <dfn title="inverse-context" id="dfn-inverse-context">inverse context</dfn>
-      is essentially a reverse lookup table that maps
-      <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>,
-      <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mappings</a>, and
-      <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mappings</a> to a simple
-      <a class="tref internalDFN" title="term" href="#dfn-term">term</a> for a given <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. A
-      <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> only needs to be generated for an
-      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> if it is being used for <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compaction</a>.</p>
-
-    <p>To make use of an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, a list of preferred
-      <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a> and the
-      <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> are gathered
-      for a particular value associated with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. These parameters
-      are then fed to the <a href="#term-selection">Term Selection algorithm</a>,
-      which will find the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that most appropriately
-      matches the value's mappings.</p>
-
-    <div class="informative section">
-      <h4 id="overview-6">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>To create an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> for a given
-        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, each <a class="tref internalDFN" title="term" href="#dfn-term">term</a> in the
-        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is visited, ordered by length, shortest
-        first (ties are broken by choosing the lexicographically least
-        <a class="tref internalDFN" title="term" href="#dfn-term">term</a>). For each <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, an entry is added to
-        the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> for each possible combination of
-        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> and <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
-        or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> that would legally match the
-        <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. Illegal matches include differences between a
-        value's <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> and
-        that of the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. If a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> has no
-        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>, <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>, or
-        <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> (or some combination of these), then it
-        will have an entry in the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> using the special
-        key <code>@none</code>. This allows the
-        <a href="#term-selection">Term Selection algorithm</a> to fall back
-        to choosing more generic <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> when a more
-        specifically-matching <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is not available for a particular
-        <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> and value combination.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-6">Algorithm</h4>
-
-      <p>The algorithm takes one required input: the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that
-        the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> is being created for.</p>
-
-      <ol class="algorithm">
-        <li>Initialize <i>result</i> to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-        <li>Initialize <i>default language</i> to <code>@none</code>. If the
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>,
-          set <i>default language</i> to it.</li>
-        <li>For each key <a class="tref internalDFN" title="term" href="#dfn-term">term</a> and value <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in
-          the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, ordered by shortest <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-          first (breaking ties by choosing the lexicographically least
-          <a class="tref internalDFN" title="term" href="#dfn-term">term</a>):
-          <ol class="algorithm">
-            <li>If the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
-              <a class="tref internalDFN" title="term" href="#dfn-term">term</a> cannot be selected during <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compaction</a>,
-              so continue to the next <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</li>
-            <li>Initialize <i>container</i> to <code>@none</code>. If there
-              is a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> in
-              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>, set <i>container</i> to
-              its associated value.</li>
-            <li>Initialize <i>iri</i> to the value of the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>
-              for the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>.</li>
-            <li>If <i>iri</i> is not a key in <i>result</i>, add
-              a key-value pair where the key is <i>iri</i> and the value
-              is an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> to <i>result</i>.</li>
-            <li>Reference the value associated with the <i>iri</i> member in
-              <i>result</i> using the variable <i>container map</i>.</li>
-            <li>If <i>container</i> has no <i>container map</i> member,
-              create one and set its value to a new
-              <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with two members. The first member is
-              <code>@language</code> and its value is a new empty
-              <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, the second member is <code>@type</code>
-              and its value is a new empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-            <li>Reference the value associated with the <i>container</i> member
-              in <i>container map</i> using the variable <i>type/language map</i>.</li>
-            <li>If the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> indicates that the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-              represents a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a>:
-              <ol class="algorithm">
-                <li>Reference the value associated with the <code>@type</code>
-                  member in <i>type/language map</i> using the variable
-                  <i>type map</i>.</li>
-                <li>If <i>type map</i> does not have a <code>@reverse</code>
-                  member, create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-                  being processed.</li>
-              </ol>
-            </li>
-            <li>Otherwise, if <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has a
-              <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>:
-              <ol class="algorithm">
-                <li>Reference the value associated with the <code>@type</code>
-                  member in <i>type/language map</i> using the variable
-                  <i>type map</i>.</li>
-                <li>If <i>type map</i> does not have a member corresponding
-                  to the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> in <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>,
-                  create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-                  being processed.</li>
-              </ol>
-            </li>
-            <li>Otherwise, if <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has a
-              <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> (might be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>):
-              <ol class="algorithm">
-                <li>Reference the value associated with the <code>@language</code>
-                  member in <i>type/language map</i> using the variable
-                  <i>language map</i>.</li>
-                <li>If the <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> equals <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
-                  set <i>language</i> to <code>@null</code>; otherwise set it
-                  to the language code in <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>.</li>
-                <li>If <i>language map</i> does not have a <i>language</i> member,
-                  create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-                  being processed.</li>
-              </ol>
-            </li>
-            <li>Otherwise:
-              <ol class="algorithm">
-                <li>Reference the value associated with the <code>@language</code>
-                  member in <i>type/language map</i> using the variable
-                  <i>language map</i>.</li>
-                <li>If <i>language map</i> does not have a <i>default language</i>
-                  member, create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-                  being processed.</li>
-                <li>If <i>language map</i> does not have a <code>@none</code>
-                  member, create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-                  being processed.</li>
-                <li>Reference the value associated with the <code>@type</code>
-                  member in <i>type/language map</i> using the variable
-                  <i>type map</i>.</li>
-                <li>If <i>type map</i> does not have a <code>@none</code>
-                  member, create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-                  being processed.</li>
-              </ol>
-            </li>
-          </ol>
-        </li>
-        <li>Return <i>result</i>.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Inverse Context Creation -->
-
-
-  <div class="section" id="iri-compaction">
-    <h3><span class="secno">8.3 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction</h3>
-
-    <p>This algorithm compacts an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> to a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> or
-      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> to a
-      <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword alias</a>. A value that is associated with the
-      <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> may be passed in order to assist in selecting the most
-      context-appropriate <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</p>
-
-    <div class="informative section">
-      <h4 id="overview-7">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>If the passed <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, we simply
-        return <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. Otherwise, we first try to find a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-        that the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> can be compacted to if
-        it is relative to <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
-        <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>. In order to select the most appropriate
-        <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, we may have to collect information about the passed
-        <i>value</i>. This information includes which
-        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>
-        would be preferred for expressing the <i>value</i>, and what its
-        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> is. For
-        <a class="tref internalDFN" title="list-object" href="#dfn-list-object">JSON-LD lists</a>, the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
-        or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> will be chosen based on the most
-        specific values that work for all items in the list. Once this
-        information is gathered, it is passed to the
-        <a href="#term-selection">Term Selection algorithm</a>, which will
-        return the most appropriate <a class="tref internalDFN" title="term" href="#dfn-term">term</a> to use.</p>
-
-      <p>If no <a class="tref internalDFN" title="term" href="#dfn-term">term</a> was found that could be used to compact the
-        <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an attempt is made compact the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> using the
-        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a> <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>,
-        if there is one. If the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> could not be compacted, an
-        attempt is made to find a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. If there is no
-        appropriate <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is
-        transformed to a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a> using the document's
-        <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Finally, if the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
-        <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> still could not be compacted, it is returned
-        as is.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-7">Algorithm</h4>
-
-      <p>This algorithm takes three required inputs and three optional inputs.
-        The required inputs an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-        and the <i>iri</i> to be compacted. The optional inputs are a <i>value</i> associated
-        with the <i>iri</i>, a <i>vocab</i> flag which specifies whether the
-        passed <i>iri</i> should be compacted using the
-        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
-        <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, and a <i>reverse</i> flag which specifies whether
-        a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a> is being compacted. If not passed, <i>value</i> is set to
-        <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and <i>vocab</i> and <i>reverse</i> are both set to
-        <code>false</code>.</p>
-
-      <ol class="algorithm">
-        <li>If <i>iri</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
-        <li>If <i>vocab</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and <i>iri</i> is a
-          key in <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>:
-          <ol class="algorithm">
-            <li>Initialize <i>default language</i> to
-              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
-              <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>, if it has one, otherwise to
-              <code>@none</code>.</li>
-            <li>Initialize <i>containers</i> to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. This
-              <a class="tref internalDFN" title="array" href="#dfn-array">array</a> will be used to keep track of an ordered list of
-              preferred <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>
-              for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, based on what is compatible with
-              <i>value</i>.</li>
-            <li>Initialize <i>type/language</i> to <code>@language</code>,
-              and <i>type/language value</i> to <code>@null</code>. These two
-              variables will keep track of the preferred
-              <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> for
-              a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, based on what is compatible with <i>value</i>.</li>
-            <li>If <i>value</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that contains the
-              key <code>@index</code>, then append the value <code>@index</code>
-              to <i>containers</i>.</li>
-            <li>If <i>reverse</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, set <i>type/language</i>
-              to <code>@type</code>, <i>type/language value</i> to
-              <code>@reverse</code>, and append <code>@set</code> to <i>containers</i>.</li>
-            <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, then set
-              <i>type/language</i> and <i>type/language value</i>
-              to the most specific values that work for all items in
-              the list as follows:
-              <ol class="algorithm">
-                <li>If <code>@index</code> is a not key in <i>value</i>, then
-                  append <code>@list</code> to <i>containers</i>.</li>
-                <li>Initialize <i>list</i> to the <a class="tref internalDFN" title="array" href="#dfn-array">array</a> associated
-                  with the key <code>@list</code> in <i>value</i>.</li>
-                <li>Initialize <i>common language</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. If
-                  <i>list</i> is empty, set <i>common language</i> to
-                  <i>default language</i>.</li>
-                <li>For each <i>item</i> in <i>list</i>:
-                  <ol class="algorithm">
-                    <li>Initialize <i>item language</i> to <code>@none</code> and
-                      <i>item type</i> to <code>@none</code>.</li>
-                    <li>If <i>item</i> contains the key <code>@value</code>:
-                      <ol class="algorithm">
-                        <li>If <i>item</i> contains the key <code>@language</code>,
-                          then set <i>item language</i> to its associated
-                          value.</li>
-                        <li>Otherwise, if <i>item</i> contains the key
-                          <code>@type</code>, set <i>item type</i> to its
-                          associated value.</li>
-                        <li>Otherwise, set <i>item language</i> to
-                          <code>@null</code>.</li>
-                      </ol>
-                    </li>
-                    <li>Otherwise, set <i>item type</i> to <code>@id</code>.</li>
-                    <li>If <i>common language</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it
-                      to <i>item language</i>.</li>
-                    <li>Otherwise, if <i>item language</i> does not equal
-                      <i>common language</i> and <i>item</i> contains the
-                      key <code>@value</code>, then set <i>common language</i>
-                      to <code>@none</code> because list items have conflicting
-                      languages.</li>
-                    <li>If <i>common type</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it
-                      to <i>item type</i>.</li>
-                    <li>Otherwise, if <i>item type</i> does not equal
-                      <i>common type</i>, then set <i>common type</i>
-                      to <code>@none</code> because list items have conflicting
-                      types.</li>
-                    <li>If <i>common language</i> is <code>@none</code> and
-                      <i>common type</i> is <code>@none</code>, then
-                      stop processing items in the list because it has been
-                      detected that there is no common language or type amongst
-                      the items.</li>
-                  </ol>
-                </li>
-                <li>If <i>common language</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
-                  <code>@none</code>.</li>
-                <li>If <i>common type</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
-                  <code>@none</code>.</li>
-                <li>If <i>common type</i> is not <code>@none</code> then set
-                  <i>type/language</i> to <code>@type</code> and
-                  <i>type/language value</i> to <i>common type</i>.</li>
-                <li>Otherwise, set <i>type/language value</i> to
-                  <i>common language</i>.</li>
-              </ol>
-            </li>
-            <li>Otherwise:
-              <ol class="algorithm">
-                <li>If <i>value</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>:
-                  <ol class="algorithm">
-                    <li>If <i>value</i> contains the key <code>@language</code>
-                      and does not contain the key <code>@index</code>,
-                      then set <i>type/language value</i> to its associated
-                      value and append <code>@language</code> to
-                      <i>containers</i>.</li>
-                    <li>Otherwise, if <i>value</i> contains the key
-                      <code>@type</code>, then set <i>type/language value</i> to
-                      its associated value and set <i>type/language</i> to
-                      <code>@type</code>.</li>
-                  </ol>
-                </li>
-                <li>Otherwise, set <i>type/language</i> to <code>@type</code>
-                  and set <i>type/language value</i> to <code>@id</code>.</li>
-                <li>Append <code>@set</code> to <i>containers</i>.</li>
-              </ol>
-            </li>
-            <li>Append <code>@none</code> to <i>containers</i>. This represents
-              the non-existence of a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>, and it will
-              be the last <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> value to be checked as it
-              is the most generic.</li>
-            <li>If <i>type/language value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
-              <code>@null</code>. This is the key under which <a class="tref internalDFN" title="null" href="#dfn-null">null</a> values
-              are stored in the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> <i>entry</i>.</li>
-            <li>Initialize <i>preferred values</i> to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.
-              This <a class="tref internalDFN" title="array" href="#dfn-array">array</a> will indicate, in order, the preferred values for
-              a <a class="tref internalDFN" title="term" href="#dfn-term">term's</a> <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or
-              <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>.</li>
-            <li>If <i>type/language value</i> is <code>@reverse</code>, append
-              <code>@reverse</code> to <i>preferred values</i>.</li>
-            <li>If <i>type/language value</i> is <code>@id</code> or <code>@reverse</code>
-              and <i>value</i> has an <code>@id</code> member:
-              <ol class="algorithm">
-                <li>If the result of using the
-                  <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> compaction algorithm</a>,
-                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-                  the value associated with the <code>@id</code> key in <i>value</i> for
-                  <i>iri</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>, and
-                  <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i> has a
-                  <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>
-                  with an <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> that equals the value associated
-                  with the <code>@id</code> key in <i>value</i>,
-                  then append <code>@vocab</code>, <code>@id</code>, and
-                  <code>@none</code>, in that order, to <i>preferred values</i>.</li>
-                <li>Otherwise, append <code>@id</code>, <code>@vocab</code>, and
-                  <code>@none</code>, in that order, to <i>preferred values</i>.</li>
-              </ol>
-            </li>
-            <li>Otherwise, append <i>type/language value</i> and <code>@none</code>, in
-              that order, to <i>preferred values</i>.</li>
-            <li>Initialize <i>term</i> to the result of the
-              <a href="#term-selection">Term Selection algorithm</a>, passing
-              <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, <i>iri</i>, <i>containers</i>,
-              <i>type/language</i>, and <i>preferred values</i>.</li>
-            <li>If <i>term</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <i>term</i>.</li>
-          </ol>
-        </li>
-        <li>At this point, there is no simple <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that <i>iri</i>
-          can be compacted to. If <i>vocab</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>:
-          <ol class="algorithm">
-            <li>If <i>iri</i> begins with the
-              <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping's</a> value
-              but is longer, then initialize <i>suffix</i> to the substring
-              of <i>iri</i> that does not match. If <i>suffix</i> does not
-              have a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-              then return <i>suffix</i>.</li>
-          </ol>
-        </li>
-        <li>The <i>iri</i> could not be compacted using the
-          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a> <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>.
-          Try to create a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, starting by initializing
-          <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. This variable will be used to
-          tore the created <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, if any.</li>
-
-        <li>For each key <a class="tref internalDFN" title="term" href="#dfn-term">term</a> and value <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in
-          the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>:
-          <ol class="algorithm">
-            <li>If the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> contains a colon (<code>:</code>),
-              then continue to the next <a class="tref internalDFN" title="term" href="#dfn-term">term</a> because
-              <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> with colons can't be
-              used as <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefixes</a>.</li>
-            <li>If the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
-              its <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> equals <i>iri</i>, or its
-              <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> is not a substring at the beginning of
-              <i>iri</i>, the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> cannot be used as a <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>
-              because it is not a partial match with <i>iri</i>.
-              Continue with the next <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</li>
-            <li>Initialize <i>candidate</i> by concatenating <a class="tref internalDFN" title="term" href="#dfn-term">term</a>,
-              a colon (<code>:</code>), and the substring of <i>iri</i>
-              that follows after the value of the
-              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition's</a>
-              <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>.</li>
-            <li>If either <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or <i>candidate</i> is
-              shorter or the same length but lexicographically less than
-              <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> and <i>candidate</i> does not have a
-              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> or if the
-              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has an <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>
-              that equals <i>iri</i> and <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
-              set <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> to <i>candidate</i>.</li>
-          </ol>
-        </li>
-        <li>If <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i>.</li>
-        <li>If <i>vocab</i> is <a class="tref internalDFN" title="false" href="#dfn-false">false</a> then
-          transform <i>iri</i> to a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a> using
-          the document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
-        <li>Finally, return <i>iri</i> as is.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of IRI Compaction -->
-
-
-  <div class="section" id="term-selection">
-    <h3><span class="secno">8.4 </span>Term Selection</h3>
-
-    <p>This algorithm, invoked via the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
-      makes use of an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
-      <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> to find the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that is best
-      used to <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compact</a> an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Other
-      information about a value associated with the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is given,
-      including which <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>
-      and which <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> would
-      be best used to express the value.</p>
-
-    <div class="informative section">
-      <h4 id="overview-8">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>The <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context's</a> entry for
-        the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> will be first searched according to the preferred
-        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>, in the order
-        that they are given. Amongst <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> with a matching
-        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>, preference will be given to those
-        with a matching <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>,
-        over those without a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or
-        <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>. If there is no <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-        with a matching <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> then the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-        without a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> that matches the given
-        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> is selected. If
-        there is still no selected <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, then a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-        with no <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> will
-        be selected if available. No <a class="tref internalDFN" title="term" href="#dfn-term">term</a> will be selected that
-        has a conflicting <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>.
-        Ties between <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> that have the same
-        mappings are resolved by first choosing the shortest terms, and then by
-        choosing the lexicographically least term. Note that these ties are
-        resolved automatically because they were previously resolved when the
-        <a href="#inverse-context-creation">Inverse Context Creation algorithm</a>
-        was used to create the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-8">Algorithm</h4>
-
-      <p>This algorithm has five required inputs. They are:
-        an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> or <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-        <i>iri</i>, an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>containers</i> that represents an
-        ordered list of preferred <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>,
-        a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> <i>type/language</i> that indicates whether
-        to look for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> with a matching <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
-        or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>, and an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> representing
-        an ordered list of <i>preferred values</i> for the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
-        or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> to look for.</p>
-
-      <ol class="algorithm">
-        <li>Initialize <i>container map</i> to the value associated with
-          <i>iri</i> in the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>.</li>
-        <li>For each item <i>container</i> in <i>containers</i>:
-          <ol class="algorithm">
-            <li>If <i>container</i> is not a key in <i>container map</i>, then
-              there is no <a class="tref internalDFN" title="term" href="#dfn-term">term</a> with a matching
-              <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> for it, so continue to the next
-              <i>container</i>.</li>
-            <li>Initialize <i>type/language map</i> to the value associated
-              with the <i>container</i> member in <i>container map</i>.</li>
-            <li>Initialize <i>value map</i> to the value associated
-              with <i>type/language</i> member in <i>type/language map</i>.</li>
-            <li>For each <i>item</i> in <i>preferred values</i>:
-              <ol class="algorithm">
-                <li>If <i>item</i> is not a key in <i>value map</i>,
-                  then there is no <a class="tref internalDFN" title="term" href="#dfn-term">term</a> with a matching
-                  <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>,
-                  so continue to the next <i>item</i>.</li>
-                <li>Otherwise, a matching term has been found, return the value
-                  associated with the <i>item</i> member in
-                  <i>value map</i>.</li>
-              </ol>
-            </li>
-          </ol>
-        </li>
-        <li>No matching term has been found. Return <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Term Selection -->
-
-
-  <div class="section" id="value-compaction">
-    <h3><span class="secno">8.5 </span>Value Compaction</h3>
-
-    <p><a class="tref internalDFN" title="expansion" href="#dfn-expansion">Expansion</a> transforms all values into <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a>
-      in JSON-LD. This algorithm performs the opposite operation, transforming
-      a value into <dfn title="compacted-form" id="dfn-compacted-form">compacted form</dfn>. This algorithm compacts a
-      value according to the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in the given
-      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that is associated with the value's associated
-      <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>.</p>
-
-    <div class="informative section">
-      <h4 id="overview-9">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>The <i>value</i> to compact has either an <code>@id</code> or an
-        <code>@value</code> member.</p>
-
-      <p>For the former case, if the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of
-        <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is set to <code>@id</code> or <code>@vocab</code>
-        and <i>value</i> consists of only of an <code>@id</code> member and, if
-        if the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
-        is set to <code>@index</code>, an <code>@index</code> member, <i>value</i>
-        can be compacted to a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> by returning the result of
-        using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>
-        to compact the value associated with the <code>@id</code> member.
-        Otherwise, <i>value</i> cannot be compacted and is returned as is.</p>
-
-      <p>For the latter case, it might be possible to compact <i>value</i>
-        just into the value associated with the <code>@value</code> member.
-        This can be done if the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a matching
-        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> and there
-        is either no <code>@index</code> member or the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>
-        of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is set to <code>@index</code>. It can
-        also be done if <code>@value</code> is the only member in <i>value</i>
-        (apart an <code>@index</code> member in case the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>
-        of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is set to <code>@index</code>) and
-        either its associated value is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, there is
-        no <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>, or there is an explicit
-        <a class="tref internalDFN" title="null" href="#dfn-null">null</a> <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> for the
-        <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-9">Algorithm</h4>
-
-      <p>This algorithm has four required inputs: an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, an
-        <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,  an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and a <i>value</i>
-        to be compacted.</p>
-
-      <ol class="algorithm">
-        <li>Initialize <i>number members</i> to the number of members
-          <i>value</i> contains.</li>
-        <li>If <i>value</i> has an <code>@index</code> member and the
-          <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> associated to <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
-          is set to <code>@index</code>, decrease <i>number members</i> by
-          <code>1</code>.</li>
-        <li>If <i>number members</i> is greater than <code>2</code>, return
-          <i>value</i> as it cannot be compacted.</li>
-        <li>If <i>value</i> has an <code>@id</code> member:
-          <ol class="algorithm">
-            <li>If <i>number members</i> is <code>1</code> and
-              the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
-              is set to <code>@id</code>, return the result of using the
-              <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> compaction algorithm</a>,
-              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-              and the value of the <code>@id</code> member for <i>iri</i>.</li>
-            <li>Otherwise, if <i>number members</i> is <code>1</code> and
-              the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
-              is set to <code>@vocab</code>, return the result of using the
-              <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> compaction algorithm</a>,
-              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
-              the value of the <code>@id</code> member for <i>iri</i>, and
-              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>.</li>
-            <li>Otherwise, return <i>value</i> as is.</li>
-          </ol>
-        </li>
-        <li>Otherwise, if <i>value</i> has an <code>@type</code> member whose
-          value matches the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>,
-          return the value associated with the <code>@value</code> member
-          of <i>value</i>.</li>
-        <li>Otherwise, if <i>value</i> has an <code>@language</code> member whose
-          value matches the <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> of
-          <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, return the value associated with the
-          <code>@value</code> member of <i>value</i>.</li>
-        <li>Otherwise, if <i>number members</i> equals <code>1</code> and either
-          the value of the <code>@value</code> member is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>,
-          or the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has no <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>,
-          or the <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
-          is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,, return the value associated with the
-          <code>@value</code> member.</li>
-        <li>Otherwise, return <i>value</i> as is.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Value Compaction algorithm -->
-
-</div>
-<!-- end of Compaction section -->
-
-
-
-<div class="section" id="flattening-algorithms">
-
-<!--OddPage-->
-<h2><span class="secno">9. </span>Flattening Algorithms</h2>
-
-  <div class="section" id="flattening-algorithm">
-    <h3><span class="secno">9.1 </span>Flattening Algorithm</h3>
-
-    <p>This algorithm flattens an expanded JSON-LD document by collecting all
-      properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in a single <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
-      and labeling all <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> with
-      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>.
-      This resulting uniform shape of the document, may drastically simplify
-      the code required to process JSON-LD data in certain applications.</p>
-
-    <div class="informative section">
-      <h4 id="overview-10">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>First, a <i>node map</i> is generated using the
-        <a href="#node-map-generation">Node Map Generation algorithm</a>
-        which collects all properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in a single
-        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. In the next step, the <i>node map</i> is
-        converted to a JSON-LD document in
-        <a class="tref externalDFN" title="flattened-document-form" href="../json-ld/#flattened-document-form">flattened document form</a>.
-        Finally, if a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> has been passed, the flattened document
-        is compacted using the <a href="#compaction-algorithm">Compaction algorithm</a>
-        before being returned.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-10">Algorithm</h4>
-
-      <p>The algorithm takes two input variables, an <i>element</i> to flatten and
-        an optional <i>context</i> used to compact the flattened document. If not
-        passed, <i>context</i> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-      <ol class="algorithm">
-        <li>Initialize <i>node map</i> to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of
-          a single member whose key is <code>@default</code> and whose value is
-          an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-        <li>Perform the <a href="#node-map-generation">Node Map Generation algorithm</a>, passing
-          <i>element</i> and <i>node map</i>.</li>
-        <li>Initialize <i>default graph</i> to the value of the <code>@default</code>
-          member of <i>node map</i>, which is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> representing
-          the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a>.</li>
-        <li>For each key-value pair <i>graph name</i>-<i>graph</i> in <i>node map</i>
-          where <i>graph name</i> is not <code>@default</code>,  perform the following steps:
-          <ol class="algorithm">
-            <li>If <i>default graph</i> does not have a <i>graph name</i> member, create
-              one and initialize its value to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of an
-              <code>@id</code> member whose value is set to <i>graph name</i>.</li>
-            <li>Reference the value associated with the <i>graph name</i> member in
-              <i>default graph</i> using the variable <i>entry</i>.</li>
-            <li>Add an <code>@graph</code> member to <i>entry</i> and set it to an
-              empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-            <li>For each <i>id</i>-<i>node</i> pair in <i>graph</i> ordered by <i>id</i>,
-              add <i>node</i> to the <code>@graph</code> member of <i>entry</i>.</li>
-          </ol>
-        </li>
-        <li>Initialize an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>flattened</i>.</li>
-        <li>For each <i>id</i>-<i>node</i> pair in <i>default graph</i> ordered by <i>id</i>,
-          add <i>node</i> to <i>flattened</i>.</li>
-        <li>If <i>context</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <i>flattened</i>.</li>
-        <li>Otherwise, return the result of compacting <i>flattened</i> according the
-          <a href="#compaction-algorithm">Compaction algorithm</a> passing <i>context</i>
-          ensuring that the compaction result uses the <code>@graph</code> keyword (or its alias)
-          at the top-level, even if the context is empty or if there is only one element to
-          put in the <code>@graph</code> <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. This ensures that the returned
-          document has a deterministic structure.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Flattening Algorithm -->
-
-
-  <div class="section" id="node-map-generation">
-    <h3><span class="secno">9.2 </span>Node Map Generation</h3>
-
-    <p>This algorithm creates a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>node map</i> holding an indexed
-      representation of the <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">graphs</a> and <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>
-      represented in the passed expanded document. All <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> that are not
-      uniquely identified by an <abbr title="Internationalized Resource Identifier">IRI</abbr> get assigned a (new) <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.
-      The resulting <i>node map</i> will have a member for every graph in the document whose
-      value is another object with a member for every <a class="tref internalDFN" title="node" href="#dfn-node">node</a> represented in the document.
-      The default graph is stored under the <code>@default</code> member, all other graphs are
-      stored under their <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a>.</p>
-
-    <div class="informative section">
-      <h4 id="overview-11">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>The algorithm recursively runs over an expanded JSON-LD document to
-        collect all <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a>
-        in a single <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. The algorithm constructs a
-        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>node map</i> whose keys represent the
-        <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph names</a> used in the document
-        (the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> is stored under the key <code>@default</code>)
-        and whose associated values are <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a>
-        which index the <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> in the
-        <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">graph</a>. If a
-        <a class="tref internalDFN" title="property" href="#dfn-property">property's</a> value is a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>,
-        it is replace by a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> consisting of only an
-        <code>@id</code> member. If a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> has no <code>@id</code>
-        member or it is identified by a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>,
-        a new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> is generated. This relabeling
-        of <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a> is
-        also be done for <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> and values of
-        <code>@type</code>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-11">Algorithm</h4>
-
-      <p>The algorithm takes as input an expanded JSON-LD document <i>element</i> and a reference to
-        a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>node map</i>. Furthermore it has the optional parameters
-        <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a> (which defaults to <code>@default</code>), an <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>,
-        <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and a reference to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>list</i>. If
-        not passed, <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>list</i> are
-        set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-      <ol class="algorithm">
-        <li>If <i>element</i> is an array, process each <i>item</i> in <i>element</i>
-          as follows and then return:
-          <ol class="algorithm">
-            <li>Run this algorithm recursively by passing <i>item</i> for <i>element</i>,
-              <i>node map</i>, <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>, <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>,
-              <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>list</i>.</li>
-          </ol>
-        </li>
-        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. Reference the
-          <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> which is the value of the <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>
-          member of <i>node map</i> using the variable <i>graph</i>. If the
-          <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set <i>node</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>
-          otherwise reference the <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a> member of <i>graph</i> using the
-          variable <i>node</i>.</li>
-        <li>If <i>element</i> has an <code>@type</code> member, perform for each
-          <i>item</i> the following steps:
-          <ol class="algorithm">
-            <li>If <i>item</i> is a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, replace it with a newly
-              <a href="#generate-blank-node-identifier">generated blank node identifier</a>
-              passing <i>item</i> for <i>identifier</i>.</li>
-            <li>If <i>graph</i> has no member <i>item</i>, create one and initialize its
-              value to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of a single member <code>@id</code>
-              whose value is <i>item</i>.</li>
-          </ol>
-        </li>
-        <li>If <i>element</i> has an <code>@value</code> member, perform the following steps:
-          <ol class="algorithm">
-            <li>If <i>list</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>:
-              <ol class="algorithm">
-                <li>If <i>node</i> does not have an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> member,
-                  create one and initialize its value to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-                  containing <i>element</i>.</li>
-                <li>Otherwise, compare <i>element</i> against every item in the
-                  <a class="tref internalDFN" title="array" href="#dfn-array">array</a> associated with the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
-                  member of <i>node</i>. If there is no item equivalent to <i>element</i>,
-                  append <i>element</i> to the <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Two
-                  <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a> are considered
-                  equal if they have equivalent key-value pairs.</li>
-
-              </ol>
-            </li>
-            <li>Otherwise, append <i>element</i> to the <code>@list</code> member of <i>list</i>.</li>
-          </ol>
-        </li>
-        <li>Otherwise, if <i>element</i> has an <code>@list</code> member, perform
-          the following steps:
-          <ol class="algorithm">
-            <li>Initialize a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>result</i> consisting of a single member
-              <code>@list</code> whose value is initialized to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-            <li>Recursively call this algorithm passing the value of <i>element's</i>
-              <code>@list</code> member for <i>element</i>, <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>,
-              <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and
-              <i>result</i> for <i>list</i>.</li>
-            <li>Append <i>result</i> to the the value of the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> member
-              of <i>node</i>.</li>
-          </ol>
-        </li>
-        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>, perform
-          the following steps:
-          <ol class="algorithm">
-            <li>If <i>element</i> has an <code>@id</code> member, set <i>id</i>
-              to its value and remove the member from <i>element</i>. If <i>id</i>
-              is a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, replace it with a newly
-              <a href="#generate-blank-node-identifier">generated blank node identifier</a>
-              passing <i>id</i> for <i>identifier</i>.</li>
-            <li>Otherwise, set <i>id</i> to the result of the
-              <a href="#generate-blank-node-identifier">Generate Blank Node Identifier algorithm</a>
-              passing <a class="tref internalDFN" title="null" href="#dfn-null">null</a> for <i>identifier</i>.</li>
-            <li>If <i>graph</i> does not contain a member <i>id</i>, create one and initialize
-              its value to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of a single member <code>@id</code> whose
-              value is <i>id</i>.</li>
-            <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, perform the following steps:
-              <ol class="algorithm">
-                <li>Create a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>reference</i> consisting of a single member
-                  <code>@id</code> whose value is <i>id</i>.</li>
-                <li>If <i>list</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>:
-                  <ol class="algorithm">
-                    <li>If <i>node</i> does not have an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> member,
-                      create one and initialize its value to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-                      containing <i>reference</i>.</li>
-                    <li>Otherwise, compare <i>reference</i> against every item in the
-                      <a class="tref internalDFN" title="array" href="#dfn-array">array</a> associated with the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
-                      member of <i>node</i>. If there is no item equivalent to <i>reference</i>,
-                      append <i>reference</i> to the <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Two
-                      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a> are considered
-                      equal if they have equivalent key-value pairs.</li>
-                  </ol>
-                </li>
-                <li>Otherwise, append <i>element</i> to the <code>@list</code> member of <i>list</i>.</li>
-              </ol>
-            </li>
-            <li>Reference the value of the <i>id</i> member of <i>graph</i> using the
-              variable <i>node</i>.</li>
-            <li>If <i>element</i> has an <code>@type</code> key, append
-              each item of its associated <a class="tref internalDFN" title="array" href="#dfn-array">array</a> to the
-              <a class="tref internalDFN" title="array" href="#dfn-array">array</a> associated with the <code>@type</code> key of
-              <i>node</i> unless it is already in that <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Finally
-              remove the <code>@type</code> member from <i>element</i>.</li>
-            <li>If <i>element</i> has an <code>@index</code> member, set the <code>@index</code>
-              member of <i>node</i> to its value. If <a class="tref internalDFN" title="node" href="#dfn-node">node</a> has already an
-              <code>@index</code> member with a different value, a
-              <code class="error"><a href="#idl-def-JsonLdErrorCode.conflicting-indexes">conflicting indexes</a></code>
-              error has been detected and processing is aborted. Otherwise, continue by
-              removing the <code>@index</code> member from <i>element</i>.</li>
-            <li>If <i>element</i> has an <code>@reverse</code> member:
-              <ol class="algorithm">
-                <li>Create a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>referenced node</i> with a single member <code>@id</code> whose
-                  value is <i>id</i>.</li>
-                <li>Set <i>reverse map</i> to the value of the <code>@reverse</code> member of
-                  <i>element</i>.</li>
-                <li>For each key-value pair <i>property</i>-<i>values</i> in <i>reverse map</i>:
-                  <ol class="algorithm">
-                    <li>For each <i>value</i> of <i>values</i>:
-                      <ol class="algorithm">
-                        <li>If <i>value</i> has a <i>property</i> member, append <i>referenced node</i> to
-                          its value; otherwise create a <i>property</i> member whose value is an
-                          <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing <i>referenced node</i>.</li>
-                        <li>Recursively invoke this algorithm passing <i>value</i> for
-                          <i>element</i>, <i>node map</i>, and <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>.</li>
-                      </ol>
-                    </li>
-                  </ol>
-                </li>
-                <li>Remove the <code>@reverse</code> member from <i>element</i>.</li>
-              </ol>
-            </li>
-            <li>If <i>element</i> has an <code>@graph</code> member, recursively invoke this
-              algorithm passing the value of the <code>@graph</code> member for <i>element</i>,
-              <i>node map</i>, and <i>id</i> for <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a> before removing
-              the <code>@graph</code> member from <i>element</i>.</li>
-            <li>Finally, for each key-value pair <i>property</i>-<i>value</i> in <i>element</i> ordered by
-              <i>property</i> perform the following steps:
-              <ol class="algorithm">
-                <li>If <i>property</i> is a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, replace it with a newly
-                  <a href="#generate-blank-node-identifier">generated blank node identifier</a>
-                  passing <i>property</i> for <i>identifier</i>.</li>
-                <li>If <i>node</i> does not have a <i>property</i> member, create one and initialize
-                  its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                <li>Recursively invoke this algorithm passing <i>value</i> for <i>element</i>,
-                  <i>node map</i>, <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>, <i>id</i> for <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>,
-                  <i>property</i> for <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>list</i>.</li>
-              </ol>
-            </li>
-          </ol>
-        </li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Node Map Generation -->
-
-
-  <div class="section" id="generate-blank-node-identifier">
-    <h3><span class="secno">9.3 </span>Generate Blank Node Identifier</h3>
-
-    <p>This algorithm is used to determine if two generate new
-      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a> or to
-      relabel an existing <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> to avoid collision
-      by the introduction of new ones.</p>
-
-    <div class="informative section">
-      <h4 id="overview-12">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>The simplest case is if there exists already a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
-        in the <i>identifier map</i> for the passed <i>identifier</i>, in which
-        case it is simply returned. Otherwise, a new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
-        is generated by concatenating the string <code>_:b</code> and the
-        <i>counter</i>. If the passed <i>identifier</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
-        an entry is created in the <i>identifier map</i> associating the
-        <i>identifier</i> with the <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. Finally,
-        the <i>counter</i> is increased by one and the new
-        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> is returned.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-12">Algorithm</h4>
-
-      <p>The algorithm takes a single input variable <i>identifier</i> which may
-        be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. Between its executions, the algorithm needs to
-        keep an <i>identifier map</i> to relabel existing
-        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>
-        consistently and a <i>counter</i> to generate new
-        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>. The
-        <i>counter</i> is initialized to <code>0</code> by default.</p>
-
-      <ol class="algorithm">
-        <li>If <i>identifier</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and has an entry in the
-          <i>identifier map</i>, return the mapped identifier.</li>
-        <li>Otherwise, generate a new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> by concatenating
-          the string <code>_:b</code> and <i>counter</i>.</li>
-        <li>Increment <i>counter</i> by <code>1</code>.</li>
-        <li>If <i>identifier</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, create a new entry
-          for <i>identifier</i> in <i>identifier map</i> and set its value
-          to the new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
-        <li>Return the new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Generate Blank Node Identifier -->
-
-</div>
-<!-- end of Flattening section -->
-
-
-
-<div class="section" id="rdf-conversion-algorithms">
-
-<!--OddPage-->
-<h2><span class="secno">10. </span>RDF Conversion Algorithms</h2>
-
-  <p>This section describes algorithms to transform a JSON-LD document to an
-    <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a> and vice versa. The algorithms are designed for in-memory
-    implementations with random access to <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> elements.</p>
-
-  <p>Throughout this section, the following vocabulary
-    <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefixes</a> are used in
-    <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>:</p>
-
-  <table rules="all">
-    <thead>
-      <tr><th>Prefix</th>
-      <th><abbr title="Internationalized Resource Identifier">IRI</abbr></th>
-    </tr></thead>
-    <tbody>
-      <tr>
-        <td>rdf</td>
-        <td>http://www.w3.org/1999/02/22-rdf-syntax-ns#</td>
-      </tr>
-      <tr>
-        <td>rdfs</td>
-        <td> http://www.w3.org/2000/01/rdf-schema#</td>
-      </tr>
-      <tr>
-        <td>xsd</td>
-        <td>http://www.w3.org/2001/XMLSchema#</td>
-      </tr>
-    </tbody>
-  </table>
-
-  <div class="section" id="convert-to-rdf-algorithm">
-    <h3><span class="secno">10.1 </span>Convert to RDF Algorithm</h3>
-
-    <p>This algorithms converts a JSON-LD document to an <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a>.
-      Please note that RDF does not allow a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> to be used
-      as a <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> or <a class="tref internalDFN" title="property" href="#dfn-property">property</a>, while JSON-LD does.
-      <a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter">JSON-LD-RDF Converters</a> can work
-      around this restriction, when converting JSON-LD to RDF, by converting such
-      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
-      minting new &quot;Skolem IRIs&quot; as per
-      <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">Replacing Blank Nodes with IRIs</a></cite>
-      of [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</p>
-
-    <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 3</span>: Allow blank nodes to be used as graph name or property</div><div class="atrisk">
-      <p class="atrisk-head">Note: This feature is
-        <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and
-        may be removed from this specification based on feedback. Please send feedback to
-        <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
-        For the current status see
-        <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
-      <p>RDF does not currently allow a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> to be
-        used as <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> or <a class="tref internalDFN" title="property" href="#dfn-property">property</a>, while JSON-LD
-        does. <a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter">JSON-LD-RDF Converters</a>
-        can work around this restriction, when converting JSON-LD to RDF, by
-        converting such <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> to
-        <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, minting new &quot;Skolem IRIs&quot; as per
-        <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">Replacing Blank Nodes with IRIs</a></cite>
-        of [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>]. Based on feedback from implementors the
-        Working Group may decide to disallow blank nodes as graph names and
-        properties in JSON-LD. If this change would affect you, be sure to
-        send in a comment.</p>
-    </div></div>
-
-    <div class="informative section">
-      <h4 id="overview-13">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>The JSON-LD document is expanded and converted to a <i>node map</i> using the
-        <a href="#node-map-generation">Node Map Generation algorithm</a>.
-        This allows each graph represented within the document to be
-        extracted and flattened, making it easier to process each
-        <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>. Each graph from the <i>node map</i>
-        is processed to extract <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triples</a>,
-        to which any (non-default) graph name is applied to create an
-        <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a>. Each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> in the
-        <i>node map</i> has an <code>@id</code> member which corresponds to the
-        <a class="tref internalDFN" title="rdf-subject" href="#dfn-rdf-subject">RDF subject</a>, the other members
-        represent <a class="tref internalDFN" title="rdf-predicate" href="#dfn-rdf-predicate">RDF predicates</a>. Each
-        member value is either an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
-        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> or can be transformed to an
-        <a class="tref externalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literal</a>
-        to generate an <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>. <a class="tref internalDFN" title="list" href="#dfn-list">Lists</a>
-        are transformed into an
-        <a class="tref externalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">RDF Collection</a>
-        using the <a href="#list-to-rdf-conversion">List to RDF Conversion algorithm.</a></p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-13">Algorithm</h4>
-
-      <p>The algorithm takes a JSON-LD document <i>element</i> and returns an
-        <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a>.</p>
-
-      <ol class="algorithm">
-        <li>Expand <i>element</i> according the
-          <a href="#expansion-algorithm">Expansion algorithm</a>.</li>
-        <li>Generate a <i>node map</i> according the
-          <a href="#node-map-generation">Node Map Generation algorithm</a>.</li>
-        <li>Initialize an empty <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a> <i>dataset</i>.</li>
-        <li>For each <i>graph name</i> and <i>graph</i> in <i>node map</i>:
-          <ol class="algorithm">
-            <li>Initialize <i>triples</i> as an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-            <li>For each <i>subject</i> and <i>node</i> in <i>graph</i>:
-              <ol class="algorithm">
-                <li>For each <i>property</i> and <i>values</i> in <i>node</i>:
-                  <ol class="algorithm">
-                    <li>If <i>property</i> is <code>@type</code>, then for each
-                      <i>type</i> in <i>values</i>, append a <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a>
-                      composed of <i>subject</i>, <code>rdf:type</code>,
-                      and <i>type</i> to <i>triples</i>.</li>
-                    <li>Otherwise, if <i>property</i> is a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>
-                      continue to the next <i>property</i>-<i>values</i> pair.</li>
-                    <li>Otherwise, <i>property</i> is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
-                      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. For each <i>item</i>
-                      in <i>values</i>:
-                      <ol class="algorithm">
-                        <li>If <i>item</i> is a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, initialize
-                          <i>list triples</i> as an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> and
-                          <i>list head</i> to the result of the <a href="#list-to-rdf-conversion">List Conversion algorithm</a>, passing
-                          the value associated with the <code>@list</code> key from
-                          <i>item</i> and <i>list triples</i>. Append first a
-                          <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a> composed of <i>subject</i>,
-                          <i>property</i>, and <i>list head</i> to <i>triples</i> and
-                          finally append all <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triples</a> from
-                          <i>list triples</i> to <i>triples</i>.</li>
-                        <li>Otherwise, <i>item</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>
-                          or a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>. Append a <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a>
-                          composed of <i>subject</i>, <i>property</i>, and
-                          the result of using the
-                          <a href="#object-to-rdf-conversion">Object to RDF Conversion algorithm</a>
-                          passing <i>item</i> to <i>triples</i>.</li>
-                      </ol>
-                    </li>
-                  </ol>
-                </li>
-              </ol>
-            </li>
-            <li>If <i>graph name</i> is <code>@default</code>, add
-              <i>triples</i> to the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> in <i>dataset</i>.</li>
-            <li>Otherwise, create a <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graph</a> in <i>dataset</i>
-              composed of <i>graph name</i> and add <i>triples</i>.</li>
-          </ol>
-        </li>
-        <li>Return <i>dataset</i>.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Convert to RDF Algorithm -->
-
-
-  <div class="section" id="object-to-rdf-conversion">
-    <h3><span class="secno">10.2 </span>Object to RDF Conversion</h3>
-
-    <p>This algorithm takes a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> or <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>
-      and transforms it into an
-      <a class="tref externalDFN" title="rdf-resource" href="http://www.w3.org/TR/rdf11-concepts/#dfn-resource">RDF resource</a>
-      to be used as the <a class="tref internalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object">object</a> of an <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>.</p>
-
-    <div class="informative section">
-      <h4 id="overview-14">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p><a class="tref internalDFN" title="value-object" href="#dfn-value-object">Value objects</a> are transformed to
-        <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a> as described in
-        <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>
-        whereas <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> are transformed
-        to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> or
-        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-14">Algorithm</h4>
-
-      <p>The algorithm takes as its sole argument <i>item</i> which must be
-        either a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> or <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</p>
-
-      <ol class="algorithm">
-        <li>If <i>item</i> is a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> return the
-          <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> associated
-          with its <code>@id</code> member.</li>
-        <li>Otherwise, <i>item</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>. Initialize
-          <i>value</i> to the value associated with the <code>@value</code>
-          member in <i>item</i>.
-        </li><li>Initialize <i>datatype</i> to the value associated with the
-          <code>@type</code> member of <i>item</i> or  <a class="tref internalDFN" title="null" href="#dfn-null">null</a> if
-          <i>item</i> does not have such a member.</li>
-        <li>If <i>value</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or
-          <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, set <i>value</i> to the <a class="tref internalDFN" title="string" href="#dfn-string">string</a>
-          <code>true</code> or <code>false</code> which is the
-          <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> as described in
-          <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>
-          If <i>datatype</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
-          <code>xsd:boolean</code>.</li>
-        <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> with fractions
-          or <i>value</i> is a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> and <i>datatype</i> equals
-          <code>xsd:double</code>, convert <i>value</i> to a
-          <a class="tref internalDFN" title="string" href="#dfn-string">string</a> in <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of
-          an <code>xsd:double</code> as defined in [<cite><a class="bibref" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>]
-          and described in
-          <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>.
-          If <i>datatype</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
-          <code>xsd:double</code>.</li>
-        <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> without fractions
-          or <i>value</i> is a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> and <i>datatype</i> equals
-          <code>xsd:integer</code>, convert <i>value</i> to a
-          <a class="tref internalDFN" title="string" href="#dfn-string">string</a> in <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of
-          an <code>xsd:integer</code> as defined in [<cite><a class="bibref" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>]
-          and described in
-          <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>.
-          If <i>datatype</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
-          <code>xsd:integer</code>.</li>
-        <li>Otherwise, if <i>datatype</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
-          <code>xsd:string</code> or <code>rdf:langString</code>, depending on if
-          item has an <code>@language</code> member.</li>
-        <li>Initialize <i>literal</i> as an <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literal</a> using
-          <i>value</i> and <i>datatype</i>. If <i>item</i> has an
-          <code>@language</code> member, add the value associated with the
-          <code>@language</code> key as the language tag of <i>literal</i>.</li>
-        <li>Return <i>literal</i>.</li>
-
-      </ol>
-    </div>
-  </div>
-<!-- end of Object to RDF Conversion -->
-
-
-  <div class="section" id="list-to-rdf-conversion">
-    <h3><span class="secno">10.3 </span>List to RDF Conversion</h3>
-
-    <p>List Conversion is the process of taking a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>
-      and transforming it into an
-      <a class="tref externalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">RDF Collection</a>
-      as defined in RDF Semantics [<cite><a class="bibref" href="#bib-RDF-MT">RDF-MT</a></cite>].</p>
-
-    <div class="informative section">
-      <h4 id="overview-15">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>For each element of the <a class="tref internalDFN" title="list" href="#dfn-list">list</a> a new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
-        is allocated which is used to generate <code>rdf:first</code> and
-        <code>rdf:rest</code> <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">triples</a>. The
-        algorithm returns the list head, which is either the the first allocated
-        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> or <code>rdf:nil</code> if the
-        <a class="tref internalDFN" title="list" href="#dfn-list">list</a> is empty.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-15">Algorithm</h4>
-
-      <p>The algorithm takes two inputs: an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>list</i>
-        and an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>list triples</i> used for returning
-        the generated <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">triples</a>.</p>
-
-      <ol class="algorithm">
-        <li>If <i>list</i> is empty, return <code>rdf:nil</code>.</li>
-        <li>Otherwise, create an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>bnodes</i> composed of a
-          <a href="#generate-blank-node-identifier">newly generated blank node identifier</a>
-          for each entry in <i>list</i>.</li>
-        <li>Initialize an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>list triples</i>.</li>
-        <li>For each pair of <i>subject</i> from <i>bnodes</i> and <i>item</i> from <i>list</i>:
-          <ol class="algorithm">
-            <li>Append a <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a> composed of <i>subject</i>,
-              <code>rdf:first</code>, and the result of using th
-              <a href="#object-to-rdf-conversion">Object to RDF Conversion algorithm</a>
-              passing <i>item</i> to <i>list triples</i>.</li>
-            <li>Set <i>rest</i> as the next entry in <i>bnodes</i>, or if that
-              does not exist, <code>rdf:nil</code>. Append a
-              <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a> composed of <i>subject</i>,
-              <code>rdf:rest</code>, and <i>rest</i> to <i>list triples</i>.</li>
-          </ol>
-        </li>
-        <li>Return the first <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> from <i>bnodes</i> or
-          <code>rdf:nil</code> if <i>bnodes</i> is empty.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of List to RDF -->
-
-
-  <div class="section" id="convert-from-rdf-algorithm">
-    <h3><span class="secno">10.4 </span>Convert from RDF Algorithm</h3>
-
-    <p>This algorithm converts an <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a> consisting of a
-      <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> and zero or more
-      <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graphs</a> into a JSON-LD document.</p>
-
-    <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 5</span>: Converting list of lists to JSON-LD </div><div class="atrisk">
-      <p class="atrisk-head">Note: This feature is
-        <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
-        be removed from this specification based on feedback. Please send feedback to
-        <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
-        For the current status see
-        <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
-      <p>In the interest of space and simplicity, the steps necessary for handling lists
-        of lists have been omitted. Such lists and their elements must, recursively,
-        be handled like other lists. Lists of lists can, however, not be represented
-        in JSON-LD using <code>@list</code>; they have to be represented as a set of
-        interlinked node objects using RDF's <code>rdf:first</code> and <code>rdf:rest</code>
-        properties. The Working Group might either require handling of lists-of-lists or
-        forbid them in JSON-LD 1.0. Implementers please send reports of whether you are
-        able to implement handling for lists-of-lists or would instead request such
-        structures be disallowed.</p>
-    </div></div>
-
-    <div class="informative section">
-      <h4 id="overview-16">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p>Iterate through each graph in the dataset, converting
-        <a class="tref internalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">RDF Collections</a> into a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>
-        and generating a JSON-LD document in expanded form for all
-        <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a>, <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
-        and <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>.
-        If the <i>use native types</i> flag is set to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
-        <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a> with a
-        <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-        that equals <code>xsd:integer</code> or <code>xsd:double</code> are converted
-        to a <a class="tref internalDFN" title="number" href="#dfn-number">JSON numbers</a> and <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a>
-        with a <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-        that equals <code>xsd:boolean</code> are converted to <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or
-        <a class="tref internalDFN" title="false" href="#dfn-false">false</a> based on their
-        <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
-        as described in
-        <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-16">Algorithm</h4>
-
-      <p>The algorithm takes two required inputs: an <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a> and a flag
-        <i>use native types</i> that defaults to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>.</p>
-
-      <ol class="algorithm">
-        <li>Initialize <i>default graph</i> to a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
-          consisting of two members, <code>nodeMap</code> and <code>listMap</code>,
-          whose value is an an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-        <li>Initialize <i>graph map</i> to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting
-          of a single member <code>@default</code> whose value is set to
-          reference <i>default graph</i>.</li>
-        <li>Reference the <code>nodeMap</code> member of <i>default graph</i>
-          using the variable <i>default graph nodes</i>.</li>
-        <li>For each <i>graph</i> in <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a>:
-          <ol class="algorithm">
-            <li>If <i>graph</i> is the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a>,
-              set <i>name</i> to <code>@default</code>, otherwise to the
-              <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> associated with <i>graph</i>.</li>
-            <li>If <i>graph map</i> has no <i>name</i> member, create one and set
-              its value to a to a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of two
-              members, <code>nodeMap</code> and <code>listMap</code>, whose value
-              is an an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-            <li>If <i>graph</i> is not the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> and
-              <i>default graph nodes</i> does not have a <i>name</i> member,
-              create such a member and initialize its value to a new
-              <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with a single member <code>@id</code>
-              whose value is <i>name</i>.</li>
-            <li>Reference the value of the <i>name</i> member in <i>graph map</i>
-              using the variable <i>graph object</i>.</li>
-            <li>Reference the value of the <code>nodeMap</code> member in
-              <i>graph object</i> using the variable <i>node map</i> and the
-              value of the <code>listMap</code> member using the variable
-              <i>list map</i>.</li>
-            <li>For each <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a> in <i>graph</i>
-              consisting of <i>subject</i>, <i>predicate</i>, and <i>object</i>:
-              <ol class="algorithm">
-                <li>If <i>predicate</i> equals <code>rdf:first</code>,
-                  <ol class="algorithm">
-                    <li>If <i>list map</i> has no <i>subject</i> member, create
-                      one and initialize it to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-                    <li>Initialize the value of the <code>first</code> member of
-                      the <i>subject</i> member of <i>list map</i> to the result of the
-                      <a href="#rdf-to-object-conversion">RDF to Object Conversion algorithm</a>,
-                      passing <i>object</i> and <i>use native types</i>.</li>
-                    <li>Continue with the next <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>.</li>
-                  </ol>
-                </li><li>If <i>predicate</i> equals <code>rdf:rest</code>:
-                  <ol class="algorithm">
-                    <li>If <i>list map</i> has no <i>subject</i> member, create
-                      one and initialize it to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-                    <li>Initialize the value of the <code>rest</code> member of
-                      the <i>subject</i> member of <i>list map</i> to
-                      <a class="tref internalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object">object</a>, which is either an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-                      or <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
-                    <li>Continue with the next <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>.</li>
-                  </ol>
-                </li>
-                <li>If <i>node map</i> does not have a <i>subject</i> member,
-                  create one and initialize its value to a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
-                  consisting of a single member <code>@id</code> whose value is
-                  set to <i>subject</i>.</li>
-                <li>Reference the value of the <i>subject</i> member in <i>node map</i>
-                  using the variable <i>node</i>.</li>
-                <li>If <i>predicate</i> equals <code>rdf:type</code>, and <i>object</i>
-                  is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>,
-                  append <i>object</i> to the value of the <code>@type</code>
-                  member of <i>node</i>. If no such member exists, create one
-                  and initialize it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> whose only item is
-                  <i>object</i>. Finally, continue to the next
-                  <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>.</li>
-                <li>If <i>node</i> does not have an <i>predicate</i> member, create one
-                  and initialize its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                <li>Set <i>value</i> to the result of using the
-                  <a href="#rdf-to-object-conversion">RDF to Object Conversion algorithm</a>,
-                  passing <i>object</i> and <i>use native types</i>.</li>
-                <li>Add a reference to <i>value</i> to the to the <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-                  associated with the <i>predicate</i> member of <i>node</i>.</li>
-                <li>If <i>object</i> is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a
-                  <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> it might represent the
-                  head of a RDF list:
-                  <ol class="algorithm">
-                    <li>If <i>list map</i> has no <i>object</i> member, create
-                      one and set its value to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
-                    <li>Set the <code>head</code> member of the <i>object</i>
-                      member of <i>list map</i> to a reference of <i>value</i>.
-                      This reference may be required later to replace the
-                      <i>value</i> in the <i>predicate</i> member of <i>node</i>
-                      with a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>.</li>
-                  </ol>
-                </li>
-              </ol>
-            </li>
-          </ol>
-        </li>
-        <li>For each <i>name</i> and <i>graph object</i> in <i>graph map</i>:
-          <ol class="algorithm">
-            <li>Reference the value of the <code>listMap</code> member in
-              <i>graph object</i> using the variable <i>list map</i>.</li>
-            <li>For each key-value pair <i>subject</i>-<i>entry</i> of the
-              value associated to the <code>listMap</code> member of
-              <i>graph object</i>:
-              <ol class="algorithm">
-                <li>If <i>entry</i> has not an <code>head</code> and an
-                  <code>first</code> member it does not represent the head of
-                  a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>. Continue with the next key-value pair.</li>
-                <li>Reference the value of the <code>head</code> member in <i>entry</i>
-                  using the variable <i>value</i>.</li>
-                <li>Remove the <code>@id</code> member from <i>value</i>.</li>
-                <li>Add an <code>@list</code> member to <i>value</i> and initialize
-                  it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing the value of the
-                  <code>first</code> member of <i>entry</i>.</li>
-                <li>While the value associated with the <code>rest</code> member
-                  of <i>entry</i> is not <code>rdf:nil</code>:
-                  <ol class="algorithm">
-                    <li>Set <i>rest</i> to the value of the <code>rest</code>
-                      member of <i>entry</i>.</li>
-                    <li>Set <i>entry</i> to the value associated with the
-                      <i>rest</i> member of <i>list map</i>.</li>
-                    <li>Add the value associated with the <code>first</code>
-                      member of <i>entry</i> to the <code>@list</code> member
-                      of <i>value</i>.</li>
-                  </ol>
-                </li>
-              </ol>
-            </li>
-          </ol>
-        </li>
-        <li>Initialize an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>result</i>.</li>
-        <li>For each <i>subject</i> and <i>node</i> in <i>default graph nodes</i>
-          ordered by <i>subject</i>:
-          <ol class="algorithm">
-            <li>If <i>graph map</i> has an <i>subject</i> member:
-              <ol class="algorithm">
-                <li>Add a <code>@graph</code> member to <i>node</i> and initialize
-                  its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
-                <li>Reference the <code>nodeMap</code> member of the <i>subject</i>
-                  member of <i>graph map</i> using the variable <i>node map</i>.</li>
-                <li>For each key-value pair <i>s</i>-<i>n</i> in <i>node map</i>
-                  ordered by <i>s</i>, append <i>n</i> to the <code>@graph</code>
-                  member of <i>node</i>.</li>
-              </ol>
-            </li><li>Append <i>node</i> to <i>result</i>.</li>
-          </ol>
-        </li>
-        <li>Return <i>result</i>.</li>
-      </ol>
-    </div>
-  </div>
-<!-- end of Convert from RDF algorithm -->
-
-
-  <div class="section" id="rdf-to-object-conversion">
-    <h3><span class="secno">10.5 </span>RDF to Object Conversion</h3>
-
-    <p>This algorithm transforms an RDF literal to a JSON-LD <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>
-      and a RDF blank node or <abbr title="Internationalized Resource Identifier">IRI</abbr> to an JSON-LD <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</p>
-
-    <div class="informative section">
-      <h4 id="overview-17">Overview</h4><p><em>This section is non-normative.</em></p>
-
-      <p><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a> are transformed to
-        <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value objects</a> whereas <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> and
-        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a> are
-        transformed to <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a>.
-        If the <i>use native types</i> flag is set to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
-        <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a> with a
-        <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-        that equals <code>xsd:integer</code> or <code>xsd:double</code> are converted
-        to a <a class="tref internalDFN" title="number" href="#dfn-number">JSON numbers</a> and <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a>
-        with a <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-        that equals <code>xsd:boolean</code> are converted to <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or
-        <a class="tref internalDFN" title="false" href="#dfn-false">false</a> based on their
-        <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
-        as described in
-        <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>.</p>
-    </div>
-
-    <div class="section">
-      <h4 id="algorithm-17">Algorithm</h4>
-
-      <p>This algorithm takes two required inputs: a <i>value</i> to be converted
-        to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> and a flag <i>use native types</i>.</p>
-
-      <ol class="algorithm">
-        <li>If <i>value</i> is an an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a
-          <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>:
-          <ol class="algorithm">
-            <li>If <i>value</i> equals <code>rdf:nil</code> return a new
-              <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of a single member
-              <code>@list</code> whose value is set to an empty
-              <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. This is behavior is required by the
-              <a href="#convert-from-rdf-algorithm">Convert from RDF algorithm</a>.</li>
-            <li>Otherwise, return a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of
-              a single member <code>@id</code> whose value is set to <i>value</i>.</li>
-          </ol>
-        </li>
-        <li>Otherwise <i>value</i> is an
-          <a class="tref externalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literal</a>:
-          <ol class="algorithm">
-            <li>Initialize a new empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> result.</li>
-            <li>Initialize <i>converted value</i> to <i>value</i>.</li>
-            <li>Initialize <i>type</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a></li>
-            <li>If <i>use native types</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>
-              <ol class="algorithm">
-                <li>If the
-                  <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-                  of <i>value</i> equals <code>xsd:string</code>, set
-                  <i>converted value</i> to the
-                  <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
-                  of <i>value</i>.</li>
-                <li>Otherwise, if the
-                  <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-                  of <i>value</i> equals <code>xsd:boolean</code>, set
-                  <i>converted value</i> to <a class="tref internalDFN" title="true" href="#dfn-true">true</a> if the
-                  <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
-                  of <i>value</i> matches <code>true</code>, or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>
-                  if it matches <code>false</code>. If it matches neither,
-                  set <i>type</i> to <code>xsd:boolean</code>.</li>
-                <li>Otherwise, if the
-                  <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-                  of <i>value</i> equals <code>xsd:integer</code> or
-                  <code>xsd:double</code> and its
-                  <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
-                  is a valid <code>xsd:integer</code> or <code>xsd:double</code>
-                  according [<cite><a class="bibref" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>], set <i>converted value</i>
-                  to the result of converting the
-                  <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
-                  to a JSON <a class="tref internalDFN" title="number" href="#dfn-number">number</a>.</li>
-              </ol>
-            </li>
-            <li>Otherwise, if <i>value</i> is a
-              <a class="tref externalDFN" title="language-tagged-string" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string">language-tagged string</a>
-              add a member <code>@language</code> to <i>result</i> and set its value to the
-              <a class="tref externalDFN" title="language-tag" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tag">language tag</a>
-              of <i>value</i>.</li>
-            <li>Otherwise, set <i>type</i> to the
-              <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-              of <i>value</i>, unless it equals <code>xsd:string</code> which is ignored.</li>
-            <li>Add a member <code>@value</code> to <i>result</i> whose value
-              is set to <i>converted value</i>.</li>
-            <li>If <i>type</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, add a member <code>@type</code>
-              to <i>result</i> whose value is set to <i>type</i>.</li>
-            <li>Return <i>result</i>.</li>
-          </ol>
-        </li>
-      </ol>
-    </div>
-  </div>
-
-  <div class="section" id="data-round-tripping">
-    <h3><span class="secno">10.6 </span>Data Round Tripping</h3>
-
-    <p>When <a href="#convert-to-rdf-algorithm">converting JSON-LD to RDF</a>
-      JSON-native <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a> are automatically
-      type-coerced to <code>xsd:integer</code> or <code>xsd:double</code>
-      depending on whether the <a class="tref internalDFN" title="number" href="#dfn-number">number</a> has fractions or not,
-      the boolean values <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and <a class="tref internalDFN" title="false" href="#dfn-false">false</a> are
-      coerced to <code>xsd:boolean</code>, and <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>
-      are coerced to <code>xsd:string</code>. The numeric or boolean values
-      itself are converted to <dfn title="canonical-lexical-form" id="dfn-canonical-lexical-form">canonical lexical form</dfn>, i.e., a
-      deterministic string representation as defined in
-      [<cite><a class="bibref" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>].</p>
-
-    <p>The <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of an <em>integer</em>, i.e.,
-      a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> without fractions or a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> coerced
-      to <code>xsd:integer</code>, is a finite-length sequence of decimal
-      digits (<code>0-9</code>) with an optional leading minus sign; leading
-      zeros are prohibited. In JavaScript, implementers can use the following
-      snippet of code to convert an integer to
-      <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a>:</p>
-
-    <div class="example"><div class="example-title"><span>Example 12</span>: Sample integer serialization implementation in JavaScript</div><pre class="example">(value).toFixed(0).toString()</pre></div>
-
-    <p>The <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of a <em>double</em>, i.e., a
-      <a class="tref internalDFN" title="number" href="#dfn-number">number</a> with fractions or a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> coerced to
-      <code>xsd:double</code>, consists of a mantissa followed by the
-      character <code>E</code>, followed by an exponent. The mantissa is a
-      decimal number and the exponent is an integer. Leading zeros and a
-      preceding plus sign (<code>+</code>) are prohibited in the exponent.
-      If the exponent is zero, it is indicated by <code>E0</code>. For the
-      mantissa, the preceding optional plus sign is prohibited and the
-      decimal point is required. Leading and trailing zeros are prohibited
-      subject to the following: number representations must be normalized
-      such that there is a single digit which is non-zero to the left of
-      the decimal point and at least a single digit to the right of the
-      decimal point unless the value being represented is zero. The
-      canonical representation for zero is <code>0.0E0</code>.
-      <code>xsd:double</code>'s value space is defined by the IEEE
-      double-precision 64-bit floating point type [<cite><a class="bibref" href="#bib-IEEE-754-1985">IEEE-754-1985</a></cite>] whereas
-      the value space of JSON <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a> is not
-      specified; when converting JSON-LD to RDF the mantissa is rounded to
-      15 digits after the decimal point. In JavaScript, implementers
-      can use the following snippet of code to convert a double to
-      <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a>:</p>
-
-    <div class="example"><div class="example-title"><span>Example 13</span>: Sample floating point number serialization implementation in JavaScript</div><pre class="example">(value).toExponential(15).replace(/(\d)0*e\+?/,'$1E')</pre></div>
-
-    <p>The <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of the <em>boolean</em>
-      values <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and <a class="tref internalDFN" title="false" href="#dfn-false">false</a> are the strings
-      <code>true</code> and <code>false</code>.</p>
-
-    <p>When JSON-native <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>, are converted
-      to RDF, lossless data round-tripping can not be guaranteed as rounding
-      errors might occur. When converting
-      <a href="#convert-from-rdf-algorithm">RDF to JSON-LD</a>, similar
-      rounding errors might occur. Furthermore, the datatype or the lexical
-      representation might be lost. An <code>xsd:double</code> with a value
-      of <code>2.0</code> will, e.g., result in an <code>xsd:integer</code>
-      with a value of <code>2</code> in <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a>
-      when converted from RDF to JSON-LD and back to RDF. It is important
-      to highlight that in practice it might be impossible to losslessly
-      convert an <code>xsd:integer</code> to a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> because
-      its value space is not limited. While the JSON specification [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]
-      does not limit the value space of <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>
-      either, concrete implementations typically do have a limited value
-      space.</p>
-
-    <p>To ensure lossless round-tripping the
-      <a href="#convert-from-rdf-algorithm">Converting from RDF algorithm</a>
-      specifies an <i>use native types</i> flag which controls whether
-      <a class="tref externalDFN" title="rdf-literals" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a>
-      with a <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-      equal to <code>xsd:integer</code>, <code>xsd:double</code>, or
-      <code>xsd:boolean</code> are converted to their JSON-native
-      counterparts. If the <i>use native types</i> flag is set to
-      <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, all literals remain in their original string
-      representation.</p>
-
-    <p>Some JSON serializers, such as PHP's native implementation in some versions,
-      backslash-escape the forward slash character. For example, the value
-      <code>http://example.com/</code> would be serialized as <code>http:\/\/example.com\/</code>.
-      This is problematic as other JSON parsers might not understand those escaping characters.
-      There is no need to backslash-escape forward slashes in JSON-LD. To aid
-      interoperability between JSON-LD processors, forward slashes <em class="rfc2119" title="MUST NOT">MUST NOT</em> be
-      backslash-escaped.</p>
-  </div>
-<!-- end of Data Round Tripping -->
-
-</div>
-
-
-<div class="section" id="the-application-programming-interface">
-
-<!--OddPage-->
-<h2><span class="secno">11. </span>The Application Programming Interface</h2>
-
-  <p>This API provides a clean mechanism that enables developers to convert
-    JSON-LD data into a variety of output formats that are often easier to
-    work with. A conformant <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementation</a> <em class="rfc2119" title="MUST">MUST</em>
-    implement the entirety of the following API.</p>
-
-  <div class="section" id="the-jsonldprocessor-interface">
-    <h3><span class="secno">11.1 </span>The <a href="#idl-def-JsonLdProcessor" class="idlType"><code>JsonLdProcessor</code></a> Interface</h3>
-
-    <p>The <a href="#idl-def-JsonLdProcessor" class="idlType"><code>JsonLdProcessor</code></a> interface is the high-level programming structure
-      that developers use to access the JSON-LD transformation methods.</p>
-
-    <p>It is important to highlight that conformant
-      <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementations</a>
-      <em class="rfc2119" title="MUST NOT">MUST NOT</em> modify the input parameters. If an error is detected, the <i>callback</i>
-      is invoked passing a <a href="#idl-def-JsonLdError" class="idlType"><code>JsonLdError</code></a> with the corresponding error
-      <code class="idlMemberName"><a href="#widl-JsonLdError-code">code</a></code>
-      and processing is stopped.</p>
-
-    <pre class="idl"><span class="idlInterface" id="idl-def-JsonLdProcessor">[<span class="extAttr">Constructor</span>]
-interface <span class="idlInterfaceID">JsonLdProcessor</span> {
-<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">expand</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span>
-<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">compact</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a>?</span> <span class="idlParamName">context</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span>
-<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">flatten</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a>?</span> <span class="idlParamName">context</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span>
-};</span></pre><div class="section"><h4 id="methods">Methods</h4><dl class="methods"><dt id="widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><code>compact</code></dt><dd>
-        <p><a href="#compaction">Compacts</a> the given <i>input</i> using the
-          <i>context</i> according to the steps in the
-          <a href="#compaction-algorithm">Compaction algorithm</a>:</p>
-
-        <ol class="algorithm">
-          <li>If the passed <i>input</i> is a <span class="idlParamType">DOMString</span>
-            representing the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> of a remote document, dereference it.
-            If the retrieved document has a content type different than
-            <code>application/ld+json</code> or <code>application/json</code> or
-            if the document cannot be parsed as JSON, invoke the <i>callback</i> passing an
-            <code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed">loading document failed</a></code>
-            error.</li>
-          <li>Initialize a new empty <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
-          <li>If an
-            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
-            has been passed, update the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
-            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
-            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
-            as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
-          <li>If the <i>input</i> has been retrieved and the response has a content type
-            <code>application/json</code> and an HTTP Link Header [<cite><a class="bibref" href="#bib-RFC5988">RFC5988</a></cite>] using the
-            <code>http://www.w3.org/ns/json-ld#context</code> link relation, update the
-            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
-            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
-            context referenced in the HTTP Link Header as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
-          <li>Set <i>expanded</i> to the result of using the
-            <a href="#expansion-algorithm">Expansion algorithm</a>, passing the
-            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and <i>input</i> as <i>element</i>.</li>
-          <li>Set <i>compacted</i> to the result of using the
-            <a href="#compaction-algorithm">Compaction algorithm</a>, passing
-            <i>context</i>, <i>expanded</i> as <i>element</i>, and if passed, the
-            <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
-            flag in <i>options</i>.</li>
-          <li>Invoke <i>callback</i>, passing <a class="tref internalDFN" title="null" href="#dfn-null">null</a> for <i>error</i> and
-            <i>compacted</i> for <i>document</i>.</li>
-        </ol>
-
-
-      <table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">input</td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">The JSON-LD object or array of JSON-LD objects to perform the compaction upon or an
-            <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> referencing the JSON-LD document to compact.</td></tr><tr><td class="prmName">context</td><td class="prmType"><code><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptFalse">✘</td><td class="prmDesc">The context to use when compacting the <code>input</code>; either in the
-            form of a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> or as <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr><tr><td class="prmName">callback</td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">A callback that is called when processing completed successfully
-            on the given <code>input</code>, or a fatal error prevented
-            processing from completing.</td></tr><tr><td class="prmName">options</td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptTrue">✔</td><td class="prmDesc">A set of options to configure the algorithms. This allows, e.g.,
-            to set the input document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr></table><div><em>Return type: </em><code><a>void</a></code></div></dd><dt id="widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options"><code>expand</code></dt><dd>
-        <p><a href="#expansion">Expands</a> the given <i>input</i> according to
-          the steps in the <a href="#expansion-algorithm">Expansion algorithm</a>:</p>
-
-        <ol class="algorithm">
-          <li>If the passed <i>input</i> is a <span class="idlParamType">DOMString</span>
-            representing the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> of a remote document, dereference it. If the retrieved document has a content type
-            different than <code>application/ld+json</code> or <code>application/json</code> or
-            if the document cannot be parsed as JSON, invoke the <i>callback</i> passing an
-            <code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed">loading document failed</a></code>
-            error.</li>
-          <li>Initialize a new empty <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
-          <li>If an
-            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
-            has been passed, update the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
-            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
-            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
-            as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
-          <li>If the <i>input</i> has been retrieved and the response has a content type
-            <code>application/json</code> and an HTTP Link Header [<cite><a class="bibref" href="#bib-RFC5988">RFC5988</a></cite>] using the
-            <code>http://www.w3.org/ns/json-ld#context</code> link relation, update the
-            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
-            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
-            context referenced in the HTTP Link Header as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
-          <li>Set <i>expanded</i> to the result of using the
-            <a href="#expansion-algorithm">Expansion algorithm</a>, passing the
-            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and <i>input</i> as <i>element</i>.</li>
-          <li>Invoke <i>callback</i>, passing <a class="tref internalDFN" title="null" href="#dfn-null">null</a> for <i>error</i> and
-            <i>expanded</i> for <i>document</i>.</li>
-        </ol>
-
-
-      <table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">input</td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">The JSON-LD object or array of JSON-LD objects to perform the expansion upon or an
-            <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> referencing the JSON-LD document to expand.</td></tr><tr><td class="prmName">callback</td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">A callback that is called when processing completed successfully
-            on the given <code>input</code>, or a fatal error prevented
-            processing from completing.</td></tr><tr><td class="prmName">options</td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptTrue">✔</td><td class="prmDesc">A set of options to configure the used algorithms such. This allows, e.g.,
-            to set the input document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr></table><div><em>Return type: </em><code><a>void</a></code></div></dd><dt id="widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><code>flatten</code></dt><dd>
-        <p><a href="#flattening">Flattens</a> the given <i>input</i> and
-          <a href="#compaction">compacts</a> it using the passed <i>context</i>
-          according to the steps in the <a href="#flattening-algorithm">Flattening algorithm</a>:</p>
-
-        <ol class="algorithm">
-          <li>If the passed <i>input</i> is a <span class="idlParamType">DOMString</span>
-            representing the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> of a remote document, dereference it. If the retrieved document has a content type
-            different than <code>application/ld+json</code> or <code>application/json</code> or
-            if the document cannot be parsed as JSON, invoke the <i>callback</i> passing an
-            <code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed">loading document failed</a></code>
-            error.</li>
-          <li>Initialize a new empty <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
-          <li>If an
-            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
-            has been passed, update the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
-            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
-            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
-            as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
-          <li>If the <i>input</i> has been retrieved and the response has a content type
-            <code>application/json</code> and an HTTP Link Header [<cite><a class="bibref" href="#bib-RFC5988">RFC5988</a></cite>] using the
-            <code>http://www.w3.org/ns/json-ld#context</code> link relation, update the
-            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
-            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
-            context referenced in the HTTP Link Header as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
-          <li>Set <i>expanded</i> to the result of using the
-            <a href="#expansion-algorithm">Expansion algorithm</a>, passing the
-            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and <i>input</i> as <i>element</i>.</li>
-          <li>Initialize an empty <i>identifier map</i> and a <i>counter</i> (set to <code>0</code>)
-            to be used by the
-            <a href="#generate-blank-node-identifier">Generate Blank Node Identifier algorithm</a>.</li>
-          <li>Set <i>flattened</i> to the result of using the
-            <a href="#flattening-algorithm">Flattening algorithm</a>, passing
-            <i>expanded</i> as <i>element</i>, <i>context</i>, and if passed, the
-            <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
-            flag in <i>options</i> (which is internally passed to the
-            <a href="#compaction-algorithm">Compaction algorithm</a>).</li>
-          <li>Invoke <i>callback</i>, passing <a class="tref internalDFN" title="null" href="#dfn-null">null</a> for <i>error</i> and
-            <i>flattened</i> for <i>document</i>.</li>
-        </ol>
-
-
-      <table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">input</td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">The JSON-LD object or array of JSON-LD objects or an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-            referencing the JSON-LD document to flatten.</td></tr><tr><td class="prmName">context</td><td class="prmType"><code><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptFalse">✘</td><td class="prmDesc">The context to use when compacting the flattened <code>input</code>; either
-            in the form of a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> or as <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. If
-            <a class="tref internalDFN" title="null" href="#dfn-null">null</a> is passed, the result will not be compacted but kept
-            in expanded form.</td></tr><tr><td class="prmName">callback</td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">A callback that is called when processing completed successfully
-            on the given <code>input</code>, or a fatal error prevented
-            processing from completing.</td></tr><tr><td class="prmName">options</td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptTrue">✔</td><td class="prmDesc">A set of options to configure the used algorithms such. This allows, e.g.,
-            to set the input document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr></table><div><em>Return type: </em><code><a>void</a></code></div></dd></dl></div>
-
-    <pre class="idl"><span class="idlTypedef" id="idl-def-JsonLdInput">typedef <span class="idlTypedefType">(<a>object</a> or <a>object[]</a> or <a>DOMString</a>)</span> <span class="idlTypedefID">JsonLdInput</span>;</span></pre><div class="idlTypedefDesc">
-      <p>The identifier <a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a> is used to refer to the
-        <span class="idlTypedefType">(object or object[] or DOMString)</span> type.</p>
-    </div>
-
-    <pre class="idl"><span class="idlTypedef" id="idl-def-JsonLdContext">typedef <span class="idlTypedefType">(<a>object</a> or <a>DOMString</a>)</span> <span class="idlTypedefID">JsonLdContext</span>;</span></pre><div class="idlTypedefDesc">
-      <p>The identifier <a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a> is used to refer to the
-        <span class="idlTypedefType">(object or DOMString)</span> type.</p>
-    </div>
-  </div>
-<!-- end of JsonLdProcessor -->
-
-
-  <div class="section" id="callbacks">
-    <h3><span class="secno">11.2 </span>Callbacks</h3>
-
-    <p><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementations</a>
-      utilize callbacks in order to exchange information in an asynchronous manner
-      with applications. This section details the parameters of those callbacks.</p>
-
-    <div class="section">
-      <h4 id="jsonldcallback">JsonLdCallback</h4>
-      <p>The <a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a> is called when an API method of
-        <a href="#idl-def-JsonLdProcessor" class="idlType"><code>JsonLdProcessor</code></a> has been completed, either successfully or
-        by a fatal error.</p>
-
-      <pre class="idl"><span class="idlCallback" id="idl-def-JsonLdCallback">callback <span class="idlCallbackID">JsonLdCallback</span> = <span class="idlCallbackType"><a>void</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-JsonLdError"><code>JsonLdError</code></a></span> <span class="idlParamName">error</span></span>, <span class="idlParam">optional <span class="idlParamType"><a>(object or object[])</a></span> <span class="idlParamName">document</span></span>);</span></pre><section><h5 id="callback-jsonldcallback-parameters">Callback <a class="idlType" href="#idl-def-JsonLdCallback"><code>JsonLdCallback</code></a> Parameters</h5><dl class="callback-members"><dt id="widl-JsonLdCallback-error"><code>error</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-JsonLdError"><code>JsonLdError</code></a></span></dt><dd>If the value is <a title="null" class="tref internalDFN" href="#dfn-null">null</a>, then no issue was detected
-          during processing. Otherwise, a processing error was detected and
-          the details are contained within the <em>error</em> object.</dd><dt id="widl-JsonLdCallback-document"><code>document</code> of type <span class="idlMemberType"><a>(object or object[])</a></span></dt><dd>The processed JSON-LD document.</dd></dl></div>
-    </div>
-
-    <div class="section">
-      <h4 id="loadcontextcallback">LoadContextCallback</h4>
-      <p>The <a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a> defines the callback that custom context loaders
-        have to implement to be used to retrieve remote contexts.</p>
-
-      <pre class="idl"><span class="idlCallback" id="idl-def-LoadContextCallback">callback <span class="idlCallbackID">LoadContextCallback</span> = <span class="idlCallbackType"><a>void</a></span> (<span class="idlParam"><span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">url</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-ContextLoadedCallback" class="idlType"><code>ContextLoadedCallback</code></a></span> <span class="idlParamName">callback</span></span>);</span></pre><div class="section"><h5 id="callback-loadcontextcallback-parameters">Callback <a class="idlType" href="#idl-def-LoadContextCallback"><code>LoadContextCallback</code></a> Parameters</h5><dl class="callback-members"><dt id="widl-LoadContextCallback-url"><code>url</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>The URL of the remote context to load.</dd><dt id="widl-LoadContextCallback-callback"><code>callback</code> of type <span class="idlMemberType"><a href="#idl-def-ContextLoadedCallback" class="idlType"><code>ContextLoadedCallback</code></a></span></dt><dd>The callback that is called when the remote context has been
-          successfully loaded or an error preventing its loading has been
-          detected.</dd></dl></div>
-    </div>
-
-    <div class="section">
-      <h4 id="contextloadedcallback">ContextLoadedCallback</h4>
-      <p>The <a href="#idl-def-ContextLoadedCallback" class="idlType"><code>ContextLoadedCallback</code></a> is called in response to a call
-        of the <a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a>.</p>
-
-      <pre class="idl"><span class="idlCallback" id="idl-def-ContextLoadedCallback">callback <span class="idlCallbackID">ContextLoadedCallback</span> = <span class="idlCallbackType"><a>void</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdError" class="idlType"><code>JsonLdError</code></a></span> <span class="idlParamName">error</span></span>, <span class="idlParam"><span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">url</span></span>, <span class="idlParam"><span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">context</span></span>);</span></pre><div class="section"><h5 id="callback-contextloadedcallback-parameters">Callback <a class="idlType" href="#idl-def-ContextLoadedCallback"><code>ContextLoadedCallback</code></a> Parameters</h5><dl class="callback-members"><dt id="widl-ContextLoadedCallback-error"><code>error</code> of type <span class="idlMemberType"><a href="#idl-def-JsonLdError" class="idlType"><code>JsonLdError</code></a></span></dt><dd>If the value is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, then no issue was detected
-          during processing. Otherwise, a processing issue was detected and
-          the details are contained within the <em>error</em> object. All
-          errors <em class="rfc2119" title="MUST">MUST</em> have a <a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a> of
-          <code class="error"><a href="#idl-def-JsonLdErrorCode.loading-remote-context-failed">loading remote context failed</a></code>.</dd><dt id="widl-ContextLoadedCallback-url"><code>url</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>The final URL of the loaded JSON-LD context. This is important
-          to handle HTTP redirects properly.</dd><dt id="widl-ContextLoadedCallback-context"><code>context</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>The raw content of the retrieved JSON-LD context.</dd></dl></div>
-    </div>
-  </div>
-<!-- end of Callbacks -->
-
-
-  <div class="section" id="data-structures">
-    <h3><span class="secno">11.3 </span>Data Structures</h3>
-    <p>This section describes datatype definitions used within the JSON-LD API.</p>
-
-    <div class="section">
-      <h4 id="jsonldoptions">JsonLdOptions</h4>
-      <p>The <a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a> type is used to pass various options to the
-        <a href="#idl-def-JsonLdProcessor" class="idlType"><code>JsonLdProcessor</code></a> methods.</p>
-      <pre class="idl"><span class="idlDictionary" id="idl-def-JsonLdOptions">dictionary <span class="idlDictionaryID">JsonLdOptions</span> {
-<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a></span>             <span class="idlMemberName"><a href="#widl-JsonLdOptions-base">base</a></span>;</span>
-<span class="idlMember">    <span class="idlMemberType"><a>boolean</a></span>               <span class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></span> = <span class="idlMemberValue">true</span>;</span>
-<span class="idlMember">    <span class="idlMemberType"><a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a></span>   <span class="idlMemberName"><a href="#widl-JsonLdOptions-loadContext">loadContext</a></span>;</span>
-<span class="idlMember">    <span class="idlMemberType">(<a>object</a> or <a>DOMString</a>)</span> <span class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></span> = <span class="idlMemberValue">null</span>;</span>
-<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a></span>             <span class="idlMemberName"><a href="#widl-JsonLdOptions-processingMode">processingMode</a></span> = <span class="idlMemberValue">&quot;json-ld-1.0&quot;</span>;</span>
-};</span></pre><div class="section"><h5 id="dictionary-jsonldoptions-members">Dictionary <a class="idlType" href="#idl-def-JsonLdOptions"><code>JsonLdOptions</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-JsonLdOptions-base"><code>base</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>The base <abbr title="Internationalized Resource Identifier">IRI</abbr> to use when expanding or compacting the document. This overrides the value of
-          <em>input</em> if it is an <abbr title="Internationalized Resource Identifier">IRI</abbr>. If not specified and <em>input</em> is not
-          an <abbr title="Internationalized Resource Identifier">IRI</abbr>, the base <abbr title="Internationalized Resource Identifier">IRI</abbr> defaults to the current document <abbr title="Internationalized Resource Identifier">IRI</abbr> if in a browser context,
-          or the empty string if there is no document context.
-          <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 4</span>: Default value of base member in JsonLdOptions</div><div class="atrisk">
-            <p class="atrisk-head">Note: This feature is
-              <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
-              be removed from this specification based on feedback. Please send feedback to
-              <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
-              For the current status see
-              <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
-            <p>The default value of <code class="idlMemberName"><a href="#widl-JsonLdOptions-base">base</a></code>
-              in <a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a> implies that all IRIs that cannot be compacted otherwise
-              are transformed to relative IRIs during compaction. To avoid that data is being
-              lost, developers thus have to store the base <abbr title="Internationalized Resource Identifier">IRI</abbr> along with the compacted document.
-              Based on implementer feedback, the  Working Group may decide to change the default
-              value to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, meaning that IRIs are not automatically compacted to
-              relative IRIs.</p>
-          </div></div>
-        </dd><dt id="widl-JsonLdOptions-compactArrays"><code>compactArrays</code> of type <span class="idlMemberType"><a>boolean</a></span>, defaulting to <code>true</code></dt><dd>If set to <code>true</code>, the JSON-LD processor replaces arrays with just
-          one element with that element during compaction. If set to <code>false</code>,
-          all arrays will remain arrays even if they have just one element.
-        </dd><dt id="widl-JsonLdOptions-expandContext"><code>expandContext</code> of type <span class="idlMemberType"><a>(object or DOMString)</a></span>, defaulting to <code>null</code></dt><dd>A context that is used to initialize the active context when expanding a document.</dd><dt id="widl-JsonLdOptions-loadContext"><code>loadContext</code> of type <span class="idlMemberType"><a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a></span></dt><dd>The callback of the context loader to be used to retrieve remote contexts.
-          If specified, it <em class="rfc2119" title="MUST">MUST</em> be used to retrieve remote contexts; otherwise, if not specified,
-          the processor's built-in context loader <em class="rfc2119" title="MUST">MUST</em> be used.</dd><dt id="widl-JsonLdOptions-processingMode"><code>processingMode</code> of type <span class="idlMemberType"><a>DOMString</a></span>, defaulting to <code>&quot;json-ld-1.0&quot;</code></dt><dd>If set to <code>json-ld-1.0</code>, the JSON-LD processor <em class="rfc2119" title="MUST">MUST</em> produce
-          exactly the same results as the algorithms defined in this specification.
-          If set to another value, the JSON-LD processor is allowed to extend
-          or modify the algorithms defined in this specification to enable
-          application-specific optimizations. The definition of such
-          optimizations is beyond the scope of this specification and thus
-          not defined. Consequently, different implementations <em class="rfc2119" title="MAY">MAY</em> implement
-          different optimizations. Developers <em class="rfc2119" title="MUST NOT">MUST NOT</em> define modes beginning
-          with <code>json-ld</code> as they are reserved for future versions
-          of this specification.</dd></dl></div>
-    </div>
-
-    <div class="section">
-      <h4 id="jsonlderror">JsonLdError</h4>
-
-      <p>The <a href="#idl-def-JsonLdError" class="idlType"><code>JsonLdError</code></a> type is used to report processing errors
-        to a <a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a>.</p>
-
-      <pre class="idl"><span class="idlDictionary" id="idl-def-JsonLdError">dictionary <span class="idlDictionaryID">JsonLdError</span> {
-<span class="idlMember">    <span class="idlMemberType"><a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a></span> <span class="idlMemberName"><a href="#widl-JsonLdError-code">code</a></span>;</span>
-<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a>?</span>      <span class="idlMemberName"><a href="#widl-JsonLdError-message">message</a></span>;</span>
-};</span></pre><div class="section"><h5 id="dictionary-jsonlderror-members">Dictionary <a class="idlType" href="#idl-def-JsonLdError"><code>JsonLdError</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-JsonLdError-code"><code>code</code> of type <span class="idlMemberType"><a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a></span></dt><dd>a string representing the particular error type, as described in
-          the various algorithms in this document.</dd><dt id="widl-JsonLdError-message"><code>message</code> of type <span class="idlMemberType"><a>DOMString</a></span>, nullable</dt><dd>an optional error message containing additional debugging information.
-          The specific contents of error messages are outside the scope of this
-          specification.</dd></dl></div>
-    </div>
-
-    <div class="section">
-      <h4 id="jsonlderrorcode">JsonLdErrorCode</h4>
-      <p>The <a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a> represents the collection of valid JSON-LD error
-        codes.</p>
-
-      <pre class="idl"><span class="idlEnum" id="idl-def-JsonLdErrorCode">enum <span class="idlEnumID">JsonLdErrorCode</span> {
-    &quot;<a href="#idl-def-JsonLdErrorCode.loading-document-failed" class="idlEnumItem">loading document failed</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.list-of-lists" class="idlEnumItem">list of lists</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--index-value" class="idlEnumItem">invalid @index value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.conflicting-indexes" class="idlEnumItem">conflicting indexes</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--id-value" class="idlEnumItem">invalid @id value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-local-context" class="idlEnumItem">invalid local context</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.loading-remote-context-failed" class="idlEnumItem">loading remote context failed</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-remote-context" class="idlEnumItem">invalid remote context</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.recursive-context-inclusion" class="idlEnumItem">recursive context inclusion</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-base-IRI" class="idlEnumItem">invalid base IRI</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-vocab-mapping" class="idlEnumItem">invalid vocab mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-default-language" class="idlEnumItem">invalid default language</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.keyword-redefinition" class="idlEnumItem">keyword redefinition</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-term-definition" class="idlEnumItem">invalid term definition</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property" class="idlEnumItem">invalid reverse property</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping" class="idlEnumItem">invalid IRI mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.cyclic-IRI-mapping" class="idlEnumItem">cyclic IRI mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-keyword-alias" class="idlEnumItem">invalid keyword alias</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-type-mapping" class="idlEnumItem">invalid type mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-mapping" class="idlEnumItem">invalid language mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.colliding-keywords" class="idlEnumItem">colliding keywords</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-container-mapping" class="idlEnumItem">invalid container mapping</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-type-value" class="idlEnumItem">invalid type value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-value-object" class="idlEnumItem">invalid value object</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-value-object-value" class="idlEnumItem">invalid value object value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-string" class="idlEnumItem">invalid language-tagged string</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-value" class="idlEnumItem">invalid language-tagged value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-typed-value" class="idlEnumItem">invalid typed value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-set-or-list-object" class="idlEnumItem">invalid set or list object</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-map-value" class="idlEnumItem">invalid language map value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.compaction-to-list-of-lists" class="idlEnumItem">compaction to list of lists</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-map" class="idlEnumItem">invalid reverse property map</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--reverse-value" class="idlEnumItem">invalid @reverse value</a>&quot;,
-    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-value" class="idlEnumItem">invalid reverse property value</a>&quot;
-};</span></pre><table class="simple"><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-JsonLdErrorCode.loading-document-failed">loading document failed</code></td><td>The document could not be loaded or parsed as JSON.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.list-of-lists">list of lists</code></td><td>A list of lists was detected. List of lists are not supported in
-          this version of JSON-LD due to the algorithmic complexity associated
-          with conversion to RDF.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--index-value">invalid @index value</code></td><td>An <code>@index</code> member was encountered whose value was
-          not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.conflicting-indexes">conflicting indexes</code></td><td>Multiple conflicting indexes have been found for the same node.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--id-value">invalid @id value</code></td><td>An <code>@id</code> member was encountered whose value was not a
-          <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-local-context">invalid local context</code></td><td>In invalid <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> was detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.loading-remote-context-failed">loading remote context failed</code></td><td>There was a problem encountered loading a remote context.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-remote-context">invalid remote context</code></td><td>No valid context document has been found for a referenced,
-         remote context.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.recursive-context-inclusion">recursive context inclusion</code></td><td>A cycle in remote context inclusions has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-base-IRI">invalid base IRI</code></td><td>An invalid <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> has been detected, i.e., it is
-          neither an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> nor <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-vocab-mapping">invalid vocab mapping</code></td><td>An invalid <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a> has been detected, i.e.,
-          it is neither an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> nor <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-default-language">invalid default language</code></td><td>The value of the <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a> is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>
-          or <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and thus invalid.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.keyword-redefinition">keyword redefinition</code></td><td>A <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> redefinition has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-term-definition">invalid term definition</code></td><td>An invalid <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property">invalid reverse property</code></td><td>An invalid reverse property definition has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid IRI mapping</code></td><td>A <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> contains a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that has
-          an invalid or missing <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.cyclic-IRI-mapping">cyclic IRI mapping</code></td><td>A cycle in <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mappings</a> has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-keyword-alias">invalid keyword alias</code></td><td>An invalid <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> alias definition has been
-          encountered.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-type-mapping">invalid type mapping</code></td><td>An <code>@type</code> member in a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
-          was encountered whose value could not be expanded to an
-          <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-mapping">invalid language mapping</code></td><td>An <code>@language</code> member in a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
-          was encountered whose value was neither a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> nor
-          <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and thus invalid.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.colliding-keywords">colliding keywords</code></td><td>Two properties which expand to the same keyword have been detected.
-          This might occur if a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> and an an alias thereof
-          are used at the same time.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-container-mapping">invalid container mapping</code></td><td>An <code>@container</code> member was encountered whose value was
-          not one of the following <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>:
-          <code>@list</code>, <code>@set</code>, or <code>@index</code>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-type-value">invalid type value</code></td><td>An invalid value for an <code>@type</code> member has been detected,
-          i.e., the value was neither a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> nor an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-          of <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-value-object">invalid value object</code></td><td>A <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> with disallowed members has been
-          detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-value-object-value">invalid value object value</code></td><td>An invalid value for the <code>@value</code> member of a
-          <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> has been detected, i.e., it is neither
-          a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a> nor <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-tagged-string">invalid language-tagged string</code></td><td>A <a class="tref internalDFN" title="language-tagged-string" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string">language-tagged string</a> with an invalid language
-          value was detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-tagged-value">invalid language-tagged value</code></td><td>A <a class="tref internalDFN" title="number" href="#dfn-number">number</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, or <a class="tref internalDFN" title="false" href="#dfn-false">false</a> with an
-          associated language tag was detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-typed-value">invalid typed value</code></td><td>A <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a> with an invalid type was detected.
-        </td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-set-or-list-object">invalid set or list object</code></td><td>A <a class="tref internalDFN" title="set-object" href="#dfn-set-object">set object</a> or <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a> with
-          disallowed members has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-map-value">invalid language map value</code></td><td>An invalid value in a <a class="tref externalDFN" title="language-map" href="../json-ld/#dfn-language-map">language map</a>
-          has been detected. It has to be a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> or an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of
-          <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.compaction-to-list-of-lists">compaction to list of lists</code></td><td>The compacted document contains a list of lists as multiple
-          lists have been compacted to the same term.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property-map">invalid reverse property map</code></td><td>An invalid reverse property map has been detected. No
-          <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> apart from <code>@context</code>
-          are allowed in reverse property maps.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--reverse-value">invalid @reverse value</code></td><td>An invalid value for an <code>@reverse</code> member has been detected,
-          i.e., the value was not a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property-value">invalid reverse property value</code></td><td>An invalid value for a reverse property has been detected. The value of an inverse
-          property must be a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</td></tr></table>
-    </div>
-  </div>
-<!-- end of Data Structures -->
-
-</div>
-<!-- end of The Application Programming Interfaces -->
-
-
-<div class="appendix informative section" id="acknowledgements">
-
-<!--OddPage-->
-<h2><span class="secno">A. </span>Acknowledgements</h2><p><em>This section is non-normative.</em></p>
-
-  <p>A large amount of thanks goes out to the JSON-LD Community Group
-    participants who worked through many of the technical issues on the mailing
-    list and the weekly telecons - of special mention are Niklas Lindström,
-    François Daoust, Lin Clark, and Zdenko 'Denny' Vrandečić.
-    The editors would like to thank Mark Birbeck, who provided a great deal of
-    the initial push behind the JSON-LD work via his work on RDFj.
-    The work of Dave Lehn and Mike Johnson are appreciated for reviewing,
-    and performing several implementations of the specification. Ian Davis is
-    thanked for his work on RDF/JSON. Thanks also to Nathan Rixham,
-    Bradley P. Allen, Kingsley Idehen, Glenn McDonald, Alexandre Passant,
-    Danny Ayers, Ted Thibodeau Jr., Olivier Grisel, Josh Mandel, Eric Prud'hommeaux,
-    David Wood, Guus Schreiber, Pat Hayes, Sandro Hawke, and Richard Cyganiak
-    for their input on the specification.</p>
-</div>
-
-
-
-<div id="references" class="appendix section" typeof="bibo:Chapter" resource="#references" rel="bibo:chapter">
-<!--OddPage-->
-<h2><span class="secno">B. </span>References</h2><div class="section" id="normative-references" typeof="bibo:Chapter" resource="#normative-references" rel="bibo:chapter"><h3><span class="secno">B.1 </span>Normative references</h3><dl class="bibliography" about=""><dt id="bib-IEEE-754-1985">[IEEE-754-1985]</dt><dd rel="dcterms:requires">IEEE. <cite>IEEE Standard for Binary Floating-Point Arithmetic.</cite> URL: <a href="http://standards.ieee.org/reading/ieee/std_public/description/busarch/754-1985_desc.html">http://standards.ieee.org/reading/ieee/std_public/description/busarch/754-1985_desc.html</a>
-</dd><dt id="bib-JSON-LD">[JSON-LD]</dt><dd rel="dcterms:requires">Manu Sporny, Gregg Kellogg, Markus Lanthaler, Editors. <cite><a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">JSON-LD 1.0</a>.</cite> W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">http://www.w3.org/TR/2013/WD-json-ld-20130411/</a>. The latest edition is available at <a href="http://www.w3.org/TR/json-ld/">http://www.w3.org/TR/json-ld/</a>
-</dd><dt id="bib-RDF-MT">[RDF-MT]</dt><dd rel="dcterms:requires">Patrick Hayes. <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210"><cite>RDF Semantics</cite></a>. 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210">http://www.w3.org/TR/2004/REC-rdf-mt-20040210</a>
-</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd rel="dcterms:requires">S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119.  URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
-</dd><dt id="bib-RFC3986">[RFC3986]</dt><dd rel="dcterms:requires">T. Berners-Lee; R. Fielding; L. Masinter. <a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource Identifier (URI): Generic Syntax (RFC 3986)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
-</dd><dt id="bib-RFC3987">[RFC3987]</dt><dd rel="dcterms:requires">M. Dürst; M. Suignard. <a href="http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized Resource Identifiers (IRIs) (RFC 3987)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3987.txt">http://www.ietf.org/rfc/rfc3987.txt</a>
-</dd><dt id="bib-RFC4627">[RFC4627]</dt><dd rel="dcterms:requires">D. Crockford. <a href="http://www.ietf.org/rfc/rfc4627.txt"><cite>The application/json Media Type for JavaScript Object Notation (JSON) (RFC 4627)</cite></a>. July 2006. RFC. URL: <a href="http://www.ietf.org/rfc/rfc4627.txt">http://www.ietf.org/rfc/rfc4627.txt</a>
-</dd><dt id="bib-RFC5988">[RFC5988]</dt><dd rel="dcterms:requires">M. Nottingham. <cite><a href="http://www.ietf.org/rfc/rfc5988.txt">Web Linking</a>.</cite> October 2010. Internet RFC 5988. URL: <a href="http://www.ietf.org/rfc/rfc5988.txt">http://www.ietf.org/rfc/rfc5988.txt</a>
-</dd><dt id="bib-WEBIDL">[WEBIDL]</dt><dd rel="dcterms:requires">Cameron McCormack, Editor. <cite><a href="http://www.w3.org/TR/2012/CR-WebIDL-20120419/">Web IDL.</a></cite> 19 April 2012. W3C Candidate Recommendation (work in progress). URL: <a href="http://www.w3.org/TR/2012/CR-WebIDL-20120419/">http://www.w3.org/TR/2012/CR-WebIDL-20120419/</a>. The latest edition is available at <a href="http://www.w3.org/TR/WebIDL/">http://www.w3.org/TR/WebIDL/</a>
-</dd><dt id="bib-XMLSCHEMA11-2">[XMLSCHEMA11-2]</dt><dd rel="dcterms:requires">Henry S. Thompson et al. <a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/"><cite>W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes</cite></a>. 5 April 2012. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/">http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/</a>
-</dd></dl></div><div class="section" id="informative-references" typeof="bibo:Chapter" resource="#informative-references" rel="bibo:chapter"><h3><span class="secno">B.2 </span>Informative references</h3><dl class="bibliography" about=""><dt id="bib-BCP47">[BCP47]</dt><dd rel="dcterms:references">A. Phillips; M. Davis. <a href="http://tools.ietf.org/html/bcp47"><cite>Tags for Identifying Languages</cite></a>. September 2009. IETF Best Current Practice. URL: <a href="http://tools.ietf.org/html/bcp47">http://tools.ietf.org/html/bcp47</a>
-</dd><dt id="bib-ECMA-262">[ECMA-262]</dt><dd rel="dcterms:references"><a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm"><cite>ECMAScript Language Specification, Edition 5.1</cite></a>. June 2011. URL: <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">http://www.ecma-international.org/publications/standards/Ecma-262.htm</a>
-</dd><dt id="bib-JSON-LD-TESTS">[JSON-LD-TESTS]</dt><dd rel="dcterms:references"><cite><a href="http://www.w3.org/2013/json-ld-tests/">JSON-LD 1.0 Test Suite</a></cite>. W3C Test Suite (work in progress). URL: <a href="http://www.w3.org/2013/json-ld-tests/">http://www.w3.org/2013/json-ld-tests/</a>
-</dd><dt id="bib-RDF11-CONCEPTS">[RDF11-CONCEPTS]</dt><dd rel="dcterms:references">Richard Cyganiak, David Wood, Editors. <cite><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">RDF 1.1 Concepts and Abstract Syntax.</a></cite> 15 January 2013. W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/</a>. The latest edition is available at <a href="http://www.w3.org/TR/rdf11-concepts/">http://www.w3.org/TR/rdf11-concepts/</a>
-</dd><dt id="bib-TURTLE">[TURTLE]</dt><dd rel="dcterms:references">Eric Prud'hommeaux, Gavin Carothers, Editors. <cite><a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">Turtle: Terse RDF Triple Language.</a></cite> 19 February 2013. W3C Candidate Recommendation (work in progress). URL: <a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">http://www.w3.org/TR/2013/CR-turtle-20130219/</a>. The latest edition is available at <a href="http://www.w3.org/TR/turtle/">http://www.w3.org/TR/turtle/</a>
-</dd></dl></div></div></body></html>
--- a/spec/WD/20130411/json-ld/diff-20120712.html	Mon Apr 08 11:44:09 2013 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27074 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
-<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" prefix='bibo: http://purl.org/ontology/bibo/' typeof="bibo:Document">
-<head>
-<title>JSON-LD 1.0</title>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-<style type="text/css">
-  .diff { font-weight:bold; color:#0a3; }
-  table, thead, tr, td { padding: 5px; border-width: 1px; border-spacing: 0px; border-style: solid; border-collapse: collapse; }
-  .atrisk-head { font-style: italic; }
-</style>
-<style>
-/* --- INLINES --- */
-em.rfc2119 {
-    text-transform:     lowercase;
-    font-variant:       small-caps;
-    font-style:         normal;
-    color:              #900;
-}
-
-h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
-h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
-    border: none;
-}
-
-dfn {
-    font-weight:    bold;
-}
-
-a.internalDFN {
-    color:  inherit;
-    border-bottom:  1px solid #99c;
-    text-decoration:    none;
-}
-
-a.externalDFN {
-    color:  inherit;
-    border-bottom:  1px dotted #ccc;
-    text-decoration:    none;
-}
-
-a.bibref {
-    text-decoration:    none;
-}
-
-cite .bibref {
-    font-style: normal;
-}
-
-code {
-    color:  #ff4500;
-}
-
-
-/* --- --- */
-ol.algorithm { counter-reset:numsection; list-style-type: none; }
-ol.algorithm li { margin: 0.5em 0; }
-ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
-
-/* --- TOC --- */
-.toc a, .tof a {
-    text-decoration:    none;
-}
-
-a .secno, a .figno {
-    color:  #000;
-}
-
-ul.tof, ol.tof {
-    list-style: none outside none;
-}
-
-.caption {
-    margin-top: 0.5em;
-    font-style:   italic;
-}
-
-/* --- TABLE --- */
-table.simple {
-    border-spacing: 0;
-    border-collapse:    collapse;
-    border-bottom:  3px solid #005a9c;
-}
-
-.simple th {
-    background: #005a9c;
-    color:  #fff;
-    padding:    3px 5px;
-    text-align: left;
-}
-
-.simple th[scope="row"] {
-    background: inherit;
-    color:  inherit;
-    border-top: 1px solid #ddd;
-}
-
-.simple td {
-    padding:    3px 10px;
-    border-top: 1px solid #ddd;
-}
-
-.simple tr:nth-child(even) {
-    background: #f0f6ff;
-}
-
-/* --- DL --- */
-.section dd > p:first-child {
-    margin-top: 0;
-}
-
-.section dd > p:last-child {
-    margin-bottom: 0;
-}
-
-.section dd {
-    margin-bottom:  1em;
-}
-
-.section dl.attrs dd, .section dl.eldef dd {
-    margin-bottom:  0;
-}
-</style><style>/* --- EXAMPLES --- */
-div.example-title {
-    min-width: 7.5em;
-    color: #b9ab2d;
-}
-div.example-title span {
-    text-transform: uppercase;
-}
-aside.example, div.example, div.illegal-example {
-    padding: 0.5em;
-    margin: 1em 0;
-    position: relative;
-    clear: both;
-}
-div.illegal-example { color: red }
-div.illegal-example p { color: black }
-aside.example, div.example {
-    padding: .5em;
-    border-left-width: .5em;
-    border-left-style: solid;
-    border-color: #e0cb52;
-    background: #fcfaee;
-}
-
-aside.example div.example {
-    border-left-width: .1em;
-    border-color: #999;
-    background: #fff;
-}
-aside.example div.example div.example-title {
-    color: #999;
-}
-</style><style>/* --- ISSUES/NOTES --- */
-div.issue-title, div.note-title {
-    padding-right:  1em;
-    min-width: 7.5em;
-    color: #b9ab2d;
-}
-div.issue-title { color: #e05252; }
-div.note-title { color: #52e052; }
-div.issue-title span, div.note-title span {
-    text-transform: uppercase;
-}
-div.note, div.issue {
-    margin-top: 1em;
-    margin-bottom: 1em;
-}
-.note > p:first-child, .issue > p:first-child { margin-top: 0 }
-.issue, .note {
-    padding: .5em;
-    border-left-width: .5em;
-    border-left-style: solid;
-}
-div.issue, div.note {
-    padding: 0.5em;
-    margin: 1em 0;
-    position: relative;
-    clear: both;
-}
-span.note, span.issue { padding: .1em .5em .15em; }
-
-.issue {
-    border-color: #e05252;
-    background: #fbe9e9;
-}
-.note {
-    border-color: #52e052;
-    background: #e9fbe9;
-}
-
-
-</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
-<!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
-
-<!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
-<style type='text/css'>
-.diff-old-a {
-  font-size: smaller;
-  color: red;
-}
-
-.diff-new { background-color: yellow; }
-.diff-chg { background-color: lime; }
-.diff-new:before,
-.diff-new:after
-    { content: "\2191" }
-.diff-chg:before, .diff-chg:after
-    { content: "\2195" }
-.diff-old { text-decoration: line-through; background-color: #FBB; }
-.diff-old:before,
-.diff-old:after
-    { content: "\2193" }
-:focus { border: thin red solid}
-</style>
-</head>
-
-<body><div class="head">
-<p>
-<a href="http://www.w3.org/">
-<img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" />
-</a>
-</p>
-<h1 class="title" id="title">
-JSON-LD
-<del class="diff-old">Syntax
-</del>
-1.0
-</h1>
-<h2 id="subtitle">
-A
-<del class="diff-old">Context-based
-JSON
-</del>
-<ins class="diff-chg">JSON-based
-</ins>
-Serialization
-for
-<del class="diff-old">Linking
-</del>
-<ins class="diff-chg">Linked
-</ins>
-Data
-</h2>
-<h2 id="w3c-last-call-working-draft-11-april-2013">
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-<ins class="diff-chg">Last
-Call
-</ins>
-Working
-Draft
-<del class="diff-old">12
-July
-2012
-</del>
-<ins class="diff-chg">11
-April
-2013
-</ins>
-</h2>
-<dl>
-<dt>
-This
-version:
-</dt>
-<dd>
-<del class="diff-old">http://www.w3.org/TR/2012/WD-json-ld-syntax-20120712/
-</del>
-<a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">
-<ins class="diff-chg">http://www.w3.org/TR/2013/WD-json-ld-20130411/
-</ins>
-</a>
-</dd>
-<dt>
-Latest
-published
-version:
-</dt>
-<dd>
-<del class="diff-old">http://www.w3.org/TR/json-ld-syntax/
-</del>
-<a href="http://www.w3.org/TR/json-ld/">
-<ins class="diff-chg">http://www.w3.org/TR/json-ld/
-</ins>
-</a>
-</dd>
-<dt>
-Latest
-editor's
-draft:
-</dt>
-<dd>
-<del class="diff-old">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld-syntax/index.html
-</del>
-<a href="http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html">
-<ins class="diff-chg">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html
-</ins></a></dd><dt><ins class="diff-chg">
-Previous
-version:
-</ins></dt><dd><a href="http://www.w3.org/TR/2012/WD-json-ld-20120712/"><ins class="diff-chg">
-http://www.w3.org/TR/2012/WD-json-ld-20120712/
-</ins>
-</a>
-</dd>
-<dt>
-Editors:
-</dt>
-<dd rel="bibo:editor" inlist="">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://manu.sporny.org/">
-Manu
-Sporny
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
-Digital
-Bazaar
-</a>
-</span>
-</dd>
-<dd rel="bibo:editor" inlist="">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
-Gregg
-Kellogg
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
-Kellogg
-Associates
-</a>
-</span>
-</dd>
-<dd rel="bibo:editor" inlist="">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
-Markus
-Lanthaler
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
-Graz
-University
-of
-Technology
-</a>
-</span>
-</dd>
-<dt>
-Authors:
-</dt>
-<dd rel="dcterms:contributor">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://digitalbazaar.com/">
-Manu
-Sporny
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
-Digital
-Bazaar
-</a>
-</span>
-</dd>
-<dd rel="dcterms:contributor">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Dave Longley" href="http://digitalbazaar.com/">
-Dave
-Longley
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
-Digital
-Bazaar
-</a>
-</span>
-</dd>
-<dd rel="dcterms:contributor">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
-Gregg
-Kellogg
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
-Kellogg
-Associates
-</a>
-</span>
-</dd>
-<dd rel="dcterms:contributor">
-<span typeof="foaf:Person">
-<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
-Markus
-Lanthaler
-</a>,
-<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
-Graz
-University
-of
-Technology
-</a>
-</span>
-</dd>
-<dd rel="dcterms:contributor">
-<span typeof="foaf:Person">
-<del class="diff-old">Mark
-Birbeck
-,
-Sidewinder
-Labs
-</del>
-<a rel="foaf:homepage" property="foaf:name" content="Niklas Lindström" href="http://neverspace.net/">
-<ins class="diff-chg">Niklas
-Lindström
-</ins></a>
-</span>
-</dd>
-</dl>
-<p>
-This
-document
-is
-also
-available
-in
-this
-non-normative
-format:
-<a rel="alternate" href="diff-20120712.html">
-diff
-to
-previous
-version
-</a>
-</p>
-<p class="copyright">
-<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
-Copyright
-</a>

-<del class="diff-old">2010-2012
-</del>
-<ins class="diff-chg">2010-2013
-</ins>
-<a href="http://www.w3.org/">
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-</a>
-<sup>

-</sup>
-(
-<a href="http://www.csail.mit.edu/">
-<abbr title="Massachusetts Institute of Technology">
-MIT
-</abbr>
-</a>,
-<a href="http://www.ercim.eu/">
-<abbr title="European Research Consortium for Informatics and Mathematics">
-ERCIM
-</abbr>
-</a>,
-<a href="http://www.keio.ac.jp/">
-Keio
-</a>,
-<a href="http://ev.buaa.edu.cn/">
-<ins class="diff-new">Beihang
-</ins>
-</a>
-),
-All
-Rights
-Reserved.
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">
-liability
-</a>,
-<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
-trademark
-</a>
-and
-<a href="http://www.w3.org/Consortium/Legal/copyright-documents">
-document
-use
-</a>
-rules
-apply.
-</p>
-<hr />
-</div>
-<section id="abstract" class="introductory" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:chapter">
-<h2>
-Abstract
-</h2>
-<p>
-JSON
-has
-proven
-to
-be
-a
-highly
-useful
-object
-serialization
-and
-messaging
-format.
-<del class="diff-old">In
-an
-attempt
-</del>
-<ins class="diff-chg">This
-specification
-defines
-JSON-LD,
-a
-JSON-based
-format
-</ins>
-to
-<del class="diff-old">harmonize
-the
-representation
-of
-</del>
-<ins class="diff-chg">serialize
-</ins>
-Linked
-<del class="diff-old">Data
-in
-</del>
-<ins class="diff-chg">Data.
-The
-syntax
-is
-designed
-to
-not
-disturb
-already
-deployed
-systems
-running
-on
-</ins>
-JSON,
-<del class="diff-old">this
-specification
-outlines
-</del>
-<ins class="diff-chg">but
-provide
-</ins>
-a
-<del class="diff-old">common
-</del>
-<ins class="diff-chg">smooth
-upgrade
-path
-from
-</ins>
-JSON
-<del class="diff-old">representation
-format
-for
-expressing
-directed
-graphs;
-mixing
-both
-</del>
-<ins class="diff-chg">to
-JSON-LD.
-It
-is
-primarily
-intended
-to
-be
-a
-way
-to
-use
-</ins>
-Linked
-Data
-<ins class="diff-new">in
-Web-based
-programming
-environments,
-to
-build
-interoperable
-Web
-services,
-</ins>
-and
-<del class="diff-old">non-Linked
-</del>
-<ins class="diff-chg">to
-store
-Linked
-</ins>
-Data
-in
-<del class="diff-old">a
-single
-document.
-</del>
-<ins class="diff-chg">JSON-based
-storage
-engines.
-</ins>
-</p>
-</section>
-<section id="sotd" class="introductory" typeof="bibo:Chapter" resource="#sotd" rel="bibo:chapter">
-<h2>
-Status
-of
-This
-Document
-</h2>
-<p>
-<em>
-This
-section
-describes
-the
-status
-of
-this
-document
-at
-the
-time
-of
-its
-publication.
-Other
-documents
-may
-supersede
-this
-document.
-A
-list
-of
-current
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-publications
-and
-the
-latest
-revision
-of
-this
-technical
-report
-can
-be
-found
-in
-the
-<a href="http://www.w3.org/TR/">
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-technical
-reports
-index
-</a>
-at
-http://www.w3.org/TR/.
-</em>
-</p>
-<p>
-This
-document
-has
-been
-under
-development
-for
-over
-<del class="diff-old">18
-</del>
-<ins class="diff-chg">25
-</ins>
-months
-in
-the
-JSON
-for
-Linking
-Data
-Community
-Group.
-The
-document
-has
-recently
-been
-transferred
-to
-the
-RDF
-Working
-Group
-for
-review,
-improvement,
-and
-<del class="diff-old">publication
-along
-the
-Recommendation
-track.
-While
-this
-is
-a
-First
-Public
-Working
-Draft
-publication,
-the
-</del>
-<ins class="diff-chg">publication.
-The
-</ins>
-specification
-has
-undergone
-significant
-development,
-review,
-and
-changes
-during
-the
-course
-of
-the
-last
-<del class="diff-old">18
-months
-and
-is
-more
-mature
-than
-the
-First
-Public
-Working
-Draft
-status
-implies.
-</del>
-<ins class="diff-chg">25
-months.
-</ins>
-There
-are
-<del class="diff-old">currently
-</del>
-<ins class="diff-chg">several
-independent
-</ins>
-<a href="http://json-ld.org/#impl">
-<del class="diff-old">five
-</del>
-interoperable
-implementations
-</a>
-of
-this
-<del class="diff-old">specification.
-There
-is
-</del>
-<ins class="diff-chg">specification
-and
-</ins>
-a
-fairly
-complete
-test
-suite
-<del class="diff-old">and
-a
-live
-JSON-LD
-editor
-that
-is
-capable
-of
-demonstrating
-the
-features
-described
-in
-this
-document.
-While
-development
-on
-implementations,
-the
-test
-suite
-and
-the
-live
-editor
-will
-continue,
-they
-are
-believed
-to
-be
-mature
-enough
-to
-be
-integrated
-into
-a
-non-production
-system
-at
-this
-point
-in
-time
-with
-the
-expectation
-that
-they
-could
-be
-used
-in
-a
-production
-system
-within
-the
-next
-year.
-There
-are
-a
-number
-of
-ways
-that
-one
-may
-participate
-in
-the
-development
-of
-this
-specification:
-If
-you
-want
-to
-make
-sure
-that
-your
-feedback
-is
-formally
-addressed
-by
-the
-RDF
-Working
-Group,
-you
-should
-send
-it
-to
-public-rdf-comments:
-public-rdf-comments@w3.org
-Ad-hoc
-technical
-discussion
-primarily
-occurs
-on
-the
-public
-community
-mailing
-list:
-public-linked-json@w3.org
-</del>
-<ins class="diff-chg">[
-</ins><cite>
-<del class="diff-old">Public
-JSON-LD
-Community
-Group
-teleconferences
-are
-held
-on
-Tuesdays
-at
-1500UTC
-every
-week.
-RDF
-Working
-Group
-teleconferences
-are
-held
-on
-Wednesdays
-at
-1500UTC
-every
-week.
-Participation
-is
-limited
-to
-RDF
-Working
-Group
-members.
-Specification
-bugs
-and
-issues
-should
-be
-reported
-in
-the
-issue
-tracker
-</del>
-<a class="bibref" href="#bib-JSON-LD-TESTS">
-<ins class="diff-chg">JSON-LD-TESTS
-</ins>
-</a>
-<del class="diff-old">if
-you
-do
-not
-want
-to
-send
-an
-e-mail
-to
-the
-public-rdf-comments
-mailing
-list.
-</del>
-<del class="diff-old">Source
-code
-for
-the
-specification
-can
-be
-found
-on
-Github.
-The
-#json-ld
-IRC
-channel
-is
-available
-for
-real-time
-discussion
-on
-irc.freenode.net.
-</del>
-</cite>
-<ins class="diff-chg">].
-</ins></p>
-<p>
-This
-document
-was
-published
-by
-the
-<a href="http://www.w3.org/2011/rdf-wg/">
-RDF
-Working
-Group
-</a>
-as
-a
-<del class="diff-old">First
-Public
-</del>
-<ins class="diff-chg">Last
-Call
-</ins>
-Working
-Draft.
-This
-document
-is
-intended
-to
-become
-a
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-Recommendation.
-If
-you
-wish
-to
-make
-comments
-regarding
-this
-document,
-please
-send
-them
-to
-<a href="mailto:public-rdf-comments@w3.org">
-public-rdf-comments@w3.org
-</a>
-(
-<a href="mailto:public-rdf-comments-request@w3.org?subject=subscribe">
-subscribe
-</a>,
-<a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">
-archives
-</a>
-).
-<ins class="diff-new">The
-Last
-Call
-period
-ends
-11
-May
-2013.
-</ins>
-All
-<del class="diff-old">feedback
-is
-</del>
-<ins class="diff-chg">comments
-are
-</ins>
-welcome.
-</p>
-<div style="padding: 1em; margin: 1em; border: 1px solid red;">
-<p>
-<ins class="diff-new">The
-Working
-Group
-welcomes
-reports
-of
-implementations,
-sent
-to
-the
-comments
-address.
-If
-we
-gather
-sufficient
-evidence
-of
-interoperable
-implementations,
-the
-group
-may
-request
-to
-skip
-Call
-for
-Implementations
-(Candidate
-Recommendation)
-drafts
-and
-have
-the
-next
-round
-of
-publications
-be
-Proposed
-Recommendations.
-</ins></p></div>
-<p>
-Publication
-as
-a
-<ins class="diff-new">Last
-Call
-</ins>
-Working
-Draft
-does
-not
-imply
-endorsement
-by
-the
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-Membership.
-This
-is
-a
-draft
-document
-and
-may
-be
-updated,
-replaced
-or
-obsoleted
-by
-other
-documents
-at
-any
-time.
-It
-is
-inappropriate
-to
-cite
-this
-document
-as
-other
-than
-work
-in
-progress.
-</p>
-<p>
-This
-<ins class="diff-new">is
-a
-Last
-Call
-Working
-Draft
-and
-thus
-the
-Working
-Group
-has
-determined
-that
-this
-document
-has
-satisfied
-the
-relevant
-technical
-requirements
-and
-is
-sufficiently
-stable
-to
-advance
-through
-the
-Technical
-Recommendation
-process.
-</ins></p><p><ins class="diff-new">
-This
-</ins>
-document
-was
-produced
-by
-a
-group
-operating
-under
-the
-<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">
-5
-February
-2004
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-Patent
-Policy
-</a>.
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-maintains
-a
-<a href="http://www.w3.org/2004/01/pp-impl/46168/status" rel="disclosure">
-public
-list
-of
-any
-patent
-disclosures
-</a>
-made
-in
-connection
-with
-the
-deliverables
-of
-the
-group;
-that
-page
-also
-includes
-instructions
-for
-disclosing
-a
-patent.
-An
-individual
-who
-has
-actual
-knowledge
-of
-a
-patent
-which
-the
-individual
-believes
-contains
-<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">
-Essential
-Claim(s)
-</a>
-must
-disclose
-the
-information
-in
-accordance
-with
-<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">
-section
-6
-of
-the
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-Patent
-Policy
-</a>.
-</p>
-</section>
-<section id="toc">
-<h2 class="introductory">
-Table
-of
-Contents
-</h2>
-<ul class="toc">
-<li class="tocline">
-<a href="#introduction" class="tocxref">
-<span class="secno">
-1.
-</span>
-Introduction
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#how-to-read-this-document" class="tocxref">
-<span class="secno">
-1.1
-</span>
-How
-to
-Read
-this
-Document
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#design-goals-and-rationale" class="tocxref">
-<span class="secno">
-2.
-</span>
-Design
-Goals
-and
-Rationale
-</a>
-</li>
-<li class="tocline">
-<a href="#terminology" class="tocxref">
-<span class="secno">
-3.
-</span>
-<del class="diff-old">Basic
-Concepts
-</del>
-<ins class="diff-chg">Terminology
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#general-terminology" class="tocxref">
-<span class="secno">
-3.1
-</span>
-<del class="diff-old">Linking
-Data
-</del>
-<ins class="diff-chg">General
-Terminology
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#syntax-tokens-and-keywords" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.1.1
-</del>
-<ins class="diff-chg">3.2
-</ins>
-</span>
-Syntax
-Tokens
-and
-Keywords
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#conformance" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.1.2
-</del>
-<ins class="diff-chg">4.
-</ins>
-</span>
-<del class="diff-old">The
-Context
-</del>
-<ins class="diff-chg">Conformance
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#basic-concepts" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.1.3
-</del>
-<ins class="diff-chg">5.
-</ins>
-</span>
-<del class="diff-old">From
-JSON
-to
-JSON-LD
-</del>
-<ins class="diff-chg">Basic
-Concepts
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#the-context" class="tocxref">
-<span class="secno">
-<ins class="diff-chg">5.1
-</ins></span><ins class="diff-chg">
-The
-Context
-</ins></a>
-</li>
-<li class="tocline">
-<a href="#iris" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.2
-</del>
-<ins class="diff-chg">5.2
-</ins>
-</span>
-IRIs
-</a>
-</li>
-<li class="tocline">
-<a href="#node-identifiers" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.3
-</del>
-<ins class="diff-chg">5.3
-</ins>
-</span>
-<del class="diff-old">Identifying
-the
-Subject
-</del>
-<ins class="diff-chg">Node
-Identifiers
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#specifying-the-type" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.4
-</del>
-<ins class="diff-chg">5.4
-</ins>
-</span>
-Specifying
-the
-Type
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#advanced-concepts" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.5
-</del>
-<ins class="diff-chg">6.
-</ins>
-</span>
-<del class="diff-old">String
-Internationalization
-</del>
-<ins class="diff-chg">Advanced
-Concepts
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#base-iri" class="tocxref">
-<span class="secno">
-<del class="diff-old">3.6
-</del>
-<ins class="diff-chg">6.1
-</ins>
-</span>
-<del class="diff-old">JSON-LD
-Syntax
-</del>
-<ins class="diff-chg">Base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>
-</li>
-<li class="tocline">
-<a href="#default-vocabulary" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.
-</del>
-<ins class="diff-chg">6.2
-</ins>
-</span>
-<del class="diff-old">Advanced
-Concepts
-</del>
-<ins class="diff-chg">Default
-Vocabulary
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#compact-iris" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.1
-</del>
-<ins class="diff-chg">6.3
-</ins>
-</span>
-Compact
-IRIs
-</a>
-</li>
-<li class="tocline">
-<a href="#typed-values" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.2
-</del>
-<ins class="diff-chg">6.4
-</ins>
-</span>
-Typed
-Values
-</a>
-</li>
-<li class="tocline">
-<a href="#type-coercion" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.3
-</del>
-<ins class="diff-chg">6.5
-</ins>
-</span>
-<del class="diff-old">External
-Contexts
-</del>
-<ins class="diff-chg">Type
-Coercion
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#embedding" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.4
-</del>
-<ins class="diff-chg">6.6
-</ins>
-</span>
-<del class="diff-old">Referencing
-Contexts
-from
-JSON
-Documents
-</del>
-<ins class="diff-chg">Embedding
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#advanced-context-usage" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.5
-</del>
-<ins class="diff-chg">6.7
-</ins>
-</span>
-<del class="diff-old">Expanded
-Term
-Definition
-</del>
-<ins class="diff-chg">Advanced
-Context
-Usage
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#interpreting-json-as-json-ld" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.6
-</del>
-<ins class="diff-chg">6.8
-</ins>
-</span>
-<del class="diff-old">Type
-Coercion
-</del>
-<ins class="diff-chg">Interpreting
-JSON
-as
-JSON-LD
-</ins></a></li><li class="tocline"><a href="#string-internationalization" class="tocxref"><span class="secno"><ins class="diff-chg">
-6.9
-</ins></span><ins class="diff-chg">
-String
-Internationalization
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#iri-expansion-within-a-context" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.7
-</del>
-<ins class="diff-chg">6.10
-</ins>
-</span>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-Expansion
-<del class="diff-old">Within
-</del>
-<ins class="diff-chg">within
-</ins>
-a
-Context
-</a>
-</li>
-<li class="tocline">
-<a href="#sets-and-lists" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.8
-</del>
-<ins class="diff-chg">6.11
-</ins>
-</span>
-Sets
-and
-Lists
-</a>
-</li>
-<li class="tocline">
-<a href="#reverse-properties" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.9
-</del>
-<ins class="diff-chg">6.12
-</ins>
-</span>
-<del class="diff-old">Embedding
-</del>
-<ins class="diff-chg">Reverse
-Properties
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#named-graphs" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.10
-</del>
-<ins class="diff-chg">6.13
-</ins>
-</span>
-Named
-Graphs
-</a>
-</li>
-<li class="tocline">
-<a href="#identifying-blank-nodes" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.11
-</del>
-<ins class="diff-chg">6.14
-</ins>
-</span>
-Identifying
-<del class="diff-old">Unlabeled
-</del>
-<ins class="diff-chg">Blank
-</ins>
-Nodes
-</a>
-</li>
-<li class="tocline">
-<a href="#aliasing-keywords" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.12
-</del>
-<ins class="diff-chg">6.15
-</ins>
-</span>
-Aliasing
-Keywords
-</a>
-</li>
-<li class="tocline">
-<a href="#data-indexing" class="tocxref">
-<span class="secno">
-<ins class="diff-new">6.16
-</ins></span><ins class="diff-new">
-Data
-Indexing
-</ins></a></li><li class="tocline">
-<a href="#expanded-document-form" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.13
-</del>
-<ins class="diff-chg">6.17
-</ins>
-</span>
-Expanded
-Document
-Form
-</a>
-</li>
-<li class="tocline">
-<a href="#compact-document-form" class="tocxref">
-<span class="secno">
-<del class="diff-old">4.14
-</del>
-<ins class="diff-chg">6.18
-</ins>
-</span>
-Compact
-Document
-Form
-</a>
-</li>
-<li class="tocline">
-<a href="#flattened-document-form" class="tocxref">
-<span class="secno">
-<ins class="diff-new">6.19
-</ins></span><ins class="diff-new">
-Flattened
-Document
-Form
-</ins></a></li><li class="tocline"><a href="#embedding-json-ld-in-html-documents" class="tocxref"><span class="secno"><ins class="diff-new">
-6.20
-</ins></span><ins class="diff-new">
-Embedding
-JSON-LD
-in
-HTML
-Documents
-</ins></a></li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#data-model" class="tocxref">
-<span class="secno">
-A.
-</span>
-<del class="diff-old">JSON-LD
-Authoring
-Guidelines
-</del>
-<ins class="diff-chg">Data
-Model
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#json-ld-grammar" class="tocxref">
-<span class="secno">
-B.
-</span>
-<del class="diff-old">Relationship
-to
-other
-RDF
-Formats
-</del>
-<ins class="diff-chg">JSON-LD
-Grammar
-</ins>
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#terms" class="tocxref">
-<span class="secno">
-B.1
-</span>
-<del class="diff-old">RDF
-</del>
-<ins class="diff-chg">Terms
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#node-objects" class="tocxref">
-<span class="secno">
-B.2
-</span>
-<del class="diff-old">Turtle
-</del>
-<ins class="diff-chg">Node
-Objects
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#value-objects" class="tocxref">
-<span class="secno">
-<del class="diff-old">B.2.1
-</del>
-<ins class="diff-chg">B.3
-</ins>
-</span>
-<del class="diff-old">Prefix
-definitions
-</del>
-<ins class="diff-chg">Value
-Objects
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#lists-and-sets" class="tocxref">
-<span class="secno">
-<del class="diff-old">B.2.2
-</del>
-<ins class="diff-chg">B.4
-</ins>
-</span>
-<del class="diff-old">Embedding
-</del>
-<ins class="diff-chg">Lists
-and
-Sets
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a href="#language-maps" class="tocxref">
-<span class="secno">
-<del class="diff-old">B.2.3
-</del>
-<ins class="diff-chg">B.5
-</ins>
-</span>
-<del class="diff-old">Lists
-</del>
-<ins class="diff-chg">Language
-Maps
-</ins></a></li><li class="tocline"><a href="#index-maps" class="tocxref"><span class="secno"><ins class="diff-chg">
-B.6
-</ins></span><ins class="diff-chg">
-Index
-Maps
-</ins></a></li><li class="tocline"><a href="#context-definitions" class="tocxref"><span class="secno"><ins class="diff-chg">
-B.7
-</ins></span><ins class="diff-chg">
-Context
-Definitions
-</ins>
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#relationship-to-rdf" class="tocxref">
-<span class="secno">
-<ins class="diff-new">C.
-</ins></span><ins class="diff-new">
-Relationship
-to
-RDF
-</ins></a><ul class="toc"><li class="tocline"><a href="#transformation-from-json-ld-to-rdf" class="tocxref"><span class="secno"><ins class="diff-new">
-C.1
-</ins></span><ins class="diff-new">
-Transformation
-from
-JSON-LD
-to
-RDF
-</ins></a></li></ul></li><li class="tocline"><a href="#relationship-to-other-linked-data-formats" class="tocxref"><span class="secno"><ins class="diff-new">
-D.
-</ins></span><ins class="diff-new">
-Relationship
-to
-Other
-Linked
-Data
-Formats
-</ins></a><ul class="toc"><li class="tocline"><a href="#turtle" class="tocxref"><span class="secno"><ins class="diff-new">
-D.1
-</ins></span><ins class="diff-new">
-Turtle
-</ins></a></li><li class="tocline">
-<a href="#rdfa" class="tocxref">
-<span class="secno">
-<del class="diff-old">B.3
-</del>
-<ins class="diff-chg">D.2
-</ins>
-</span>
-RDFa
-</a>
-</li>
-<li class="tocline">
-<a href="#microformats" class="tocxref">
-<span class="secno">
-<del class="diff-old">B.4
-</del>
-<ins class="diff-chg">D.3
-</ins>
-</span>
-Microformats
-</a>
-</li>
-<li class="tocline">
-<a href="#microdata" class="tocxref">
-<span class="secno">
-<del class="diff-old">B.5
-</del>
-<ins class="diff-chg">D.4
-</ins>
-</span>
-Microdata
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a href="#iana-considerations" class="tocxref">
-<span class="secno">
-<del class="diff-old">C.
-</del>
-<ins class="diff-chg">E.
-</ins>
-</span>
-IANA
-Considerations
-</a>
-</li>
-<li class="tocline">
-<a href="#acknowledgements" class="tocxref">
-<span class="secno">
-<del class="diff-old">D.
-</del>
-<ins class="diff-chg">F.
-</ins>
-</span>
-Acknowledgements
-</a>
-</li>
-<li class="tocline">
-<a href="#references" class="tocxref">
-<span class="secno">
-<del class="diff-old">E.
-</del>
-<ins class="diff-chg">G.
-</ins>
-</span>
-References
-</a>
-<ul class="toc">
-<li class="tocline">
-<a href="#normative-references" class="tocxref">
-<span class="secno">
-<del class="diff-old">E.1
-</del>
-<ins class="diff-chg">G.1
-</ins>
-</span>
-Normative
-references
-</a>
-</li>
-<li class="tocline">
-<a href="#informative-references" class="tocxref">
-<span class="secno">
-<del class="diff-old">E.2
-</del>
-<ins class="diff-chg">G.2
-</ins>
-</span>
-Informative
-references
-</a>
-</li>
-</ul>
-</li>
-</ul>
-</section>
-<section class="informative" id="introduction">
-<h2>
-<span class="secno">
-1.
-</span>
-Introduction
-</h2>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-<del class="diff-old">JSON,
-as
-specified
-in
-[
-RFC4627
-</del>
-<del class="diff-old">],
-is
-a
-simple
-language
-for
-representing
-data
-on
-the
-Web.
-</del>
-<dfn title="linked-data" id="dfn-linked-data">
-Linked
-Data
-</dfn>
-is
-a
-technique
-for
-creating
-a
-network
-of
-inter-connected
-data
-across
-different
-<del class="diff-old">Web
-</del>
-documents
-and
-Web
-sites.
-<del class="diff-old">A
-document
-in
-this
-data
-network
-is
-typically
-identified
-using
-an
-</del>
-<ins class="diff-chg">In
-general,
-Linked
-Data
-has
-four
-properties:
-1)
-it
-uses
-</ins>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<del class="diff-old">IRI
-</del>
-<ins class="diff-chg">IRIs
-</ins>
-</a>
-<del class="diff-old">(Internationalized
-Resource
-Identifier).
-A
-software
-program
-can
-typically
-follow
-an
-IRI
-just
-like
-you
-follow
-a
-URL
-by
-putting
-</del>
-<ins class="diff-chg">to
-name
-things;
-2)
-</ins>
-it
-<del class="diff-old">into
-your
-browser's
-location
-bar.
-By
-following
-IRIs,
-a
-software
-program
-can
-find
-</del>
-<ins class="diff-chg">uses
-HTTP
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-for
-those
-names;
-3)
-the
-name
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>,<ins class="diff-chg">
-when
-dereferenced,
-provide
-</ins>
-more
-information
-about
-the
-<del class="diff-old">document
-</del>
-<ins class="diff-chg">thing;
-</ins>
-and
-<ins class="diff-new">4)
-</ins>
-the
-<del class="diff-old">thing
-s
-that
-the
-document
-describes.
-</del>
-<ins class="diff-chg">data
-expresses
-links
-to
-data
-on
-other
-Web
-sites.
-</ins>
-These
-<del class="diff-old">things
-may
-also
-be
-identified
-using
-IRI
-s.
-The
-IRI
-allows
-a
-software
-program
-</del>
-<ins class="diff-chg">properties
-allow
-data
-published
-on
-the
-Web
-</ins>
-to
-<ins class="diff-new">work
-much
-like
-Web
-pages
-do
-today.
-One
-can
-</ins>
-start
-at
-one
-<del class="diff-old">document
-</del>
-<ins class="diff-chg">piece
-of
-Linked
-Data,
-</ins>
-and
-follow
-<ins class="diff-new">the
-</ins>
-links
-to
-other
-<del class="diff-old">documents
-or
-things
-in
-order
-to
-learn
-more
-about
-all
-</del>
-<ins class="diff-chg">pieces
-</ins>
-of
-<del class="diff-old">the
-documents
-and
-things
-described
-</del>
-<ins class="diff-chg">data
-that
-are
-hosted
-</ins>
-on
-<ins class="diff-new">different
-sites
-across
-</ins>
-the
-Web.
-</p>
-<p>
-JSON-LD
-is
-<del class="diff-old">designed
-as
-</del>
-a
-lightweight
-syntax
-<del class="diff-old">that
-can
-</del>
-<ins class="diff-chg">to
-serialize
-</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data"><ins class="diff-chg">
-Linked
-Data
-</ins></a><ins class="diff-chg">
-in
-JSON
-[
-</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
-RFC4627
-</ins></a></cite><ins class="diff-chg">
-].
-Its
-design
-allows
-existing
-JSON
-to
-</ins>
-be
-<del class="diff-old">used
-</del>
-<ins class="diff-chg">transformed
-</ins>
-to
-<del class="diff-old">express
-</del>
-Linked
-Data
-<del class="diff-old">.
-It
-</del>
-<ins class="diff-chg">with
-minimal
-changes.
-JSON-LD
-</ins>
-is
-primarily
-intended
-to
-be
-a
-way
-to
-use
-Linked
-Data
-in
-<del class="diff-old">Javascript
-and
-other
-</del>
-Web-based
-programming
-<del class="diff-old">environments.
-It
-is
-also
-useful
-when
-building
-inter-operable
-</del>
-<ins class="diff-chg">environments,
-to
-build
-interoperable
-</ins>
-Web
-<del class="diff-old">services
-</del>
-<ins class="diff-chg">services,
-</ins>
-and
-<del class="diff-old">when
-storing
-</del>
-<ins class="diff-chg">to
-store
-</ins>
-Linked
-Data
-in
-JSON-based
-<del class="diff-old">document
-</del>
-storage
-engines.
-<del class="diff-old">It
-</del>
-<ins class="diff-chg">Since
-JSON-LD
-</ins>
-is
-<del class="diff-old">practical
-and
-designed
-to
-be
-as
-simple
-as
-possible,
-utilizing
-</del>
-<ins class="diff-chg">100%
-compatible
-with
-JSON,
-</ins>
-the
-large
-number
-of
-JSON
-parsers
-and
-libraries
-available
-<del class="diff-old">today.
-</del>
-<ins class="diff-chg">today
-can
-be
-reused.
-In
-addition
-to
-all
-the
-features
-JSON
-provides,
-JSON-LD
-introduces:
-</ins>
-</p>
-<del class="diff-old">The
-syntax
-does
-not
-necessarily
-require
-applications
-</del>
-<ul>
-<li>
-<ins class="diff-chg">a
-universal
-identifier
-mechanism
-for
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-objects
-</ins></a><ins class="diff-chg">
-via
-the
-use
-of
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>,</li><li><ins class="diff-chg">
-a
-way
-</ins>
-to
-<del class="diff-old">change
-</del>
-<ins class="diff-chg">disambiguate
-keys
-shared
-among
-different
-JSON
-documents
-by
-mapping
-them
-to
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-via
-a
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>,</li><li><ins class="diff-chg">
-a
-mechanism
-in
-which
-a
-value
-in
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-may
-refer
-to
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-on
-a
-different
-site
-on
-the
-Web,
-</ins></li><li><ins class="diff-chg">
-the
-ability
-to
-annotate
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-strings
-</ins></a><ins class="diff-chg">
-with
-</ins>
-their
-<del class="diff-old">JSON,
-but
-allows
-</del>
-<ins class="diff-chg">language,
-</ins></li><li><ins class="diff-chg">
-a
-way
-to
-associate
-datatypes
-with
-values
-such
-as
-dates
-and
-times,
-</ins></li><li><ins class="diff-chg">
-and
-a
-facility
-to
-express
-</ins>
-one
-<ins class="diff-new">or
-more
-directed
-graphs,
-such
-as
-a
-social
-network,
-in
-a
-single
-document.
-</ins></li></ul><p><ins class="diff-new">
-Developers
-that
-require
-any
-of
-the
-facilities
-listed
-above
-or
-need
-</ins>
-to
-<del class="diff-old">easily
-add
-meaning
-by
-simply
-adding
-</del>
-<ins class="diff-chg">serialize
-an
-RDF
-graph
-</ins>
-or
-<del class="diff-old">referencing
-</del>
-<ins class="diff-chg">dataset
-[
-</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
-RDF11-CONCEPTS
-</ins></a></cite><ins class="diff-chg">
-]
-in
-</ins>
-a
-<del class="diff-old">context.
-</del>
-<ins class="diff-chg">JSON-based
-syntax
-will
-find
-JSON-LD
-of
-interest.
-</ins>
-The
-syntax
-is
-designed
-to
-not
-disturb
-already
-deployed
-systems
-running
-on
-JSON,
-but
-provide
-a
-smooth
-upgrade
-path
-from
-JSON
-to
-JSON-LD.
-<del class="diff-old">Finally,
-</del>
-<ins class="diff-chg">Since
-</ins>
-the
-<del class="diff-old">format
-is
-intended
-to
-be
-easy
-to
-parse,
-efficient
-</del>
-<ins class="diff-chg">shape
-of
-such
-data
-varies
-wildly,
-JSON-LD
-features
-mechanisms
-</ins>
-to
-<del class="diff-old">generate,
-and
-only
-requires
-</del>
-<ins class="diff-chg">reshape
-documents
-into
-</ins>
-a
-<del class="diff-old">very
-small
-memory
-footprint
-in
-order
-to
-operate.
-</del>
-<ins class="diff-chg">deterministic
-structure
-which
-simplifies
-their
-processing.
-</ins>
-</p>
-<section class="informative" id="how-to-read-this-document">
-<h3>
-<span class="secno">
-1.1
-</span>
-How
-to
-Read
-this
-Document
-</h3>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-This
-document
-is
-a
-detailed
-specification
-for
-a
-serialization
-of
-Linked
-Data
-in
-JSON.
-The
-document
-is
-primarily
-intended
-for
-the
-following
-audiences:
-</p>
-<ul>
-<li>
-Software
-developers
-<del class="diff-old">that
-</del>
-<ins class="diff-chg">who
-</ins>
-want
-to
-encode
-Linked
-Data
-in
-a
-<del class="diff-old">way
-</del>
-<ins class="diff-chg">variety
-of
-programming
-languages
-</ins>
-that
-<del class="diff-old">is
-cross-language
-compatible
-via
-</del>
-<ins class="diff-chg">can
-use
-</ins>
-JSON.
-</li>
-<li>
-Software
-developers
-<del class="diff-old">that
-</del>
-<ins class="diff-chg">who
-want
-to
-convert
-existing
-JSON
-to
-JSON-LD.
-</ins></li><li><ins class="diff-chg">
-Software
-developers
-who
-</ins>
-want
-to
-understand
-the
-design
-decisions
-and
-language
-syntax
-for
-JSON-LD.
-</li>
-<li>
-Software
-developers
-<del class="diff-old">that
-</del>
-<ins class="diff-chg">who
-</ins>
-want
-to
-implement
-processors
-and
-APIs
-for
-JSON-LD.
-</li>
-</ul>
-<p>
-<del class="diff-old">This
-specification
-does
-not
-describe
-the
-programming
-interfaces
-for
-</del>
-<ins class="diff-chg">A
-companion
-document,
-</ins>
-the
-JSON-LD
-<del class="diff-old">Syntax.
-The
-</del>
-<ins class="diff-chg">Processing
-Algorithms
-and
-API
-</ins>
-specification
-<del class="diff-old">that
-describes
-the
-programming
-interfaces
-for
-JSON-LD
-documents
-is
-the
-JSON-LD
-Application
-Programming
-Interface
-</del>
-[
-<cite>
-<a class="bibref" href="#bib-JSON-LD-API">
-JSON-LD-API
-</a>
-</cite>
-<del class="diff-old">].
-</del>
-<ins class="diff-chg">],
-specifies
-how
-to
-work
-with
-JSON-LD
-at
-a
-higher
-level
-by
-providing
-a
-standard
-library
-interface
-for
-common
-JSON-LD
-operations.
-</ins>
-</p>
-<p>
-To
-understand
-the
-basics
-in
-this
-specification
-you
-must
-first
-be
-familiar
-with
-JSON,
-which
-is
-detailed
-in
-[
-<cite>
-<a class="bibref" href="#bib-RFC4627">
-RFC4627
-</a>
-</cite>
-].
-</p>
-<del class="diff-old">JSON
-[
-RFC4627
-]
-defines
-several
-terms
-which
-are
-used
-throughout
-this
-document:
-JSON
-object
-An
-object
-structure
-is
-represented
-as
-a
-pair
-of
-curly
-brackets
-surrounding
-zero
-or
-more
-name-value
-pairs.
-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.
-array
-In
-JSON,
-an
-array
-is
-an
-ordered
-sequence
-of
-zero
-or
-more
-values.
-An
-array
-is
-represented
-as
-square
-brackets
-surrounding
-zero
-or
-more
-values
-that
-are
-separated
-by
-commas.
-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
-specific
-markup
-is
-provided
-(see
-Sets
-and
-Lists
-).
-string
-A
-string
-is
-a
-sequence
-of
-zero
-or
-more
-Unicode
-characters,
-wrapped
-in
-double
-quotes,
-using
-backslash
-escapes
-(if
-necessary).
-A
-character
-is
-represented
-as
-a
-single
-character
-string.
-number
-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.
-true
-and
-false
-Values
-that
-are
-used
-to
-express
-one
-of
-two
-possible
-boolean
-states.
-null
-The
-null
-value
-is
-used
-to
-make
-the
-JSON-LD
-processor
-&quot;forget&quot;
-any
-previously
-defined
-JSON
-key
-that
-is
-associated
-with
-the
-null
-value.
-If
-a
-previous
-definition
-doesn't
-exist,
-the
-entire
-key-value
-is
-ignored.
-If
-a
-previous
-definition
-of
-the
-key
-does
-exist,
-the
-previous
-definition
-is
-undefined.
-subject
-definition
-A
-JSON
-object
-used
-to
-represent
-a
-subject
-and
-one
-or
-more
-properties
-of
-that
-subject.
-A
-JSON
-object
-is
-a
-subject
-definition
-if
-it
-does
-not
-contain
-they
-keys
-@value
-,
-@list
-or
-@set
-and
-it
-has
-one
-or
-more
-keys
-other
-than
-@id
-.
-subject
-reference
-A
-JSON
-object
-used
-to
-reference
-a
-subject
-having
-only
-the
-@id
-key.
-</del>
-</section>
-</section>
-<section class="informative" id="design-goals-and-rationale">
-<h2>
-<span class="secno">
-2.
-</span>
-Design
-Goals
-and
-Rationale
-</h2>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-<del class="diff-old">A
-number
-of
-design
-goals
-were
-established
-before
-</del>
-<ins class="diff-chg">JSON-LD
-satisfies
-</ins>
-the
-<del class="diff-old">creation
-of
-this
-markup
-language:
-</del>
-<ins class="diff-chg">following
-design
-goals:
-</ins>
-</p>
-<dl>
-<dt>
-Simplicity
-</dt>
-<dd>
-No
-extra
-processors
-or
-software
-libraries
-should
-be
-necessary
-to
-use
-JSON-LD
-in
-its
-most
-basic
-form.
-The
-language
-will
-provide
-developers
-with
-a
-very
-easy
-learning
-curve.
-Developers
-<del class="diff-old">need
-</del>
-only
-<ins class="diff-new">need
-to
-</ins>
-know
-JSON
-and
-two
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keywords
-</a>
-(
-<code>
-@context
-</code>
-and
-<code>
-@id
-</code>
-)
-to
-use
-the
-basic
-functionality
-in
-JSON-LD.
-</dd>
-<dt>
-Compatibility
-</dt>
-<dd>
-<del class="diff-old">The
-</del>
-<ins class="diff-chg">A
-</ins>
-JSON-LD
-<del class="diff-old">markup
-</del>
-<ins class="diff-chg">document
-</ins>
-must
-be
-100%
-compatible
-with
-JSON.
-This
-ensures
-that
-all
-of
-the
-standard
-JSON
-libraries
-work
-seamlessly
-with
-JSON-LD
-documents.
-</dd>
-<dt>
-Expressiveness
-</dt>
-<dd>
-The
-syntax
-must
-be
-able
-to
-<del class="diff-old">express
-</del>
-<ins class="diff-chg">serialize
-</ins>
-directed
-<del class="diff-old">graphs,
-which
-have
-been
-proven
-to
-be
-able
-to
-express
-</del>
-<ins class="diff-chg">graphs.
-This
-ensures
-that
-</ins>
-almost
-every
-real
-world
-data
-<del class="diff-old">model.
-</del>
-<ins class="diff-chg">model
-can
-be
-expressed.
-</ins>
-</dd>
-<dt>
-Terseness
-</dt>
-<dd>
-The
-JSON-LD
-syntax
-must
-be
-very
-terse
-and
-human
-readable,
-requiring
-as
-little
-effort
-as
-possible
-from
-the
-developer.
-</dd>
-<dt>
-Zero
-Edits,
-most
-of
-the
-time
-</dt>
-<dd>
-JSON-LD
-must
-<del class="diff-old">provide
-a
-mechanism
-that
-allows
-developers
-</del>
-<ins class="diff-chg">make
-the
-transition
-</ins>
-to
-<del class="diff-old">specify
-context
-</del>
-<ins class="diff-chg">JSON-LD
-as
-simple
-as
-possible.
-In
-many
-cases,
-zero
-edits
-to
-the
-JSON
-document
-and
-the
-addition
-of
-one
-line
-to
-the
-HTTP
-response
-should
-suffice
-(see
-</ins><a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld"><ins class="diff-chg">
-section
-6.8
-Interpreting
-JSON
-as
-JSON-LD
-</ins>
-</a>
-<del class="diff-old">in
-a
-way
-that
-is
-out-of-band.
-</del>
-<ins class="diff-chg">).
-</ins>
-This
-allows
-organizations
-that
-have
-already
-deployed
-large
-JSON-based
-infrastructure
-to
-<del class="diff-old">add
-meaning
-to
-their
-JSON
-documents
-</del>
-<ins class="diff-chg">use
-JSON-LD's
-features
-</ins>
-in
-a
-way
-that
-is
-not
-disruptive
-to
-their
-day-to-day
-operations
-and
-is
-transparent
-to
-their
-current
-customers.
-<del class="diff-old">At
-times,
-</del>
-<ins class="diff-chg">However,
-there
-are
-times
-where
-</ins>
-mapping
-JSON
-to
-a
-graph
-representation
-<del class="diff-old">can
-become
-difficult.
-</del>
-<ins class="diff-chg">is
-more
-complex
-than
-a
-simple
-one-line
-change.
-</ins>
-In
-these
-instances,
-rather
-than
-<del class="diff-old">having
-</del>
-<ins class="diff-chg">extending
-</ins>
-JSON-LD
-<ins class="diff-new">to
-</ins>
-support
-an
-esoteric
-use
-case,
-we
-chose
-not
-to
-support
-the
-use
-<del class="diff-old">case
-and
-support
-a
-simplified
-syntax
-instead.
-So,
-while
-</del>
-<ins class="diff-chg">case.
-While
-</ins>
-Zero
-Edits
-is
-a
-<ins class="diff-new">design
-</ins>
-goal,
-it
-is
-not
-always
-possible
-without
-adding
-great
-complexity
-to
-the
-language.
-<del class="diff-old">One-pass
-Processing
-JSON-LD
-supports
-one-pass
-processing,
-which
-results
-in
-a
-very
-small
-memory
-footprint
-</del>
-<ins class="diff-chg">We
-should
-focus
-on
-simplicity
-</ins>
-when
-<del class="diff-old">processing
-documents.
-For
-example,
-to
-expand
-a
-JSON-LD
-document
-from
-a
-compacted
-form,
-only
-one
-pass
-is
-required
-over
-the
-data.
-</del>
-<ins class="diff-chg">possible.
-</ins>
-</dd>
-</dl>
-</section>
-<section class="normative" id="terminology">
-<h2>
-<span class="secno">
-3.
-</span>
-<del class="diff-old">Basic
-Concepts
-</del>
-<ins class="diff-chg">Terminology
-</ins>
-</h2>
-<del class="diff-old">This
-section
-is
-normative.
-JSON-LD
-is
-designed
-to
-ensure
-that
-Linked
-Data
-concepts
-can
-be
-marked
-up
-in
-a
-way
-that
-is
-simple
-to
-understand
-and
-create
-by
-Web
-authors.
-In
-many
-cases,
-regular
-JSON
-markup
-can
-become
-Linked
-Data
-with
-the
-simple
-addition
-of
-a
-context
-.
-As
-more
-JSON-LD
-features
-are
-used,
-more
-semantics
-are
-added
-to
-the
-JSON
-markup.
-</del>
-<section class="normative" id="general-terminology">
-<h3>
-<span class="secno">
-3.1
-</span>
-<del class="diff-old">Linking
-Data
-</del>
-<ins class="diff-chg">General
-Terminology
-</ins>
-</h3>
-<p>
-<del class="diff-old">The
-following
-definition
-for
-Linked
-Data
-is
-</del>
-<ins class="diff-chg">This
-document
-uses
-</ins>
-the
-<del class="diff-old">one
-that
-will
-be
-used
-for
-this
-specification.
-Linked
-Data
-is
-a
-set
-of
-documents,
-each
-containing
-a
-representation
-of
-a
-linked
-data
-graph
-.
-A
-linked
-data
-graph
-is
-an
-unordered
-labeled
-directed
-graph,
-where
-nodes
-are
-subject
-s
-or
-object
-s,
-and
-edges
-are
-labeled
-using
-properties
-.
-A
-subject
-is
-any
-node
-</del>
-<ins class="diff-chg">following
-terms
-as
-defined
-</ins>
-in
-<del class="diff-old">a
-linked
-data
-graph
-with
-at
-least
-one
-outgoing
-edge.
-A
-subject
-should
-be
-labeled
-with
-an
-</del>
-<ins class="diff-chg">JSON
-[
-</ins><cite>
-<del class="diff-old">IRI
-</del>
-<a class="bibref" href="#bib-RFC4627">
-<ins class="diff-chg">RFC4627
-</ins></a>
-<del class="diff-old">(an
-Internationalized
-Resource
-Identifier
-as
-described
-</del>
-</cite>
-<ins class="diff-chg">].
-Refer
-to
-the
-</ins><em><ins class="diff-chg">
-JSON
-Grammar
-</ins></em><ins class="diff-chg">
-section
-</ins>
-in
-[
-<cite>
-<del class="diff-old">RFC3987
-</del>
-<a class="bibref" href="#bib-RFC4627">
-<ins class="diff-chg">RFC4627
-</ins>
-</a>
-</cite>
-<del class="diff-old">]).
-An
-</del>
-<ins class="diff-chg">]
-for
-formal
-definitions.
-</ins></p><dl><dt><dfn title="json-object" id="dfn-json-object"><ins class="diff-chg">
-JSON
-</ins>
-object
-</dfn>
-<del class="diff-old">is
-a
-node
-in
-a
-linked
-data
-graph
-with
-at
-least
-one
-incoming
-edge.
-An
-object
-may
-be
-labeled
-with
-an
-</del>
-<del class="diff-old">IRI
-</del>
-</dt>
-<del class="diff-old">or
-a
-label
-that
-</del>
-<dd>
-<ins class="diff-chg">An
-object
-structure
-</ins>
-is
-<del class="diff-old">not
-an
-IRI
-such
-</del>
-<ins class="diff-chg">represented
-</ins>
-as
-<del class="diff-old">plain
-text,
-internationalized
-text,
-or
-a
-strictly-typed
-data
-value.
-A
-node
-may
-be
-</del>
-a
-<del class="diff-old">subject
-and
-an
-object
-at
-the
-same
-time.
-</del>
-<ins class="diff-chg">pair
-of
-curly
-brackets
-surrounding
-zero
-or
-more
-key-value
-pairs.
-</ins>
-A
-<del class="diff-old">property
-</del>
-<ins class="diff-chg">key
-</ins>
-is
-<del class="diff-old">the
-label
-on
-an
-edge
-in
-</del>
-a
-<del class="diff-old">linked
-data
-graph
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">string
-</ins>
-</a>.
-A
-<del class="diff-old">property
-should
-be
-an
-IRI
-.
-An
-IRI
-that
-is
-</del>
-<ins class="diff-chg">single
-colon
-comes
-after
-each
-key,
-separating
-the
-key
-from
-the
-value.
-A
-single
-comma
-separates
-</ins>
-a
-<del class="diff-old">label
-in
-</del>
-<ins class="diff-chg">value
-from
-</ins>
-a
-<del class="diff-old">linked
-data
-graph
-should
-be
-dereferencable
-</del>
-<ins class="diff-chg">following
-key.
-In
-contrast
-</ins>
-to
-<del class="diff-old">a
-Linked
-Data
-document
-describing
-</del>
-<ins class="diff-chg">JSON,
-in
-JSON-LD
-</ins>
-the
-<del class="diff-old">labeled
-subject
-,
-property
-or
-</del>
-<ins class="diff-chg">keys
-in
-an
-</ins>
-object
-<del class="diff-old">.
-Issue
-1
-</del>
-<ins class="diff-chg">must
-be
-unique.
-</ins></dd><dt>
-<dfn title="array" id="dfn-array">
-<ins class="diff-chg">array
-</ins></dfn>
-</dt>
-<dd>
-An
-<del class="diff-old">illustration
-</del>
-<ins class="diff-chg">array
-structure
-is
-represented
-as
-square
-brackets
-surrounding
-zero
-or
-more
-values.
-Values
-are
-separated
-by
-commas.
-In
-JSON,
-an
-array
-is
-an
-</ins><em><ins class="diff-chg">
-ordered
-</ins></em><ins class="diff-chg">
-sequence
-</ins>
-of
-<del class="diff-old">a
-linked
-data
-graph
-would
-probably
-help
-here.
-Issue
-2
-EricP
-suggests
-that
-</del>
-<ins class="diff-chg">zero
-or
-more
-values.
-While
-JSON-LD
-uses
-</ins>
-the
-<del class="diff-old">definitions
-of
-subject
-</del>
-<ins class="diff-chg">same
-array
-representation
-as
-JSON,
-the
-collection
-is
-</ins><em><ins class="diff-chg">
-unordered
-</ins></em><ins class="diff-chg">
-by
-default.
-While
-order
-is
-preserved
-in
-regular
-JSON
-arrays,
-it
-is
-not
-in
-regular
-JSON-LD
-arrays
-unless
-specifically
-defined
-(see
-</ins><a class="sectionRef sec-ref" href="#sets-and-lists"><ins class="diff-chg">
-section
-6.11
-Sets
-</ins>
-and
-<del class="diff-old">object,
-while
-being
-practical,
-are
-at
-odds
-with
-[
-RDF-CONCEPTS
-</del>
-<ins class="diff-chg">Lists
-</ins>
-</a>
-<ins class="diff-new">).
-</ins></dd><dt>
-<del class="diff-old">]
-use
-in
-their
-roles
-within
-a
-triple.
-</del>
-<dfn title="string" id="dfn-string">
-<ins class="diff-chg">string
-</ins></dfn>
-</dt>
-<del class="diff-old">Note
-</del>
-<dd>
-<ins class="diff-chg">A
-string
-is
-a
-sequence
-of
-zero
-or
-more
-Unicode
-characters,
-wrapped
-in
-double
-quotes,
-using
-backslash
-escapes
-(if
-necessary).
-</ins></dd><dt>
-<dfn title="number" id="dfn-number">
-<ins class="diff-chg">number
-</ins></dfn>
-<del class="diff-old">JSON-LD
-allows
-properties
-to
-be
-BNodes,
-while
-RDF
-does
-not.
-When
-used
-as
-just
-JSON-LD,
-this
-</del>
-</dt>
-<dd>
-<ins class="diff-chg">A
-number
-</ins>
-is
-<del class="diff-old">not
-unreasonable;
-it
-only
-becomes
-an
-issue
-(and
-could
-raise
-an
-exception)
-when
-transformed
-</del>
-<ins class="diff-chg">similar
-</ins>
-to
-<del class="diff-old">RDF.
-Note
-</del>
-that
-<del class="diff-old">the
-definition
-for
-Linked
-Data
-above
-is
-silent
-on
-the
-topic
-of
-unlabeled
-nodes
-.
-Nevertheless,
-this
-specification
-allows
-for
-the
-expression
-of
-unlabeled
-nodes
-,
-as
-</del>
-<ins class="diff-chg">used
-in
-</ins>
-most
-<del class="diff-old">graph-based
-data
-sets
-on
-the
-Web
-contain
-a
-number
-of
-associated
-nodes
-</del>
-<ins class="diff-chg">programming
-languages,
-except
-</ins>
-that
-<ins class="diff-new">the
-octal
-and
-hexadecimal
-formats
-</ins>
-are
-not
-<del class="diff-old">named
-</del>
-<ins class="diff-chg">used
-</ins>
-and
-<del class="diff-old">thus
-</del>
-<ins class="diff-chg">leading
-zeros
-</ins>
-are
-not
-<del class="diff-old">directly
-de-referenceable.
-JSON-LD
-defines
-a
-mechanism
-to
-map
-JSON
-terms,
-i.e.,
-keys
-</del>
-<ins class="diff-chg">allowed.
-</ins></dd><dt><dfn title="true" id="dfn-true"><ins class="diff-chg">
-true
-</ins></dfn>
-and
-<del class="diff-old">values,
-to
-IRIs.
-This
-does
-not
-mean
-</del>
-<dfn title="false" id="dfn-false">
-<ins class="diff-chg">false
-</ins></dfn></dt><dd><ins class="diff-chg">
-Values
-</ins>
-that
-<del class="diff-old">JSON-LD
-requires
-every
-key
-</del>
-<ins class="diff-chg">are
-used
-to
-express
-one
-of
-two
-possible
-boolean
-states.
-</ins></dd><dt><dfn title="null" id="dfn-null"><ins class="diff-chg">
-null
-</ins></dfn></dt><dd><ins class="diff-chg">
-The
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-value,
-which
-is
-typically
-used
-to
-clear
-</ins>
-or
-<ins class="diff-new">forget
-data.
-For
-example,
-A
-key-value
-pair
-in
-the
-</ins><code><ins class="diff-new">
-@context
-</ins></code><ins class="diff-new">
-where
-the
-</ins>
-value
-<del class="diff-old">to
-be
-</del>
-<ins class="diff-chg">is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-explicitly
-decouples
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-'s
-association
-with
-</ins>
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-<del class="diff-old">,
-but
-rather
-ensures
-that
-keys
-and
-values
-can
-be
-mapped
-to
-IRIs
-if
-the
-developer
-desires
-to
-transform
-their
-data
-into
-Linked
-Data
-</del>
-</abbr>
-</a>.
-<del class="diff-old">There
-are
-a
-few
-techniques
-that
-can
-ensure
-that
-developers
-will
-generate
-good
-Linked
-Data
-for
-</del>
-<ins class="diff-chg">A
-key-value
-pair
-in
-</ins>
-the
-<del class="diff-old">Web.
-</del>
-<ins class="diff-chg">body
-of
-a
-</ins>
-JSON-LD
-<del class="diff-old">formalizes
-those
-techniques.
-We
-will
-be
-using
-</del>
-<ins class="diff-chg">document
-whose
-value
-is
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-has
-</ins>
-the
-<del class="diff-old">following
-JSON
-markup
-</del>
-<ins class="diff-chg">same
-meaning
-</ins>
-as
-<ins class="diff-new">if
-</ins>
-the
-<del class="diff-old">example
-for
-</del>
-<ins class="diff-chg">key-value
-pair
-was
-not
-defined.
-If
-</ins><code><ins class="diff-chg">
-@value
-</ins></code>,<code><ins class="diff-chg">
-@list
-</ins></code>,<ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@set
-</ins></code><ins class="diff-chg">
-is
-set
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-in
-expanded
-form,
-then
-</ins>
-the
-<del class="diff-old">rest
-of
-this
-section:
-{
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
-}
-</del>
-<ins class="diff-chg">entire
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-is
-ignored.
-</ins></dd></dl></section><section class="normative" id="syntax-tokens-and-keywords"><h3>
-<span class="secno">
-<del class="diff-old">3.1.1
-</del>
-<ins class="diff-chg">3.2
-</ins>
-</span>
-Syntax
-Tokens
-and
-Keywords
-</h3>
-<p>
-JSON-LD
-specifies
-a
-number
-of
-syntax
-tokens
-and
-<dfn title="keyword" id="dfn-keyword">
-keywords
-</dfn>
-that
-are
-a
-core
-part
-of
-the
-language:
-</p>
-<dl>
-<dt>
-<code>
-@context
-</code>
-</dt>
-<dd>
-Used
-to
-define
-the
-short-hand
-names
-that
-are
-used
-throughout
-a
-JSON-LD
-document.
-These
-short-hand
-names
-are
-called
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">terms
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-and
-help
-developers
-to
-express
-specific
-identifiers
-in
-a
-compact
-manner.
-The
-<code>
-@context
-</code>
-keyword
-is
-described
-in
-detail
-in
-<del class="diff-old">the
-</del>
-<a class="sectionRef sec-ref" href="#the-context">
-section
-<del class="diff-old">titled
-</del>
-<ins class="diff-chg">5.1
-</ins>
-The
-Context
-</a>.
-</dd>
-<dt>
-<code>
-<del class="diff-old">@graph
-Used
-to
-explicitly
-label
-a
-linked
-data
-graph
-.
-This
-keyword
-is
-described
-in
-the
-section
-titled
-Named
-Graphs
-.
-</del>
-@id
-</code>
-</dt>
-<dd>
-Used
-to
-uniquely
-identify
-<em>
-things
-</em>
-that
-are
-being
-described
-in
-the
-document.
-This
-keyword
-is
-described
-in
-<del class="diff-old">the
-</del>
-<a class="sectionRef sec-ref" href="#node-identifiers">
-section
-<del class="diff-old">titled
-Identifying
-the
-Subject
-</del>
-<ins class="diff-chg">5.3
-Node
-Identifiers
-</ins>
-</a>.
-</dd>
-<dt>
-<code>
-@value
-</code>
-</dt>
-<dd>
-Used
-to
-specify
-the
-data
-that
-is
-associated
-with
-a
-particular
-<a class="tref internalDFN" title="property" href="#dfn-property">
-property
-</a>
-in
-the
-graph.
-This
-keyword
-is
-described
-in
-<del class="diff-old">the
-sections
-titled
-</del>
-<a class="sectionRef sec-ref" href="#string-internationalization">
-<ins class="diff-chg">section
-6.9
-</ins>
-String
-Internationalization
-</a>
-and
-<a class="sectionRef sec-ref" href="#typed-values">
-<ins class="diff-chg">section
-6.4
-</ins>
-Typed
-Values
-</a>.
-</dd>
-<dt>
-<code>
-@language
-</code>
-</dt>
-<dd>
-Used
-to
-specify
-the
-<del class="diff-old">native
-</del>
-<ins class="diff-chg">natural
-(human)
-</ins>
-language
-for
-a
-particular
-value
-or
-the
-default
-language
-of
-a
-JSON-LD
-document.
-This
-keyword
-is
-described
-in
-<del class="diff-old">the
-</del>
-<a class="sectionRef sec-ref" href="#string-internationalization">
-section
-<del class="diff-old">titled
-</del>
-<ins class="diff-chg">6.9
-</ins>
-String
-Internationalization
-</a>.
-</dd>
-<dt>
-<code>
-@type
-</code>
-</dt>
-<dd>
-Used
-to
-set
-the
-data
-type
-of
-a
-<del class="diff-old">subject
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">node
-</ins>
-</a>
-or
-<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
-typed
-value
-</a>.
-This
-keyword
-is
-described
-in
-<del class="diff-old">the
-</del>
-<a class="sectionRef sec-ref" href="#typed-values">
-section
-<del class="diff-old">titled
-</del>
-<ins class="diff-chg">6.4
-</ins>
-Typed
-Values
-</a>.
-</dd>
-<dt>
-<code>
-@container
-</code>
-</dt>
-<dd>
-Used
-to
-set
-the
-<ins class="diff-new">default
-</ins>
-container
-<del class="diff-old">of
-</del>
-<ins class="diff-chg">type
-for
-</ins>
-a
-<del class="diff-old">particular
-value.
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a>.
-This
-keyword
-is
-described
-in
-<del class="diff-old">the
-</del>
-<a class="sectionRef sec-ref" href="#sets-and-lists">
-section
-<del class="diff-old">titled
-</del>
-<ins class="diff-chg">6.11
-</ins>
-Sets
-and
-Lists
-</a>.
-</dd>
-<dt>
-<code>
-@list
-</code>
-</dt>
-<dd>
-Used
-to
-express
-an
-ordered
-set
-of
-data.
-This
-keyword
-is
-described
-in
-<del class="diff-old">the
-</del>
-<a class="sectionRef sec-ref" href="#sets-and-lists">
-section
-<del class="diff-old">titled
-</del>
-<ins class="diff-chg">6.11
-</ins>
-Sets
-and
-Lists
-</a>.
-</dd>
-<dt>
-<code>
-@set
-</code>
-</dt>
-<dd>
-Used
-to
-express
-an
-unordered
-set
-of
-<del class="diff-old">data.
-</del>
-<ins class="diff-chg">data
-and
-to
-ensure
-that
-values
-are
-always
-represented
-as
-arrays.
-</ins>
-This
-keyword
-is
-described
-in
-<del class="diff-old">the
-</del>
-<a class="sectionRef sec-ref" href="#sets-and-lists">
-section
-<del class="diff-old">titled
-</del>
-<ins class="diff-chg">6.11
-</ins>
-Sets
-and
-Lists
-</a>.
-</dd>
-<dt>
-<code>
-<ins class="diff-new">@reverse
-</ins></code></dt><dd><ins class="diff-new">
-Used
-to
-express
-reverse
-properties.
-This
-keyword
-is
-described
-in
-</ins><a class="sectionRef sec-ref" href="#reverse-properties"><ins class="diff-new">
-section
-6.12
-Reverse
-Properties
-</ins></a>.</dd><dt><code><ins class="diff-new">
-@index
-</ins></code></dt><dd><ins class="diff-new">
-Used
-to
-specify
-that
-a
-container
-is
-used
-to
-index
-information
-and
-that
-processing
-should
-continue
-deeper
-into
-a
-JSON
-data
-structure.
-This
-keyword
-is
-described
-in
-</ins><a class="sectionRef sec-ref" href="#data-indexing"><ins class="diff-new">
-section
-6.16
-Data
-Indexing
-</ins></a>.</dd><dt><code><ins class="diff-new">
-@base
-</ins></code></dt><dd><ins class="diff-new">
-Used
-to
-set
-the
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-against
-which
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
-relative
-IRIs
-</ins></a><ins class="diff-new">
-are
-resolved.
-This
-keyword
-is
-described
-in
-</ins><a class="sectionRef sec-ref" href="#base-iri"><ins class="diff-new">
-section
-6.1
-Base
-IRI
-</ins></a>.</dd><dt><code><ins class="diff-new">
-@vocab
-</ins></code></dt><dd><ins class="diff-new">
-Used
-to
-expand
-properties
-and
-values
-in
-</ins><code><ins class="diff-new">
-@type
-</ins></code><ins class="diff-new">
-with
-a
-common
-prefix
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>.<ins class="diff-new">
-This
-keyword
-is
-described
-in
-</ins><a class="sectionRef sec-ref" href="#default-vocabulary"><ins class="diff-new">
-section
-6.2
-Default
-Vocabulary
-</ins></a>.</dd><dt><code><ins class="diff-new">
-@graph
-</ins></code></dt><dd><ins class="diff-new">
-Used
-to
-explicitly
-label
-a
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-new">
-JSON-LD
-graph
-</ins></a>.<ins class="diff-new">
-This
-keyword
-is
-described
-in
-</ins><a class="sectionRef sec-ref" href="#named-graphs"><ins class="diff-new">
-section
-6.13
-Named
-Graphs
-</ins></a>.</dd><dt>
-<code>:
-</code>
-</dt>
-<dd>
-The
-separator
-for
-JSON
-keys
-and
-values
-that
-use
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-compact
-IRIs
-</a>.
-</dd>
-</dl>
-<p>
-<del class="diff-old">For
-the
-avoidance
-of
-doubt,
-all
-</del>
-<ins class="diff-chg">All
-</ins>
-keys,
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keywords
-</a>,
-and
-values
-in
-JSON-LD
-are
-case-sensitive.
-</p>
-</section>
-</section>
-<section class="normative" id="conformance">
-<h2>
-<span class="secno">
-<del class="diff-old">3.1.2
-</del>
-<ins class="diff-chg">4.
-</ins>
-</span>
-<del class="diff-old">The
-Context
-</del>
-<ins class="diff-chg">Conformance
-</ins></h2>
-<p>
-<del class="diff-old">In
-JSON-LD,
-a
-context
-</del>
-<ins class="diff-chg">This
-specification
-describes
-the
-conformance
-criteria
-for
-JSON-LD
-documents.
-This
-criteria
-</ins>
-is
-<del class="diff-old">used
-</del>
-<ins class="diff-chg">relevant
-</ins>
-to
-<del class="diff-old">map
-term
-</del>
-<ins class="diff-chg">authors
-and
-authoring
-tool
-implementers.
-As
-well
-as
-sections
-marked
-as
-non-normative,
-all
-authoring
-guidelines,
-diagrams,
-examples,
-and
-notes
-in
-this
-specification
-are
-non-normative.
-Everything
-else
-in
-this
-specification
-is
-normative.
-</ins></p><p><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
-JSON-LD
-document
-</ins>
-</a>
-<del class="diff-old">s,
-i.e.,
-properties
-</del>
-<ins class="diff-chg">complies
-</ins>
-with
-<del class="diff-old">associated
-values
-</del>
-<ins class="diff-chg">this
-specification
-if
-it
-follows
-the
-normative
-statements
-</ins>
-in
-<del class="diff-old">an
-JSON
-document,
-to
-IRI
-s.
-A
-term
-is
-a
-short
-word
-that
-expands
-to
-an
-</del>
-<ins class="diff-chg">appendix
-</ins><a href="#json-ld-grammar" class="sec-ref">
-<del class="diff-old">IRI
-</del>
-<span class="secno">
-<ins class="diff-chg">B.
-</ins></span><span class="sec-title"><ins class="diff-chg">
-JSON-LD
-Grammar
-</ins></span>
-</a>.
-<del class="diff-old">Term
-s
-may
-</del>
-<ins class="diff-chg">JSON
-documents
-can
-</ins>
-be
-<del class="diff-old">defined
-</del>
-<ins class="diff-chg">interpreted
-</ins>
-as
-<del class="diff-old">any
-valid
-</del>
-<ins class="diff-chg">JSON-LD
-by
-following
-the
-normative
-statements
-in
-</ins><a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld"><ins class="diff-chg">
-section
-6.8
-Interpreting
-</ins>
-JSON
-<del class="diff-old">string
-other
-than
-a
-</del>
-<ins class="diff-chg">as
-</ins>
-JSON-LD
-<del class="diff-old">keyword
-</del>
-</a>.
-<del class="diff-old">To
-avoid
-forward-compatibility
-issues,
-term
-</del>
-<ins class="diff-chg">For
-convenience,
-normative
-statements
-for
-documents
-are
-often
-phrased
-as
-statements
-on
-the
-properties
-of
-the
-document.
-</ins></p><p><ins class="diff-chg">
-The
-key
-words
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em>,<em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em>,<em class="rfc2119" title="REQUIRED"><ins class="diff-chg">
-REQUIRED
-</ins></em>,<em class="rfc2119" title="SHALL"><ins class="diff-chg">
-SHALL
-</ins></em>,<em class="rfc2119" title="SHALL NOT"><ins class="diff-chg">
-SHALL
-NOT
-</ins></em>,<em class="rfc2119" title="SHOULD"><ins class="diff-chg">
-SHOULD
-</ins></em>,<em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
-SHOULD
-NOT
-</ins></em>,<em class="rfc2119" title="RECOMMENDED"><ins class="diff-chg">
-RECOMMENDED
-</ins></em>,<em class="rfc2119" title="NOT RECOMMENDED"><ins class="diff-chg">
-NOT
-RECOMMENDED
-</ins></em>,<em class="rfc2119" title="MAY"><ins class="diff-chg">
-MAY
-</ins></em>,<ins class="diff-chg">
-and
-</ins><em class="rfc2119" title="OPTIONAL"><ins class="diff-chg">
-OPTIONAL
-</ins></em><ins class="diff-chg">
-in
-this
-specification
-have
-the
-meaning
-defined
-in
-[
-</ins><cite><a class="bibref" href="#bib-RFC2119"><ins class="diff-chg">
-RFC2119
-</ins>
-</a>
-<del class="diff-old">s
-starting
-with
-an
-@
-character
-should
-not
-</del>
-</cite>
-<ins class="diff-chg">].
-</ins></p></section><section class="informative" id="basic-concepts"><h2><span class="secno"><ins class="diff-chg">
-5.
-</ins></span><ins class="diff-chg">
-Basic
-Concepts
-</ins></h2><p><em><ins class="diff-chg">
-This
-section
-is
-non-normative.
-</ins>
-</em>
-<del class="diff-old">be
-used
-as
-they
-might
-be
-used
-as
-keywords
-</del>
-</p>
-<p>
-<ins class="diff-chg">JSON
-[
-</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
-RFC4627
-</ins>
-</a>
-<del class="diff-old">in
-future
-versions
-of
-JSON-LD.
-</del>
-</cite>
-<ins class="diff-chg">]
-is
-a
-lightweight,
-language-independent
-data-interchange
-format.
-It
-is
-easy
-to
-parse
-and
-easy
-to
-generate.
-However,
-it
-is
-difficult
-to
-integrate
-JSON
-from
-different
-sources
-as
-the
-data
-has
-just
-local
-meaning.
-</ins>
-Furthermore,
-<ins class="diff-new">JSON
-has
-no
-built-in
-support
-for
-hyperlinks
--
-a
-fundamental
-building
-block
-on
-</ins>
-the
-<del class="diff-old">use
-</del>
-<ins class="diff-chg">Web.
-Let's
-look
-at
-an
-example
-that
-we
-will
-be
-using
-for
-the
-rest
-</ins>
-of
-<del class="diff-old">empty
-terms
-(
-</del>
-<ins class="diff-chg">this
-section:
-</ins></p>  <div class="example"><div class="example-title"><span>Example 1</span>: Sample JSON document</div><pre class="example">{<ins class="diff-chg">
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
-}
-</ins></pre></div><p><ins class="diff-chg">
-It's
-obvious
-to
-humans
-that
-the
-data
-is
-about
-a
-person
-whose
-name
-is
-&quot;Manu
-Sporny&quot;
-and
-that
-the
-</ins>
-<code>
-<del class="diff-old">&quot;&quot;
-</del>
-<ins class="diff-chg">homepage
-</ins>
-</code>
-<del class="diff-old">)
-</del>
-<ins class="diff-chg">property
-contains
-the
-URL
-of
-that
-person's
-homepage.
-A
-machine
-doesn't
-have
-such
-an
-intuitive
-understanding
-and
-sometimes,
-even
-for
-humans,
-it
-</ins>
-is
-<del class="diff-old">discouraged
-as
-not
-all
-programming
-languages
-are
-able
-</del>
-<ins class="diff-chg">difficult
-</ins>
-to
-<del class="diff-old">handle
-empty
-property
-names.
-</del>
-<ins class="diff-chg">resolve
-ambiguities
-in
-such
-representations.
-This
-problem
-can
-be
-solved
-by
-using
-unambiguous
-identifiers
-to
-denote
-the
-different
-concepts
-instead
-of
-tokens
-such
-as
-&quot;name&quot;,
-&quot;homepage&quot;,
-etc.
-</ins>
-</p>
-<p>
-<del class="diff-old">The
-</del>
-<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
-<ins class="diff-chg">Linked
-Data
-</ins></a>,<ins class="diff-chg">
-and
-the
-</ins>
-Web
-<ins class="diff-new">in
-general,
-</ins>
-uses
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-IRIs
-</a>
-<ins class="diff-new">(Internationalized
-Resource
-Identifiers
-as
-described
-in
-[
-</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-new">
-RFC3987
-</ins></a></cite><ins class="diff-new">
-])
-</ins>
-for
-unambiguous
-identification.
-The
-idea
-is
-<del class="diff-old">that
-these
-term
-</del>
-<ins class="diff-chg">to
-assign
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins>
-</a>
-<del class="diff-old">s
-mean
-</del>
-<ins class="diff-chg">to
-</ins>
-something
-that
-may
-be
-of
-use
-to
-other
-developers
-and
-that
-it
-is
-useful
-to
-give
-them
-an
-unambiguous
-identifier.
-That
-is,
-it
-is
-useful
-for
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">terms
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-to
-expand
-to
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-IRIs
-</a>
-so
-that
-developers
-don't
-accidentally
-step
-on
-each
-other's
-<del class="diff-old">vocabulary
-terms
-and
-other
-resources.
-</del>
-<ins class="diff-chg">terms.
-</ins>
-Furthermore,
-<del class="diff-old">developers,
-</del>
-<ins class="diff-chg">developers
-</ins>
-and
-<del class="diff-old">machines,
-</del>
-<ins class="diff-chg">machines
-</ins>
-are
-able
-to
-use
-this
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-(by
-<del class="diff-old">plugging
-it
-directly
-into
-</del>
-<ins class="diff-chg">using
-</ins>
-a
-web
-browser,
-for
-instance)
-to
-go
-to
-the
-term
-and
-get
-a
-definition
-of
-what
-the
-term
-means.
-<del class="diff-old">This
-mechanism
-is
-analogous
-to
-</del>
-</p>
-<p>
-<ins class="diff-chg">Leveraging
-</ins>
-the
-<del class="diff-old">way
-we
-can
-use
-WordNet
-today
-to
-see
-</del>
-<ins class="diff-chg">well-known
-</ins><a href="http://schema.org/"><ins class="diff-chg">
-schema.org
-vocabulary
-</ins></a>,
-the
-<del class="diff-old">definition
-of
-words
-in
-</del>
-<ins class="diff-chg">example
-above
-could
-be
-unambiguously
-expressed
-as
-follows:
-</ins></p>  <div class="example"><div class="example-title"><span>Example 2</span>: Sample JSON-LD document using full IRIs instead of terms</div><pre class="example">{<ins class="diff-chg">
-  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
-  &quot;<span class="diff">http://schema.org/url</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/&quot; <span class="diff">}</span>,
-  &quot;<span class="diff">http://schema.org/image</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/images/manu.png&quot; <span class="diff">}</span>
-}
-</ins></pre></div><p><ins class="diff-chg">
-In
-</ins>
-the
-<del class="diff-old">English
-language.
-Developers
-</del>
-<ins class="diff-chg">example
-above,
-every
-property
-is
-unambiguously
-identified
-by
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>
-and
-<del class="diff-old">machines
-need
-the
-same
-sort
-of
-definition
-of
-terms.
-</del>
-<ins class="diff-chg">all
-values
-representing
-</ins>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-IRIs
-</a>
-<del class="diff-old">provide
-a
-way
-to
-ensure
-that
-these
-terms
-</del>
-are
-<del class="diff-old">unambiguous.
-For
-example,
-</del>
-<ins class="diff-chg">explicitly
-marked
-as
-such
-by
-</ins>
-the
-<del class="diff-old">term
-</del>
-<code>
-<del class="diff-old">name
-</del>
-<ins class="diff-chg">@id
-</ins>
-</code>
-<del class="diff-old">may
-map
-directly
-to
-the
-IRI
-http://xmlns.com/foaf/0.1/name
-.
-This
-allows
-</del>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-chg">keyword
-</ins></a>.<ins class="diff-chg">
-While
-this
-is
-a
-valid
-</ins>
-JSON-LD
-<del class="diff-old">documents
-</del>
-<ins class="diff-chg">document
-that
-is
-very
-specific
-about
-its
-data,
-the
-document
-is
-also
-overly
-verbose
-and
-difficult
-</ins>
-to
-<del class="diff-old">be
-constructed
-using
-</del>
-<ins class="diff-chg">work
-with
-for
-human
-developers.
-To
-address
-this
-issue,
-JSON-LD
-introduces
-</ins>
-the
-<del class="diff-old">common
-JSON
-practice
-</del>
-<ins class="diff-chg">notion
-</ins>
-of
-<del class="diff-old">simple
-name/value
-pairs
-while
-ensuring
-that
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-as
-described
-in
-</ins>
-the
-<del class="diff-old">data
-</del>
-<ins class="diff-chg">next
-section.
-</ins></p><section class="informative" id="the-context"><h3><span class="secno"><ins class="diff-chg">
-5.1
-</ins></span><ins class="diff-chg">
-The
-Context
-</ins></h3><p><em><ins class="diff-chg">
-This
-section
-</ins>
-is
-<del class="diff-old">useful
-outside
-of
-</del>
-<ins class="diff-chg">non-normative.
-</ins></em></p><p><ins class="diff-chg">
-Simply
-speaking,
-a
-</ins><dfn title="context" id="dfn-context"><ins class="diff-chg">
-context
-</ins></dfn><ins class="diff-chg">
-is
-used
-to
-map
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>.<a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-Terms
-</ins></a><ins class="diff-chg">
-are
-case
-sensitive
-and
-any
-valid
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-that
-is
-not
-a
-reserved
-JSON-LD
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-can
-be
-used
-as
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>.</p><p><ins class="diff-chg">
-For
-</ins>
-the
-<del class="diff-old">page,
-API
-or
-database
-</del>
-<ins class="diff-chg">sample
-document
-</ins>
-in
-<del class="diff-old">which
-it
-resides.
-The
-</del>
-<ins class="diff-chg">the
-previous
-section,
-a
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-would
-look
-something
-like
-this:
-</ins></p>    <div class="example"><div class="example-title"><span>Example 3</span>: Context for the sample document in the previous section</div><pre class="example">{  <span class="diff">&quot;@context&quot;:<ins class="diff-chg">
-  {
-    &quot;name&quot;: &quot;http://schema.org/name&quot;,
-    &quot;image&quot;: {
-      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  }</span>
-}
-</ins></pre></div><p><ins class="diff-chg">
-As
-the
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a><ins class="diff-chg">
-above
-shows,
-the
-</ins>
-value
-of
-a
-<dfn title="term-definition" id="dfn-term-definition">
-term
-<del class="diff-old">mapping
-must
-</del>
-<ins class="diff-chg">definition
-</ins></dfn><ins class="diff-chg">
-can
-either
-</ins>
-be
-<del class="diff-old">either;
-1)
-</del>
-a
-simple
-<del class="diff-old">string
-with
-</del>
-<ins class="diff-chg">string,
-mapping
-</ins>
-the
-<del class="diff-old">lexical
-form
-of
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a><ins class="diff-chg">
-to
-</ins>
-an
-<del class="diff-old">absolute
-IRI
-</del>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<del class="diff-old">or
-2)
-compact
-</del>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>,
-or
-<del class="diff-old">3)
-an
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>.</p><p><ins class="diff-chg">
-When
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-<del class="diff-old">containing
-</del>
-<ins class="diff-chg">is
-associated
-with
-a
-term,
-it
-is
-called
-</ins>
-an
-<dfn title="expanded-term-definition" id="dfn-expanded-term-definition">
-<ins class="diff-new">expanded
-term
-definition
-</ins></dfn>.<ins class="diff-new">
-The
-example
-above
-specifies
-that
-the
-values
-of
-</ins>
-<code>
-<del class="diff-old">@id
-,
-@type
-,
-@language
-,
-or
-</del>
-<ins class="diff-chg">image
-</ins></code><ins class="diff-chg">
-and
-</ins>
-<code>
-<del class="diff-old">@container
-</del>
-<ins class="diff-chg">homepage
-</ins>
-</code>
-<del class="diff-old">keyword
-(all
-other
-keywords
-</del>
-<ins class="diff-chg">terms
-</ins>
-are
-<del class="diff-old">ignored
-by
-a
-JSON-LD
-processor).
-These
-Linked
-Data
-term
-</del>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<ins class="diff-chg">IRIs
-</ins></a>.<ins class="diff-chg">
-They
-also
-allow
-terms
-to
-be
-used
-for
-</ins><a href="#data-indexing"><ins class="diff-chg">
-index
-maps
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-<ins class="diff-chg">and
-to
-specify
-whether
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-values
-</ins>
-are
-<del class="diff-old">typically
-collected
-in
-a
-context
-document
-that
-would
-look
-something
-like
-this:
-{
-  &quot;@context&quot;:
-  {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;depiction&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-    &quot;homepage&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-  }
-}
-</del>
-<ins class="diff-chg">to
-be
-interpreted
-as
-</ins><a href="#sets-and-lists"><ins class="diff-chg">
-sets
-or
-lists
-</ins></a>.<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-Expanded
-term
-definitions
-</ins></a><ins class="diff-chg">
-may
-be
-defined
-using
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-IRIs
-</ins></a><ins class="diff-chg">
-as
-keys,
-which
-is
-mainly
-used
-to
-associate
-type
-or
-language
-information
-with
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>.
-</p>
-<p>
-<a class="tref internalDFN" title="context" href="#dfn-context">
-<ins class="diff-new">Contexts
-</ins></a><ins class="diff-new">
-can
-either
-be
-directly
-embedded
-into
-the
-document
-or
-be
-referenced.
-</ins>
-Assuming
-<del class="diff-old">that
-this
-</del>
-<ins class="diff-chg">the
-</ins>
-context
-document
-<ins class="diff-new">in
-the
-previous
-example
-</ins>
-can
-be
-retrieved
-at
-<code>
-http://json-ld.org/contexts/person.jsonld
-</code>,
-it
-can
-be
-referenced
-<del class="diff-old">from
-a
-JSON-LD
-document
-</del>
-by
-adding
-a
-single
-<del class="diff-old">line.
-The
-JSON
-markup
-</del>
-<ins class="diff-chg">line
-and
-allows
-a
-JSON-LD
-document
-to
-be
-expressed
-much
-more
-concisely
-as
-</ins>
-shown
-in
-the
-<del class="diff-old">previous
-section
-could
-be
-changed
-as
-follows:
-</del>
-<ins class="diff-chg">example
-below:
-</ins>
-</p>
-<del class="diff-old">{
-</del>
-    <div class="example"><div class="example-title"><span>Example 4</span>: Referencing a JSON-LD context</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,</span>
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-<del class="diff-old">  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
-</del>
-<ins class="diff-chg">  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
-</ins>
-}
-</pre>
-</div>
-<p>
-The
-<del class="diff-old">additions
-above
-transform
-the
-previous
-JSON
-document
-into
-a
-JSON
-document
-with
-added
-semantics
-because
-the
-@context
-</del>
-<ins class="diff-chg">referenced
-context
-not
-only
-</ins>
-specifies
-how
-the
-<del class="diff-old">name
-,
-homepage
-,
-and
-depiction
-</del>
-terms
-map
-to
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-IRIs
-<del class="diff-old">.
-Mapping
-those
-keys
-to
-IRIs
-gives
-</del>
-</a>
-<ins class="diff-chg">in
-</ins>
-the
-<del class="diff-old">data
-global
-context.
-If
-two
-developers
-use
-</del>
-<ins class="diff-chg">Schema.org
-vocabulary
-but
-also
-specifies
-that
-</ins>
-the
-<del class="diff-old">same
-</del>
-<ins class="diff-chg">values
-of
-the
-</ins><code><ins class="diff-chg">
-homepage
-</ins></code><ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-image
-</ins></code><ins class="diff-chg">
-property
-can
-be
-interpreted
-as
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">to
-describe
-a
-property,
-they
-are
-</del>
-</a>
-<ins class="diff-chg">(
-</ins><code><ins class="diff-chg">
-&quot;@type&quot;:
-&quot;@id&quot;
-</ins></code>,<ins class="diff-chg">
-see
-</ins><a class="sectionRef sec-ref" href="#iris"><ins class="diff-chg">
-section
-5.2
-IRIs
-</ins></a><ins class="diff-chg">
-for
-</ins>
-more
-<del class="diff-old">than
-likely
-expressing
-the
-same
-concept.
-</del>
-<ins class="diff-chg">details).
-</ins>
-This
-<ins class="diff-new">information
-</ins>
-allows
-<del class="diff-old">both
-</del>
-developers
-to
-re-use
-each
-<del class="diff-old">others'
-</del>
-<ins class="diff-chg">other's
-</ins>
-data
-without
-having
-to
-agree
-to
-how
-their
-data
-will
-interoperate
-on
-a
-site-by-site
-basis.
-<del class="diff-old">Contexts
-</del>
-<ins class="diff-chg">External
-JSON-LD
-context
-documents
-</ins>
-may
-<del class="diff-old">also
-</del>
-contain
-<del class="diff-old">type
-</del>
-<ins class="diff-chg">extra
-</ins>
-information
-<del class="diff-old">for
-certain
-</del>
-<ins class="diff-chg">located
-outside
-of
-the
-</ins><code><ins class="diff-chg">
-@context
-</ins></code><ins class="diff-chg">
-key,
-such
-as
-documentation
-about
-the
-</ins>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">terms
-</ins>
-</a>
-<del class="diff-old">s
-as
-well
-as
-other
-processing
-instructions
-for
-</del>
-<ins class="diff-chg">declared
-in
-the
-document.
-Information
-contained
-outside
-of
-</ins>
-the
-<code>
-<ins class="diff-new">@context
-</ins></code><ins class="diff-new">
-value
-is
-ignored
-when
-the
-document
-is
-used
-as
-an
-external
-</ins>
-JSON-LD
-<del class="diff-old">processor.
-</del>
-<ins class="diff-chg">context
-document.
-</ins>
-</p>
-<p>
-<del class="diff-old">Contexts
-may
-be
-specified
-in-line.
-This
-ensures
-that
-JSON-LD
-</del>
-<ins class="diff-chg">JSON
-</ins>
-documents
-can
-be
-<del class="diff-old">processed
-when
-a
-</del>
-<ins class="diff-chg">transformed
-to
-</ins>
-JSON-LD
-<del class="diff-old">processor
-does
-not
-have
-access
-</del>
-<ins class="diff-chg">without
-having
-</ins>
-to
-<del class="diff-old">the
-Web.
-{
-  &quot;@context&quot;:
-  {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;depiction&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-    &quot;homepage&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-  },
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
-}
-Contexts
-may
-</del>
-be
-<del class="diff-old">used
-at
-any
-time
-</del>
-<ins class="diff-chg">modified
-by
-referencing
-</ins>
-a
-<del class="diff-old">subject
-definition
-is
-defined.
-A
-subject
-definition
-may
-specify
-multiple
-contexts,
-using
-an
-array
-,
-which
-is
-processed
-in
-order.
-This
-is
-useful
-when
-an
-author
-would
-like
-to
-use
-an
-existing
-context
-and
-add
-application-specific
-terms
-to
-the
-existing
-context.
-Duplicate
-</del>
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-<del class="diff-old">term
-</del>
-</a>
-<del class="diff-old">s
-must
-be
-overridden
-using
-a
-last-defined-overrides
-mechanism.
-Note
-If
-a
-term
-is
-re-defined
-within
-a
-context,
-all
-previous
-rules
-associated
-with
-the
-previous
-definition
-are
-removed.
-A
-term
-defined
-</del>
-<ins class="diff-chg">via
-an
-HTTP
-Link
-Header
-as
-described
-</ins>
-in
-<del class="diff-old">a
-previous
-context
-must
-be
-removed,
-if
-it
-</del>
-<a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld">
-<ins class="diff-chg">section
-6.8
-Interpreting
-JSON
-as
-JSON-LD
-</ins></a>.<ins class="diff-chg">
-It
-</ins>
-is
-<del class="diff-old">re-defined
-</del>
-<ins class="diff-chg">also
-possible
-</ins>
-to
-<del class="diff-old">null
-.
-The
-set
-of
-contexts
-defined
-within
-</del>
-<ins class="diff-chg">apply
-</ins>
-a
-<del class="diff-old">specific
-subject
-definition
-are
-referred
-to
-as
-local
-context
-s.
-Setting
-the
-context
-to
-null
-effectively
-sets
-the
-local
-context
-to
-the
-initial
-</del>
-<ins class="diff-chg">custom
-</ins>
-context
-<del class="diff-old">(further
-explained
-in
-</del>
-<ins class="diff-chg">using
-</ins>
-the
-JSON-LD
-<del class="diff-old">API,
-Appendix
-A,
-Initial
-Context
-</del>
-<ins class="diff-chg">API
-</ins>
-[
-<cite>
-<a class="bibref" href="#bib-JSON-LD-API">
-JSON-LD-API
-</a>
-</cite>
-<del class="diff-old">]
-).
-The
-active
-context
-refers
-to
-the
-accumulation
-of
-local
-context
-s
-that
-are
-in
-scope
-at
-a
-specific
-point
-within
-the
-document.
-The
-following
-example
-specifies
-an
-external
-context
-and
-then
-layers
-a
-local
-context
-on
-top
-of
-the
-external
-context:
-</del>
-<ins class="diff-chg">].
-</ins>
-</p>
-<del class="diff-old">{
-  &quot;@context&quot;: [
-    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
-    {
-      &quot;pic&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;
-    }
-  ],
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-
-}
-Note
-To
-ensure
-the
-best
-possible
-performance,
-it
-is
-a
-best
-practice
-to
-put
-the
-context
-definition
-at
-the
-top
-of
-the
-</del>
-<p>
-<ins class="diff-chg">In
-</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
-JSON-LD
-<del class="diff-old">document.
-If
-it
-isn't
-listed
-first,
-processors
-have
-to
-save
-each
-key-value
-pair
-until
-the
-</del>
-<ins class="diff-chg">documents
-</ins></a>
-<a class="tref internalDFN" title="context" href="#dfn-context">
-<del class="diff-old">context
-</del>
-<ins class="diff-chg">contexts
-</ins>
-</a>
-<del class="diff-old">is
-processed.
-</del>
-<ins class="diff-chg">may
-also
-be
-specified
-in-line.
-</ins>
-This
-<del class="diff-old">creates
-a
-memory
-and
-complexity
-burden
-for
-certain
-types
-of
-low-memory
-footprint
-JSON-LD
-processors.
-Note
-The
-null
-value
-is
-processed
-in
-a
-special
-way
-in
-JSON-LD.
-Unless
-otherwise
-specified,
-a
-JSON-LD
-processor
-must
-act
-as
-if
-a
-key-value
-pair
-in
-the
-body
-of
-a
-JSON-LD
-document
-was
-never
-declared
-when
-</del>
-<ins class="diff-chg">has
-</ins>
-the
-<del class="diff-old">value
-equals
-null
-.
-If
-@value
-,
-@list
-,
-or
-@set
-is
-set
-to
-null
-</del>
-<ins class="diff-chg">advantage
-that
-documents
-can
-be
-processed
-even
-</ins>
-in
-<del class="diff-old">expanded
-form,
-then
-the
-entire
-JSON
-object
-is
-ignored.
-If
-@context
-is
-set
-to
-null
-,
-the
-active
-context
-is
-reset
-and
-when
-used
-within
-a
-context
-,
-it
-removes
-any
-definition
-associated
-with
-</del>
-the
-<del class="diff-old">key,
-unless
-otherwise
-specified.
-3.1.3
-From
-JSON
-to
-JSON-LD
-If
-a
-set
-</del>
-<ins class="diff-chg">absence
-</ins>
-of
-<del class="diff-old">term
-s
-such
-as,
-name
-,
-homepage
-,
-and
-depiction
-,
-are
-defined
-in
-</del>
-a
-<del class="diff-old">context
-,
-and
-that
-context
-is
-used
-</del>
-<ins class="diff-chg">connection
-</ins>
-to
-<del class="diff-old">resolve
-</del>
-the
-<del class="diff-old">names
-in
-JSON
-objects
-,
-machines
-are
-able
-to
-automatically
-expand
-the
-terms
-to
-something
-meaningful
-and
-unambiguous,
-like
-this:
-</del>
-<ins class="diff-chg">Web.
-</ins>
-</p>
-<del class="diff-old">{
-  &quot;&quot;: &quot;Manu Sporny&quot;,
-  &quot;&quot;: &quot;http://manu.sporny.org&quot;
-  &quot;&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
-</del>
-    <div class="example"><div class="example-title"><span>Example 5</span>: In-line context definition</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-<ins class="diff-chg">  {
-    &quot;name&quot;: &quot;http://schema.org/name&quot;,
-    &quot;image&quot;: {
-      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },</span>
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
-</ins>
-}
-</pre>
-</div>
-<del class="diff-old">Doing
-this
-allows
-JSON
-to
-be
-unambiguously
-machine-readable
-without
-requiring
-developers
-to
-drastically
-change
-their
-workflow.
-</del>
-</section>
-<section class="informative" id="iris">
-<h3>
-<del class="diff-old">Note
-</del>
-<span class="secno">
-<ins class="diff-chg">5.2
-</ins>
-</span>
-<ins class="diff-new">IRIs
-</ins></h3>
-<p>
-<del class="diff-old">The
-example
-above
-does
-not
-use
-the
-@id
-keyword
-to
-set
-the
-subject
-of
-the
-node
-being
-described
-above.
-</del>
-<em>
-This
-<del class="diff-old">type
-of
-node
-is
-called
-an
-unlabeled
-node
-.
-It
-is
-advised
-that
-all
-nodes
-described
-in
-JSON-LD
-are
-given
-unique
-identifiers
-via
-the
-@id
-keyword
-unless
-the
-data
-</del>
-<ins class="diff-chg">section
-</ins>
-is
-<del class="diff-old">not
-intended
-to
-be
-linked
-to
-from
-other
-data
-sets.
-</del>
-<ins class="diff-chg">non-normative.
-</ins></em>
-<del class="diff-old">A
-JSON
-object
-used
-to
-define
-property
-values
-is
-called
-a
-subject
-definition
-.
-Subject
-definitions
-do
-not
-require
-an
-@id
-.
-Subject
-definitions
-that
-do
-not
-contain
-an
-@id
-are
-known
-as
-an
-unlabeled
-nodes
-.
-</del>
-</p>
-<del class="diff-old">3.2
-IRIs
-</del>
-<p>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<ins class="diff-new">IRIs
-</ins></a><ins class="diff-new">
-(Internationalized
-Resource
-Identifiers
-[
-</ins><cite>
-<del class="diff-old">IRI
-</del>
-<a class="bibref" href="#bib-RFC3987">
-<ins class="diff-chg">RFC3987
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-</cite>
-<ins class="diff-chg">])
-</ins>
-are
-fundamental
-to
-<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
-Linked
-Data
-</a>
-as
-that
-is
-how
-most
-<del class="diff-old">subject
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">nodes
-</ins>
-</a>
-<del class="diff-old">s,
-all
-</del>
-<ins class="diff-chg">and
-</ins>
-<a class="tref internalDFN" title="property" href="#dfn-property">
-properties
-</a>
-<del class="diff-old">and
-many
-object
-s
-</del>
-are
-identified.
-<del class="diff-old">IRI
-s
-can
-be
-expressed
-in
-a
-variety
-of
-different
-ways
-in
-JSON-LD.
-Except
-within
-a
-context
-definition,
-term
-s
-in
-the
-key
-position
-in
-a
-JSON
-object
-that
-have
-a
-mapping
-to
-an
-absolute
-IRI
-or
-another
-term
-in
-the
-active
-context
-are
-expanded
-to
-an
-IRI
-by
-JSON-LD
-processors.
-An
-IRI
-is
-generated
-for
-the
-string
-value
-specified
-using
-@id
-or
-@type
-.
-An
-IRI
-is
-generated
-for
-the
-string
-value
-of
-any
-key
-for
-which
-there
-are
-coercion
-rules
-in
-effect
-that
-identify
-the
-value
-as
-an
-@id
-.
-</del>
-<ins class="diff-chg">In
-JSON-LD,
-</ins>
-IRIs
-may
-be
-represented
-as
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">,
-a
-relative
-IRI
-,
-a
-term
-,
-</del>
-</a>
-or
-a
-<del class="diff-old">compact
-</del>
-<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
-<ins class="diff-chg">relative
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-An
-<dfn title="absolute-iri" id="dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</dfn>
-is
-defined
-in
-[
-<cite>
-<a class="bibref" href="#bib-RFC3987">
-RFC3987
-</a>
-</cite>
-]
-<ins class="diff-new">as
-</ins>
-containing
-a
-<em>
-scheme
-</em>
-along
-with
-<em>
-path
-</em>
-and
-optional
-<em>
-query
-</em>
-and
-<em>
-fragment
-</em>
-segments.
-A
-<dfn title="relative-iri" id="dfn-relative-iri">
-relative
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</dfn>
-is
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-that
-is
-relative
-to
-some
-other
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-In
-JSON-LD
-all
-<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
-relative
-<del class="diff-old">IRI
-</del>
-<ins class="diff-chg">IRIs
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-are
-resolved
-relative
-to
-the
-<dfn title="base-iri" id="dfn-base-iri">
-base
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</dfn>
-associated
-with
-the
-<del class="diff-old">document
-(typically,
-</del>
-<ins class="diff-chg">document.
-</ins></p><p><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-is
-interpreted
-as
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-when
-it
-is
-</ins>
-the
-<del class="diff-old">directory
-</del>
-<ins class="diff-chg">value
-of
-an
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-member:
-</ins></p>  <div class="example"><div class="example-title"><span>Example 6</span>: Values of @id are interpreted as IRI</div><pre class="example">{<ins class="diff-chg">
-...
-  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;http://example.com/&quot; }
-...
-}
-</ins></pre></div><p><ins class="diff-chg">
-Values
-that
-are
-interpreted
-as
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>,<ins class="diff-chg">
-can
-also
-be
-expressed
-as
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
-relative
-IRIs
-</ins></a>.<ins class="diff-chg">
-For
-example,
-assuming
-</ins>
-that
-<del class="diff-old">contains
-</del>
-the
-<ins class="diff-new">following
-</ins>
-document
-<del class="diff-old">or
-</del>
-<ins class="diff-chg">is
-located
-at
-</ins><code><ins class="diff-chg">
-http://example.com/about/
-</ins></code>,
-the
-<del class="diff-old">document
-itself).
-</del>
-<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
-<ins class="diff-chg">relative
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><code>../</code><ins class="diff-chg">
-would
-expand
-to
-</ins><code><ins class="diff-chg">
-http://example.com/
-</ins></code><ins class="diff-chg">
-(for
-more
-information
-on
-where
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
-relative
-IRIs
-</ins></a><ins class="diff-chg">
-can
-be
-used,
-please
-refer
-to
-appendix
-</ins><a href="#json-ld-grammar" class="sec-ref"><span class="secno"><ins class="diff-chg">
-B.
-</ins></span><span class="sec-title"><ins class="diff-chg">
-JSON-LD
-Grammar
-</ins></span></a><ins class="diff-chg">
-).
-</ins>
-</p>
-  <div class="example"><div class="example-title"><span>Example 7</span>: IRIs can be relative</div><pre class="example">{
-<ins class="diff-new">...
-  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;../&quot; }
-...
-}
-</ins></pre></div>
-<p>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-new">Absolute
-</ins>
-IRIs
-</a>
-can
-be
-expressed
-directly
-in
-the
-key
-position
-like
-so:
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 8</span>: IRI as a key</div><pre class="example">{
-...
-<del class="diff-old">  &quot;&quot;: &quot;Manu Sporny&quot;,
-</del>
-<ins class="diff-chg">  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
-</ins>
-...
-}
-</pre>
-</div>
-<p>
-In
-the
-example
-above,
-the
-key
-<code>
-<del class="diff-old">http://xmlns.com/foaf/0.1/name
-</del>
-<ins class="diff-chg">http://schema.org/name
-</ins>
-</code>
-is
-interpreted
-as
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-because
-it
-contains
-a
-colon
-(
-<code>:
-</code>
-)
-and
-<del class="diff-old">the
-'http'
-prefix
-does
-not
-exist
-in
-the
-context.
-Term
-expansion
-occurs
-for
-IRIs
-if
-the
-value
-matches
-a
-term
-defined
-within
-the
-active
-context
-:
-{
-  &quot;&quot;:
-  {
-    &quot;&quot;
-...
-  },
-  &quot;&quot;: &quot;Manu Sporny&quot;,
-  &quot;status&quot;: &quot;trollin'&quot;,
-...
-}
-Term
-s
-are
-case
-sensitive,
-and
-must
-be
-matched
-using
-</del>
-<ins class="diff-chg">it
-is
-neither
-</ins>
-a
-<del class="diff-old">case-sensitive
-comparison.
-JSON
-keys
-that
-do
-not
-expand
-to
-an
-absolute
-</del>
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-<ins class="diff-chg">compact
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">are
-ignored,
-or
-removed
-in
-some
-cases,
-by
-the
-[
-</del>
-<del class="diff-old">JSON-LD-API
-</del>
-</a>
-<del class="diff-old">].
-However,
-JSON
-keys
-that
-do
-not
-include
-</del>
-<ins class="diff-chg">nor
-</ins>
-a
-<del class="diff-old">mapping
-in
-the
-context
-are
-still
-considered
-valid
-expressions
-in
-JSON-LD
-documents
--
-the
-keys
-just
-don't
-have
-any
-machine-readable,
-semantic
-meaning.
-</del>
-<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
-<ins class="diff-chg">blank
-node
-identifier
-</ins></a>.
-</p>
-<p>
-<del class="diff-old">Prefix
-es
-are
-expanded
-when
-the
-form
-of
-the
-value
-is
-a
-compact
-</del>
-<ins class="diff-chg">Term-to-
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">represented
-as
-a
-prefix:suffix
-combination,
-and
-</del>
-<ins class="diff-chg">expansion
-occurs
-if
-</ins>
-the
-<del class="diff-old">prefix
-</del>
-<ins class="diff-chg">key
-</ins>
-matches
-a
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-defined
-within
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>:
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 9</span>: Term expansion from context definition</div><pre class="example">{
-  &quot;<span class="diff">@context</span>&quot;:
-  {
-<del class="diff-old">    &quot;&quot;
-...
-</del>
-<ins class="diff-chg">    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">http://schema.org/name</span>&quot;
-</ins>
-  },
-<del class="diff-old">  &quot;&quot;: &quot;Manu Sporny&quot;,
-...
-</del>
-<ins class="diff-chg">  &quot;<span class="diff">name</span>&quot;: &quot;Manu Sporny&quot;,
-  &quot;status&quot;: &quot;trollin'&quot;
-</ins>
-}
-</pre>
-</div>
-<p>
-<del class="diff-old">foaf:name
-above
-will
-automatically
-expand
-out
-to
-the
-IRI
-http://xmlns.com/foaf/0.1/name
-.
-See
-Compact
-IRIs
-for
-more
-details.
-An
-IRI
-is
-generated
-when
-a
-</del>
-JSON
-<del class="diff-old">object
-is
-used
-in
-the
-value
-position
-</del>
-<ins class="diff-chg">keys
-</ins>
-that
-<del class="diff-old">contains
-an
-@id
-keyword:
-{
-...
-  &quot;homepage&quot;: { &quot;&quot;: &quot;http://manu.sporny.org&quot; }
-...
-}
-Note
-Specifying
-a
-JSON
-object
-with
-an
-@id
-key
-is
-used
-</del>
-<ins class="diff-chg">do
-not
-expand
-</ins>
-to
-<del class="diff-old">identify
-that
-object
-using
-</del>
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">.
-When
-the
-object
-has
-only
-the
-@id
-,
-it
-is
-called
-a
-subject
-reference
-.
-This
-facility
-may
-also
-be
-used
-to
-link
-to
-another
-subject
-definition
-using
-a
-mechanism
-called
-embedding
-</del>
-</a>,
-<del class="diff-old">which
-is
-covered
-</del>
-<ins class="diff-chg">such
-as
-</ins><code><ins class="diff-chg">
-status
-</ins></code>
-in
-the
-<del class="diff-old">section
-titled
-Embedding
-.
-</del>
-<ins class="diff-chg">example
-above,
-are
-not
-Linked
-Data
-and
-thus
-ignored
-when
-processed.
-</ins>
-</p>
-<p>
-If
-type
-<a class="tref internalDFN" title="coercion" href="#dfn-coercion">
-coercion
-</a>
-rules
-are
-specified
-in
-the
-<code>
-@context
-</code>
-for
-a
-particular
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-or
-property
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>,
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-is
-generated:
-</p>
-  <div class="example"><div class="example-title"><span>Example 10</span>: Type coercion</div><pre class="example">{<span class="diff">
-  &quot;@context&quot;:
-  {
-    ...
-    &quot;homepage&quot;:
-    {
-<del class="diff-old">      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-</del>
-<ins class="diff-chg">      &quot;@id&quot;: &quot;http://schema.org/homepage&quot;,
-</ins>
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-    ...
-  }</span>
-...
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-...
-}
-</pre>
-</div>
-<p>
-In
-the
-example
-above,
-even
-though
-the
-value
-<code>
-http://manu.sporny.org/
-</code>
-is
-expressed
-as
-a
-JSON
-<a class="tref internalDFN" title="string" href="#dfn-string">
-string
-</a>,
-the
-type
-<a class="tref internalDFN" title="coercion" href="#dfn-coercion">
-coercion
-</a>
-rules
-will
-transform
-the
-value
-into
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-when
-<del class="diff-old">processed
-by
-a
-</del>
-<ins class="diff-chg">generating
-the
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
-JSON-LD
-<del class="diff-old">Processor.
-</del>
-<ins class="diff-chg">graph
-</ins></a>.<ins class="diff-chg">
-See
-</ins><a class="sectionRef sec-ref" href="#type-coercion"><ins class="diff-chg">
-section
-6.5
-Type
-Coercion
-</ins></a><ins class="diff-chg">
-for
-more
-details
-about
-this
-feature.
-</ins>
-</p>
-<p>
-<ins class="diff-chg">In
-summary,
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-can
-be
-expressed
-in
-a
-variety
-of
-different
-ways
-in
-JSON-LD:
-</ins></p><ol><li><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-keys
-that
-have
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-mapping
-in
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-expand
-to
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-(only
-applies
-outside
-of
-the
-</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
-context
-definition
-</ins></a><ins class="diff-chg">
-).
-</ins></li><li><ins class="diff-chg">
-An
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-is
-generated
-for
-the
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-value
-specified
-using
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@type
-</ins></code>.</li><li><ins class="diff-chg">
-An
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-is
-generated
-for
-the
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-value
-of
-any
-key
-for
-which
-there
-are
-</ins><a class="tref internalDFN" title="coercion" href="#dfn-coercion"><ins class="diff-chg">
-coercion
-</ins></a><ins class="diff-chg">
-rules
-that
-contain
-a
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-key
-that
-is
-set
-to
-a
-value
-of
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code>.</li></ol></section><section class="informative" id="node-identifiers">
-<h3>
-<span class="secno">
-<del class="diff-old">3.3
-</del>
-<ins class="diff-chg">5.3
-</ins>
-</span>
-<del class="diff-old">Identifying
-the
-Subject
-</del>
-<ins class="diff-chg">Node
-Identifiers
-</ins>
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-To
-be
-able
-to
-externally
-reference
-<a class="tref internalDFN" title="node" href="#dfn-node">
-nodes
-</a>
-in
-a
-<del class="diff-old">graph,
-</del>
-<a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
-<ins class="diff-chg">graph
-</ins></a>,
-it
-is
-important
-that
-<del class="diff-old">each
-node
-has
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">nodes
-</ins></a><ins class="diff-chg">
-have
-</ins>
-an
-<del class="diff-old">unambiguous
-</del>
-identifier.
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<del class="diff-old">IRI
-</del>
-<ins class="diff-chg">IRIs
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-are
-a
-fundamental
-concept
-of
-<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
-Linked
-Data
-</a>,
-<del class="diff-old">and
-nodes
-should
-have
-a
-de-referencable
-identifier
-used
-to
-name
-and
-locate
-them.
-For
-</del>
-<ins class="diff-chg">for
-</ins><a class="tref internalDFN" title="node" href="#dfn-node">
-nodes
-</a>
-to
-be
-truly
-linked,
-<del class="diff-old">de-referencing
-</del>
-<ins class="diff-chg">dereferencing
-</ins>
-the
-identifier
-should
-result
-in
-a
-representation
-of
-that
-<a class="tref internalDFN" title="node" href="#dfn-node">
-node
-<del class="diff-old">(for
-example,
-using
-a
-URL
-to
-retrieve
-a
-web
-page).
-Associating
-an
-IRI
-with
-a
-node
-tells
-</del>
-</a>.
-<ins class="diff-chg">This
-may
-allow
-</ins>
-an
-application
-<del class="diff-old">that
-the
-returned
-document
-contains
-a
-description
-of
-the
-node
-requested.
-JSON-LD
-documents
-may
-also
-contain
-descriptions
-of
-other
-nodes,
-so
-it
-is
-necessary
-to
-be
-able
-</del>
-to
-<del class="diff-old">uniquely
-identify
-each
-</del>
-<ins class="diff-chg">retrieve
-further
-information
-about
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node">
-node
-<del class="diff-old">which
-may
-be
-externally
-referenced.
-</del>
-</a>.
-</p>
-<p>
-<del class="diff-old">A
-subject
-of
-</del>
-<ins class="diff-chg">In
-JSON-LD,
-</ins>
-a
-<del class="diff-old">JSON
-object
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">node
-</ins>
-</a>
-is
-<del class="diff-old">a
-node
-</del>
-identified
-using
-the
-<code>
-@id
-</code>
-<del class="diff-old">key.
-The
-subject
-is
-the
-first
-piece
-of
-information
-needed
-by
-the
-JSON-LD
-processor
-in
-order
-to
-create
-the
-(subject,
-property,
-object)
-tuple,
-also
-known
-as
-a
-triple.
-</del>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-chg">keyword
-</ins></a>:
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 11</span>: Identifying a node</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    ...
-<del class="diff-old">    &quot;homepage&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-    ...
-</del>
-<ins class="diff-chg">    &quot;name&quot;: &quot;http://schema.org/name&quot;
-</ins>
-  },
-<del class="diff-old">  &quot;&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-...
-</del>
-  <span class="diff">&quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;</span>,
-<ins class="diff-chg">  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  ...
-</ins>
-}
-</pre>
-</div>
-<p>
-The
-example
-above
-<del class="diff-old">would
-set
-the
-subject
-to
-the
-IRI
-http://example.org/people#joebob
-.
-A
-JSON
-object
-used
-to
-define
-property
-values
-is
-called
-</del>
-<ins class="diff-chg">contains
-</ins>
-a
-<del class="diff-old">subject
-definition
-.
-Subject
-definitions
-do
-not
-require
-an
-@id
-.
-A
-subject
-definition
-that
-does
-not
-contain
-an
-@id
-property
-defines
-properties
-of
-an
-unlabeled
-</del>
-<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
-node
-<del class="diff-old">.
-Note
-To
-ensure
-the
-best
-possible
-performance,
-when
-possible,
-it
-is
-a
-best
-practice
-to
-put
-JSON-LD
-keyword
-s,
-such
-as
-@id
-and
-@context
-before
-other
-key-value
-pairs
-in
-a
-JSON
-object
-.
-However,
-keys
-in
-a
-JSON
-</del>
-object
-</a>
-<del class="diff-old">are
-not
-ordered,
-so
-processors
-must
-not
-depend
-on
-key
-ordering.
-If
-keywords
-are
-not
-listed
-first,
-processors
-have
-to
-save
-each
-key-value
-pair
-until
-at
-least
-the
-@context
-and
-</del>
-<ins class="diff-chg">identified
-by
-</ins>
-the
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-new">IRI
-</ins></abbr>
-<code>
-<del class="diff-old">@id
-are
-processed.
-Not
-specifying
-those
-keywords
-first
-creates
-a
-memory
-and
-complexity
-burden
-for
-low-memory
-footprint
-processors,
-forcing
-them
-to
-use
-more
-memory
-and
-computing
-cycles
-than
-necessary.
-</del>
-<ins class="diff-chg">http://me.markus-lanthaler.com/
-</ins></code>.
-</p>
-</section>
-<section class="informative" id="specifying-the-type">
-<h3>
-<span class="secno">
-<del class="diff-old">3.4
-</del>
-<ins class="diff-chg">5.4
-</ins>
-</span>
-Specifying
-the
-Type
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-The
-type
-of
-a
-particular
-<del class="diff-old">subject
-</del>
-<ins class="diff-chg">node
-</ins>
-can
-be
-specified
-using
-the
-<code>
-@type
-</code>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keyword
-</a>.
-<del class="diff-old">Specifying
-the
-type
-in
-this
-way
-will
-generate
-a
-triple
-of
-the
-form
-(subject,
-type,
-type-
-IRI
-).
-To
-be
-considered
-</del>
-<ins class="diff-chg">In
-</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
-Linked
-Data
-</a>,
-types
-<del class="diff-old">must
-be
-</del>
-<ins class="diff-chg">are
-</ins>
-uniquely
-identified
-<del class="diff-old">by
-</del>
-<ins class="diff-chg">with
-</ins>
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 12</span>: Specifying the type for a node</div><pre class="example">{
-...
-<del class="diff-old">  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
-  &quot;&quot;,
-</del>
-<ins class="diff-chg">  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-  &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">http://schema.org/Restaurant</span>&quot;,
-</ins>
-...
-}
-</pre>
-</div>
-<p>
-<ins class="diff-chg">A
-node
-can
-be
-assigned
-more
-than
-one
-type
-by
-using
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>:</p><div class="example"><div class="example-title"><span>Example 13</span>: Specifying multiple types for a node</div><pre class="example">{<ins class="diff-chg">
-...
-  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-  &quot;<span class="diff">@type</span>&quot;: <span class="diff">[ &quot;http://schema.org/Restaurant&quot;, &quot;http://schema.org/Brewery&quot; ],</span>
-...
-}
-</ins></pre>
-<del class="diff-old">3.5
-String
-Internationalization
-</del>
-</div>
-<p>
-<del class="diff-old">At
-times,
-it
-is
-important
-to
-annotate
-a
-string
-with
-its
-language.
-In
-JSON-LD
-this
-is
-possible
-in
-a
-variety
-</del>
-<ins class="diff-chg">The
-value
-</ins>
-of
-<del class="diff-old">ways.
-Firstly,
-it
-is
-possible
-to
-define
-a
-default
-language
-for
-</del>
-a
-<del class="diff-old">JSON-LD
-document
-by
-setting
-the
-</del>
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@type
-</ins>
-</code>
-key
-<del class="diff-old">in
-the
-@context
-or
-in
-</del>
-<ins class="diff-chg">may
-also
-be
-</ins>
-a
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-<del class="diff-old">definition:
-</del>
-<ins class="diff-chg">defined
-in
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>:
-</p>
-<del class="diff-old">{
-  &quot;@context&quot;:
-  {
-</del>
-<div class="example"><div class="example-title"><span>Example 14</span>: Using a term to specify the type</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;: {
-</ins>
-    ...
-<del class="diff-old">    &quot;@language&quot;: &quot;ja&quot;
-  },
-  &quot;name&quot;: ,
-  &quot;occupation&quot;:
-</del>
-    <span class="diff">&quot;Restaurant&quot;: &quot;http://schema.org/Restaurant&quot;, </span>
-    <span class="diff">&quot;Brewery&quot;: &quot;http://schema.org/Brewery&quot;</span>
-<ins class="diff-chg">  }
-  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-</ins>  <span class="diff">&quot;@type&quot;: [ &quot;Restaurant&quot;, &quot;Brewery&quot; ]</span>,<ins class="diff-chg">
-  ...
-</ins>
-}
-</pre>
-</div>
-</section>
-</section>
-<section class="normative" id="advanced-concepts">
-<h2>
-<span class="secno">
-<ins class="diff-new">6.
-</ins></span><ins class="diff-new">
-Advanced
-Concepts
-</ins></h2>
-<p>
-<del class="diff-old">The
-example
-</del>
-<ins class="diff-chg">JSON-LD
-has
-a
-number
-of
-features
-that
-provide
-functionality
-</ins>
-above
-<del class="diff-old">would
-associate
-the
-ja
-language
-code
-with
-</del>
-<ins class="diff-chg">and
-beyond
-</ins>
-the
-<del class="diff-old">two
-string
-s
-</del>
-<ins class="diff-chg">core
-functionality
-described
-above.
-The
-following
-section
-describes
-this
-advanced
-functionality
-in
-more
-detail.
-</ins></p><section class="informative" id="base-iri"><h3><span class="secno"><ins class="diff-chg">
-6.1
-</ins></span><ins class="diff-chg">
-Base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></h3><p>
-<em>
-<del class="diff-old">花澄
-</del>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins>
-</em>
-</p>
-<div class="issue atrisk">
-<div class="issue-title">
-<span>
-<ins class="diff-new">Feature
-at
-Risk
-1
-</ins></span>:<ins class="diff-new">
-@base
-keyword
-</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
-Note:
-This
-feature
-is
-</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
-&quot;at
-risk&quot;
-</ins></a>
-and
-<del class="diff-old">科学者
-.
-Languages
-must
-</del>
-<ins class="diff-chg">may
-</ins>
-be
-<del class="diff-old">well-formed
-language
-tags
-according
-</del>
-<ins class="diff-chg">removed
-from
-this
-specification
-based
-on
-feedback.
-Please
-send
-feedback
-</ins>
-to
-<del class="diff-old">[
-BCP47
-</del>
-<a href="mailto:public-rdf-comments@w3.org">
-<ins class="diff-chg">public-rdf-comments@w3.org
-</ins></a>.<ins class="diff-chg">
-For
-the
-current
-status
-see
-</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
-features
-&quot;at
-risk&quot;
-in
-JSON-LD
-1.0
-</ins>
-</a>
-<del class="diff-old">].
-</del>
-</p>
-<p>
-<del class="diff-old">It
-is
-possible
-to
-override
-</del>
-<ins class="diff-chg">Support
-for
-</ins>
-the
-<del class="diff-old">default
-language
-by
-using
-</del>
-<code>
-<ins class="diff-chg">@base
-</ins></code><ins class="diff-chg">
-keyword
-might
-be
-removed
-from
-JSON-LD
-1.0
-if
-implementation
-experience
-reveals
-that
-</ins>
-the
-<del class="diff-old">expanded
-form
-of
-</del>
-<ins class="diff-chg">fact
-that
-</ins>
-a
-<del class="diff-old">value:
-{
-  &quot;@context&quot;: {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-  },
-  &quot;name&quot;: &quot;花澄&quot;,
-  &quot;occupation&quot;: {
-    &quot;@value&quot;: &quot;Scientist&quot;,
-    &quot;@language&quot;: &quot;en&quot;
-  }
-}
-</del>
-<ins class="diff-chg">document
-may
-have
-multiple
-base
-IRIs
-is
-confusing
-for
-developers.
-</ins>
-It
-is
-also
-<del class="diff-old">possible
-to
-override
-the
-default
-language
-or
-specify
-a
-plain
-value
-by
-omitting
-the
-</del>
-<ins class="diff-chg">being
-discussed
-whether
-relative
-IRIs
-are
-allowed
-as
-values
-of
-</ins>
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@base
-</ins>
-</code>
-<del class="diff-old">tag
-</del>
-or
-<del class="diff-old">setting
-it
-</del>
-<ins class="diff-chg">whether
-the
-empty
-string
-should
-be
-used
-</ins>
-to
-<del class="diff-old">null
-</del>
-<ins class="diff-chg">explicitly
-specify
-that
-there
-isn't
-a
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>,<ins class="diff-chg">
-which
-could
-be
-used
-to
-ensure
-that
-relative
-IRIs
-remain
-relative
-</ins>
-when
-<del class="diff-old">expressing
-the
-expanded
-value:
-</del>
-<ins class="diff-chg">expanding.
-</ins>
-</p>
-<del class="diff-old">{
-  &quot;@context&quot;: {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-  },
-  &quot;name&quot;: {
-    &quot;@value&quot;: &quot;Frank&quot;
-  },
-  &quot;occupation&quot;:  {
-    &quot;@value&quot;: &quot;Ninja&quot;,
-    &quot;@language&quot;: &quot;en&quot;
-  },
-  &quot;speciality&quot;: &quot;手裏剣&quot;
-}
-</del>
-</div>
-<del class="diff-old">Note
-</del>
-</div>
-<p>
-<ins class="diff-new">JSON-LD
-allows
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>
-<del class="diff-old">Please
-note
-that
-language
-associations
-must
-only
-be
-applied
-to
-plain
-literal
-string
-s.
-That
-is,
-typed
-value
-</del>
-</a>
-s
-<del class="diff-old">or
-values
-that
-are
-subject
-</del>
-to
-<del class="diff-old">type
-coercion
-won't
-</del>
-be
-<del class="diff-old">language
-tagged.
-To
-clear
-</del>
-<ins class="diff-chg">specified
-in
-a
-relative
-form
-which
-is
-resolved
-against
-</ins>
-the
-<del class="diff-old">default
-language
-for
-</del>
-<ins class="diff-chg">document
-base
-according
-</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1"><ins class="diff-chg">
-section
-5.1
-Establishing
-</ins>
-a
-<del class="diff-old">subtree,
-@language
-can
-</del>
-<ins class="diff-chg">Base
-URI
-</ins></a></cite><ins class="diff-chg">
-of
-[
-</ins><cite><a class="bibref" href="#bib-RFC3986"><ins class="diff-chg">
-RFC3986
-</ins></a></cite><ins class="diff-chg">
-].
-The
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr><ins class="diff-chg">
-may
-</ins>
-be
-<ins class="diff-new">explicitly
-</ins>
-set
-<del class="diff-old">to
-null
-in
-</del>
-<ins class="diff-chg">with
-</ins>
-a
-<del class="diff-old">local
-</del>
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-<del class="diff-old">as
-follows:
-</del>
-<ins class="diff-chg">using
-the
-</ins><code><ins class="diff-chg">
-@base
-</ins></code><ins class="diff-chg">
-keyword.
-</ins>
-</p>
-<del class="diff-old">{
-</del>
-<p>
-<ins class="diff-chg">For
-example,
-if
-a
-JSON-LD
-document
-was
-retrieved
-from
-</ins><code><ins class="diff-chg">
-http://example.com/document.jsonld
-</ins></code>,<ins class="diff-chg">
-relative
-IRIs
-would
-resolve
-against
-that
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>:</p>  <div class="example"><div class="example-title"><span>Example 15</span>: Use a relative IRI as node identifier</div><pre class="example">{
-  &quot;@context&quot;: {
-<del class="diff-old">    ...
-    &quot;@language&quot;: &quot;ja&quot;
-</del>
-<ins class="diff-chg">    &quot;label&quot;: &quot;http://www.w3.org/2000/01/rdf-schema#label&quot;
-</ins>
-  },
-<del class="diff-old">  &quot;name&quot;: &quot;花澄&quot;,
-  &quot;details&quot;: {
-    &quot;@context&quot;: {
-      &quot;@language&quot;: null
-    },
-    &quot;occupation&quot;: &quot;Ninja&quot;
-  }
-</del>
-  <span class="diff">&quot;@id&quot;: &quot;&quot;</span>,
-<ins class="diff-chg">  &quot;label&quot;: &quot;Just a simple document&quot;
-</ins>
-}
-</pre>
-</div>
-<del class="diff-old">Note
-JSON-LD
-allows
-one
-to
-associate
-language
-information
-with
-term
-s.
-See
-Expanded
-Term
-Definition
-for
-more
-details.
-3.6
-JSON-LD
-Syntax
-</del>
-<p>
-<del class="diff-old">A
-JSON-LD
-</del>
-<ins class="diff-chg">This
-document
-uses
-an
-empty
-</ins><code><ins class="diff-chg">
-@id
-</ins></code>,<ins class="diff-chg">
-which
-resolves
-to
-the
-document
-base.
-However,
-if
-the
-</ins>
-document
-is
-<del class="diff-old">first,
-and
-foremost,
-</del>
-<ins class="diff-chg">moved
-to
-</ins>
-a
-<del class="diff-old">JSON
-document
-(as
-defined
-in
-[
-</del>
-<ins class="diff-chg">different
-location,
-the
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-<del class="diff-old">RFC5988
-</del>
-</a>
-<ins class="diff-new">would
-change.
-To
-prevent
-this
-without
-having
-to
-use
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>
-<del class="diff-old">]),
-and
-any
-syntactically
-correct
-JSON
-document
-must
-be
-processed
-by
-</del>
-</a>,
-a
-<del class="diff-old">conforming
-JSON-LD
-processor.
-However,
-JSON-LD
-describes
-</del>
-<a class="tref internalDFN" title="context" href="#dfn-context">
-<ins class="diff-chg">context
-</ins></a><ins class="diff-chg">
-may
-define
-</ins>
-a
-<del class="diff-old">specific
-syntax
-</del>
-<code>
-<ins class="diff-chg">@base
-</ins></code><ins class="diff-chg">
-mapping,
-</ins>
-to
-<del class="diff-old">use
-for
-expressing
-Linked
-Data.
-This
-includes
-</del>
-<ins class="diff-chg">overwrite
-</ins>
-the
-<del class="diff-old">use
-of
-specific
-keywords,
-as
-identified
-in
-Syntax
-Tokens
-and
-Keywords
-</del>
-<ins class="diff-chg">base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-for
-<del class="diff-old">expressing
-subject
-definitions
-,
-values,
-and
-</del>
-the
-<del class="diff-old">context
-.
-See
-Appendix
-A
-for
-authoring
-guidelines
-and
-a
-BNF
-description
-of
-JSON-LD.
-</del>
-<ins class="diff-chg">document.
-</ins>
-</p>
-  <div class="example"><div class="example-title"><span>Example 16</span>: Setting the document base in a document</div><pre class="example">{
-<ins class="diff-new">  &quot;@context&quot;: {
-</ins>    <span class="diff">&quot;@base&quot;: &quot;http://example.com/document.jsonld&quot;</span><ins class="diff-new">
-  },
-  &quot;@id&quot;: &quot;&quot;,
-  &quot;label&quot;: &quot;Just a simple document&quot;
-}
-</ins></pre>
-</div>
-</section>
-<section class="informative" id="default-vocabulary">
-<h3>
-<span class="secno">
-<del class="diff-old">4.
-</del>
-<ins class="diff-chg">6.2
-</ins>
-</span>
-<del class="diff-old">Advanced
-Concepts
-</del>
-<ins class="diff-chg">Default
-Vocabulary
-</ins></h3><p>
-<em>
-This
-section
-is
-<del class="diff-old">normative.
-</del>
-<ins class="diff-chg">non-normative.
-</ins>
-</em>
-<del class="diff-old">JSON-LD
-has
-a
-number
-of
-features
-that
-provide
-functionality
-above
-and
-beyond
-the
-core
-functionality
-described
-above.
-The
-following
-section
-describes
-this
-advanced
-functionality
-in
-more
-detail.
-</del>
-<del class="diff-old">4.1
-Compact
-IRIs
-</del>
-</p>
-<p>
-<del class="diff-old">Term
-s
-in
-Linked
-Data
-documents
-may
-draw
-from
-a
-number
-of
-different
-vocabularies
-.
-</del>
-At
-times,
-<del class="diff-old">declaring
-every
-single
-term
-that
-a
-document
-uses
-can
-require
-</del>
-<ins class="diff-chg">all
-properties
-and
-types
-may
-come
-from
-</ins>
-the
-<del class="diff-old">developer
-</del>
-<ins class="diff-chg">same
-vocabulary.
-JSON-LD's
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code><ins class="diff-chg">
-keyword
-allows
-an
-author
-</ins>
-to
-<del class="diff-old">declare
-tens,
-if
-</del>
-<ins class="diff-chg">set
-a
-common
-prefix
-to
-be
-used
-for
-all
-properties
-and
-types
-that
-do
-</ins>
-not
-<del class="diff-old">hundreds
-of
-potential
-vocabulary
-</del>
-<ins class="diff-chg">match
-a
-</ins>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-<del class="diff-old">s
-that
-</del>
-<ins class="diff-chg">and
-</ins>
-are
-<del class="diff-old">used
-across
-</del>
-<ins class="diff-chg">neither
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-nor
-</ins>
-an
-<del class="diff-old">application.
-This
-is
-</del>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-(i.e.,
-they
-do
-not
-contain
-</ins>
-a
-<del class="diff-old">concern
-for
-at
-least
-two
-reasons:
-the
-first
-</del>
-<ins class="diff-chg">colon).
-</ins></p>  <div class="example"><div class="example-title"><span>Example 17</span>: Using a common vocabulary prefix</div><pre class="example">{<ins class="diff-chg">
-  &quot;@context&quot;: {
-</ins>    <span class="diff">&quot;@vocab&quot;: &quot;http://schema.org/&quot;</span><ins class="diff-chg">
-  }
-  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-  &quot;@type&quot;: <span class="diff">&quot;Restaurant&quot;</span>,
-</ins>  <span class="diff">&quot;name&quot;</span>: &quot;Brew Eats&quot;<ins class="diff-chg">
-  ...
-}
-</ins></pre></div><p><ins class="diff-chg">
-If
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code>
-is
-<ins class="diff-new">used
-but
-certain
-keys
-in
-an
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-object
-</ins></a><ins class="diff-new">
-should
-not
-be
-expanded
-using
-</ins>
-the
-<del class="diff-old">cognitive
-load
-on
-the
-developer
-of
-remembering
-all
-of
-the
-</del>
-<ins class="diff-chg">vocabulary
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-a
-</ins>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-<del class="diff-old">s,
-and
-the
-second
-is
-the
-serialized
-size
-of
-</del>
-<ins class="diff-chg">can
-be
-explicitly
-set
-to
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-in
-</ins>
-the
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-<del class="diff-old">if
-it
-is
-specified
-inline.
-In
-order
-to
-address
-these
-issues,
-</del>
-</a>.
-<ins class="diff-chg">For
-instance,
-in
-</ins>
-the
-<del class="diff-old">concept
-of
-a
-compact
-</del>
-<ins class="diff-chg">example
-below
-the
-</ins><code><ins class="diff-chg">
-databaseId
-</ins></code><ins class="diff-chg">
-member
-would
-not
-expand
-to
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-</p>
-  <div class="example"><div class="example-title"><span>Example 18</span>: Using the null keyword to ignore data</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;:
-  {
-     &quot;@vocab&quot;: &quot;http://schema.org/&quot;,
-</ins>     <span class="diff">&quot;databaseId&quot;: null</span><ins class="diff-chg">
-  },
-    &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-    &quot;@type&quot;: &quot;Restaurant&quot;,
-    &quot;name&quot;: &quot;Brew Eats&quot;,
-</ins>    <span class="diff">&quot;databaseId&quot;</span>: &quot;23987520&quot;<ins class="diff-chg">
-}
-</ins></pre></div></section><section class="informative" id="compact-iris"><h3><span class="secno"><ins class="diff-chg">
-6.3
-</ins></span><ins class="diff-chg">
-Compact
-IRIs
-</ins></h3><p><em><ins class="diff-chg">
-This
-section
-</ins>
-is
-<del class="diff-old">introduced.
-</del>
-<ins class="diff-chg">non-normative.
-</ins></em>
-</p>
-<p>
-A
-<dfn title="compact-iri" id="dfn-compact-iri">
-compact
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</dfn>
-is
-a
-way
-of
-expressing
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-using
-a
-<em>
-prefix
-</em>
-and
-<em>
-suffix
-</em>
-separated
-by
-a
-colon
-(
-<code>:
-</code>
-<del class="diff-old">)
-which
-is
-similar
-to
-the
-CURIE
-Syntax
-in
-[
-RDFA-CORE
-].
-</del>
-<ins class="diff-chg">).
-</ins>
-The
-<dfn title="prefix" id="dfn-prefix">
-prefix
-</dfn>
-is
-a
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-taken
-from
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-active
-context
-</a>
-and
-is
-a
-short
-string
-identifying
-a
-particular
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-in
-a
-JSON-LD
-document.
-For
-example,
-the
-prefix
-<code>
-foaf
-</code>
-may
-be
-used
-as
-a
-short
-hand
-for
-the
-Friend-of-a-Friend
-vocabulary,
-which
-is
-identified
-using
-the
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<code>
-http://xmlns.com/foaf/0.1/
-</code>.
-A
-developer
-may
-append
-any
-of
-the
-FOAF
-vocabulary
-terms
-to
-the
-end
-of
-the
-prefix
-to
-specify
-a
-short-hand
-version
-of
-the
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-for
-the
-vocabulary
-term.
-For
-example,
-<code>
-foaf:name
-</code>
-would
-be
-expanded
-<del class="diff-old">out
-</del>
-to
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<code>
-http://xmlns.com/foaf/0.1/name
-</code>.
-<del class="diff-old">Instead
-of
-having
-</del>
-</p>
-  <div class="example"><div class="example-title"><span>Example 19</span>: Prefix expansion</div><pre class="example">{
-<ins class="diff-chg">  &quot;<span class="diff">@context</span>&quot;:
-  {
-    &quot;<span class="diff">foaf</span>&quot;: &quot;<span class="diff">http://xmlns.com/foaf/0.1/</span>&quot;
-...
-  },
-  &quot;@type&quot;: &quot;<span class="diff">foaf:Person</span>&quot;
-  &quot;<span class="diff">foaf:name</span>&quot;: &quot;Dave Longley&quot;,
-...
-}
-</ins></pre></div><p><ins class="diff-chg">
-In
-the
-example
-above,
-</ins><code><ins class="diff-chg">
-foaf:name
-</ins></code><ins class="diff-chg">
-expands
-</ins>
-to
-<del class="diff-old">remember
-and
-type
-out
-</del>
-the
-<del class="diff-old">entire
-</del>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-<del class="diff-old">,
-the
-developer
-can
-instead
-use
-the
-prefix
-in
-their
-JSON-LD
-markup.
-</del>
-</abbr>
-</a>
-<code>
-<ins class="diff-chg">http://xmlns.com/foaf/0.1/name
-</ins></code><ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-foaf:Person
-</ins></code><ins class="diff-chg">
-expands
-to
-</ins><code><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/Person
-</ins></code>.
-</p>
-<p>
-<del class="diff-old">Terms
-</del>
-<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
-<ins class="diff-chg">Prefixes
-</ins></a>
-are
-<del class="diff-old">interpreted
-as
-</del>
-<ins class="diff-chg">expanded
-when
-the
-form
-of
-the
-value
-is
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-compact
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">s
-if
-they
-contain
-at
-least
-one
-colon
-and
-the
-first
-colon
-is
-not
-followed
-by
-two
-slashes
-(
-//
-,
-</del>
-<ins class="diff-chg">represented
-</ins>
-as
-<del class="diff-old">in
-</del>
-<ins class="diff-chg">a
-</ins>
-<code>
-<del class="diff-old">http://example.com
-</del>
-<ins class="diff-chg">prefix:suffix
-</ins>
-</code>
-<del class="diff-old">).
-To
-generate
-the
-full
-IRI
-,
-</del>
-<ins class="diff-chg">combination,
-</ins>
-the
-<del class="diff-old">value
-is
-first
-split
-into
-a
-</del>
-<em>
-prefix
-</em>
-<ins class="diff-new">matches
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-defined
-within
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,
-and
-<ins class="diff-new">the
-</ins>
-<em>
-suffix
-</em>
-<del class="diff-old">at
-the
-first
-occurrence
-of
-a
-colon
-</del>
-<ins class="diff-chg">does
-not
-begin
-with
-two
-slashes
-</ins>
-(
-<del class="diff-old">:
-</del>
-<code>
-<ins class="diff-chg">//
-</ins>
-</code>
-).
-<del class="diff-old">If
-the
-active
-context
-contains
-a
-term
-mapping
-for
-prefix
-,
-an
-</del>
-<ins class="diff-chg">The
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-is
-<del class="diff-old">generated
-</del>
-<ins class="diff-chg">expanded
-</ins>
-by
-<del class="diff-old">prepending
-</del>
-<ins class="diff-chg">concatenating
-</ins>
-the
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-new">IRI
-</ins></abbr></a>
-mapped
-<ins class="diff-new">to
-the
-</ins>
-<em>
-prefix
-</em>
-to
-the
-(possibly
-empty)
-<em>
-suffix
-<del class="diff-old">using
-textual
-concatenation.
-</del>
-</em>.
-If
-<del class="diff-old">no
-</del>
-<ins class="diff-chg">the
-</ins><em>
-prefix
-<del class="diff-old">mapping
-</del>
-</em>
-is
-<del class="diff-old">defined,
-</del>
-<ins class="diff-chg">not
-defined
-in
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<ins class="diff-chg">
-or
-the
-suffix
-begins
-with
-two
-slashes
-(such
-as
-in
-</ins><code><ins class="diff-chg">
-http://example.com
-</ins></code><ins class="diff-chg">
-),
-</ins>
-the
-value
-is
-interpreted
-as
-<del class="diff-old">an
-</del>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">.
-</del>
-</a>
-<ins class="diff-chg">instead.
-</ins>
-If
-the
-prefix
-is
-an
-underscore
-(
-<code>
-_
-</code>
-),
-the
-<del class="diff-old">IRI
-remains
-unchanged.
-This
-effectively
-means
-that
-every
-term
-containing
-a
-colon
-will
-be
-</del>
-<ins class="diff-chg">value
-is
-</ins>
-interpreted
-<del class="diff-old">by
-a
-JSON-LD
-processor
-</del>
-as
-<del class="diff-old">an
-IRI
-.
-Consider
-the
-following
-example:
-  {
-  &quot;@context&quot;:
-  {
-
-
-  },
-  &quot;@id&quot;: &quot;http://example.org/library&quot;,
-  &quot;@type&quot;: ,
-  :
-  {
-    &quot;@id&quot;: &quot;http://example.org/library/the-republic&quot;,
-    &quot;@type&quot;: ,
-    : &quot;Plato&quot;,
-    : &quot;The Republic&quot;,
-    :
-    {
-      &quot;@id&quot;: &quot;http://example.org/library/the-republic#introduction&quot;,
-      &quot;@type&quot;: ,
-      : &quot;An introductory chapter on The Republic.&quot;,
-      : &quot;The Introduction&quot;
-    }
-  }
-}
-In
-this
-example,
-two
-different
-vocabularies
-</del>
-<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
-<ins class="diff-chg">blank
-node
-identifier
-</ins>
-</a>
-<del class="diff-old">are
-referred
-to
-using
-prefixes.
-Those
-prefixes
-are
-then
-used
-as
-type
-and
-property
-values
-using
-the
-compact
-IRI
-prefix:suffix
-notation.
-</del>
-<ins class="diff-chg">instead.
-</ins>
-</p>
-<p>
-It's
-also
-possible
-to
-use
-compact
-IRIs
-within
-the
-context
-as
-shown
-in
-the
-following
-example:
-</p>
-<del class="diff-old">  {
-</del>
-  <div class="example"><div class="example-title"><span>Example 20</span>: Using vocabularies</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-<del class="diff-old">    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
-</del>
-    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
-    <span class="diff">&quot;foaf:homepage&quot;</span>: { &quot;@type&quot;: &quot;@id&quot; },
-    &quot;picture&quot;: { &quot;@id&quot;: <span class="diff">&quot;foaf:depiction&quot;</span>, &quot;@type&quot;: &quot;@id&quot; }
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;foaf:homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
-  &quot;picture&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
-}
-</pre>
-</div>
-</section>
-<section class="informative" id="typed-values">
-<h3>
-<span class="secno">
-<del class="diff-old">4.2
-</del>
-<ins class="diff-chg">6.4
-</ins>
-</span>
-Typed
-Values
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-A
-value
-with
-an
-associated
-type,
-also
-known
-as
-a
-<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
-typed
-value
-<del class="diff-old">,
-</del>
-</a>,
-is
-indicated
-by
-associating
-a
-value
-with
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-which
-indicates
-the
-value's
-type.
-Typed
-values
-may
-be
-expressed
-in
-JSON-LD
-in
-<del class="diff-old">two
-</del>
-<ins class="diff-chg">three
-</ins>
-ways:
-</p>
-<ol>
-<li>
-By
-utilizing
-the
-<code>
-@type
-</code>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keyword
-</a>
-when
-defining
-a
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-within
-a
-<code>
-@context
-</code>
-section.
-</li>
-<li>
-By
-utilizing
-<del class="diff-old">the
-expanded
-form
-for
-specifying
-objects.
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins></a>.</li><li><ins class="diff-chg">
-By
-using
-a
-native
-JSON
-type
-such
-as
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-number
-</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,<ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>.
-</li>
-</ol>
-<p>
-The
-first
-example
-uses
-the
-<code>
-@type
-</code>
-keyword
-to
-associate
-a
-type
-with
-a
-particular
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-in
-the
-<code>
-@context
-</code>:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 21</span>: Expanded term definition with type coercion</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-  {
-    &quot;modified&quot;:
-    {
-      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;,
-      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
-    }
-  },</span>
-...
-<ins class="diff-new">  &quot;@id&quot;: &quot;http://example.com/docs/1&quot;,
-</ins>
-  &quot;modified&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
-...
-}
-</pre>
-</div>
-<p>
-The
-<em>
-modified
-</em>
-key's
-value
-above
-is
-automatically
-type
-coerced
-to
-a
-<del class="diff-old">datetime
-</del>
-<em>
-<ins class="diff-chg">dateTime
-</ins></em>
-value
-because
-of
-the
-information
-specified
-in
-the
-<code>
-@context
-</code>.
-<ins class="diff-new">A
-JSON-LD
-processor
-will
-interpret
-the
-example
-above
-as
-follows:
-</ins>
-</p>
-<table class="example">
-<thead>
-<tr>
-<th>
-<ins class="diff-new">Subject
-</ins></th><th><ins class="diff-new">
-Property
-</ins></th><th><ins class="diff-new">
-Value
-</ins></th><th><ins class="diff-new">
-Value
-Type
-</ins></th></tr></thead><tbody><tr><td><ins class="diff-new">
-http://example.com/docs/1
-</ins></td><td><ins class="diff-new">
-http://purl.org/dc/terms/modified
-</ins></td><td><ins class="diff-new">
-2010-05-29T14:17:39+02:00
-</ins></td><td><ins class="diff-new">
-http://www.w3.org/2001/XMLSchema#dateTime
-</ins></td></tr></tbody></table>
-<p>
-The
-second
-example
-uses
-the
-expanded
-form
-of
-setting
-the
-type
-information
-in
-the
-body
-of
-a
-JSON-LD
-document:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 22</span>: Expanded value with type</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;modified&quot;:
-    {
-      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;
-    }
-  },
-...
-  &quot;modified&quot;:
-  <span class="diff">{
-    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
-    &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
-  }</span>
-...
-}
-</pre>
-</div>
-<p>
-Both
-examples
-above
-would
-generate
-<del class="diff-old">an
-object
-with
-</del>
-the
-value
-<del class="diff-old">of
-</del>
-<code>
-2010-05-29T14:17:39+02:00
-</code>
-<del class="diff-old">and
-</del>
-<ins class="diff-chg">with
-</ins>
-the
-type
-<del class="diff-old">of
-</del>
-<code>
-http://www.w3.org/2001/XMLSchema#dateTime
-</code>.
-Note
-that
-it
-is
-also
-possible
-to
-use
-a
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-or
-a
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-compact
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-to
-express
-the
-value
-of
-a
-type.
-</p>
-<del class="diff-old">Note
-</del>
-<p>
-The
-<code>
-@type
-</code>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keyword
-</a>
-is
-also
-used
-to
-associate
-a
-type
-with
-a
-<del class="diff-old">subject
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">node
-</ins>
-</a>.
-<del class="diff-old">Although
-the
-same
-keyword
-is
-used
-in
-both
-places,
-the
-</del>
-<ins class="diff-chg">The
-</ins>
-concept
-of
-<del class="diff-old">an
-object
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="node-type" href="#dfn-node-type"><ins class="diff-chg">
-node
-</ins>
-type
-</a>
-and
-a
-<a class="tref internalDFN" title="value-type" href="#dfn-value-type">
-value
-type
-</a>
-are
-different.
-<del class="diff-old">This
-</del>
-</p>
-<p>
-<ins class="diff-chg">Generally
-speaking,
-a
-</ins><dfn title="node-type" id="dfn-node-type"><ins class="diff-chg">
-node
-type
-</ins></dfn><ins class="diff-chg">
-specifies
-the
-type
-of
-thing
-that
-</ins>
-is
-<del class="diff-old">similar
-to
-object-oriented
-programming
-languages
-where
-both
-scalar
-and
-structured
-types
-</del>
-<ins class="diff-chg">being
-described,
-like
-a
-person,
-place,
-event,
-or
-web
-page.
-A
-</ins><dfn title="value-type" id="dfn-value-type"><ins class="diff-chg">
-value
-type
-</ins></dfn><ins class="diff-chg">
-specifies
-the
-data
-type
-of
-a
-particular
-value,
-such
-as
-an
-integer,
-a
-floating
-point
-number,
-or
-a
-date.
-</ins></p><div class="example"><div class="example-title"><span>Example 23</span>: Example demonstrating the context-sensitivity for @type</div><pre class="example">{<ins class="diff-chg">
-...
-  &quot;@id&quot;: &quot;http://example.org/posts#TripToWestVirginia&quot;,
-</ins>  <span class="diff">&quot;@type&quot;: &quot;http://schema.org/BlogPosting&quot;</span>,   &lt;- This is a node type<ins class="diff-chg">
-  &quot;modified&quot;:
-  {
-    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
-</ins>    <span class="diff">&quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;</span> &lt;- This is a value type<ins class="diff-chg">
-  }
-...
-}
-</ins></pre></div><p><ins class="diff-chg">
-The
-first
-</ins>
-use
-<ins class="diff-new">of
-</ins><code><ins class="diff-new">
-@type
-</ins></code><ins class="diff-new">
-associates
-a
-</ins><a class="tref internalDFN" title="node-type" href="#dfn-node-type"><ins class="diff-new">
-node
-type
-</ins></a><ins class="diff-new">
-(
-</ins><code><ins class="diff-new">
-http://schema.org/BlogPosting
-</ins></code><ins class="diff-new">
-)
-with
-</ins>
-the
-<del class="diff-old">same
-class
-inheritance
-mechanism,
-even
-though
-scalar
-types
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">node
-</ins></a>,<ins class="diff-chg">
-which
-is
-expressed
-using
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>.<ins class="diff-chg">
-The
-second
-use
-of
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-associates
-a
-</ins><a class="tref internalDFN" title="value-type" href="#dfn-value-type"><ins class="diff-chg">
-value
-type
-</ins></a><ins class="diff-chg">
-(
-</ins><code><ins class="diff-chg">
-http://www.w3.org/2001/XMLSchema#dateTime
-</ins></code><ins class="diff-chg">
-)
-with
-the
-value
-expressed
-using
-the
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>.<ins class="diff-chg">
-As
-a
-general
-rule,
-when
-</ins><code><ins class="diff-chg">
-@value
-</ins></code>
-and
-<del class="diff-old">structured
-types
-</del>
-<code>
-<ins class="diff-chg">@type
-</ins></code>
-are
-<del class="diff-old">inherently
-different.
-</del>
-<ins class="diff-chg">used
-in
-the
-same
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a>,<ins class="diff-chg">
-the
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-is
-expressing
-a
-</ins><a class="tref internalDFN" title="value-type" href="#dfn-value-type"><ins class="diff-chg">
-value
-type
-</ins></a>.<ins class="diff-chg">
-Otherwise,
-the
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-is
-expressing
-a
-</ins><a class="tref internalDFN" title="node-type" href="#dfn-node-type"><ins class="diff-chg">
-node
-type
-</ins></a>.<ins class="diff-chg">
-The
-example
-above
-expresses
-the
-following
-data:
-</ins>
-</p>
-<table class="example">
-<thead>
-<tr>
-<th>
-<ins class="diff-chg">Subject
-</ins></th><th><ins class="diff-chg">
-Property
-</ins></th><th><ins class="diff-chg">
-Value
-</ins></th><th><ins class="diff-chg">
-Value
-Type
-</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
-http://example.org/posts#TripToWestVirginia
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/1999/02/22-rdf-syntax-ns#type
-</ins></td><td><ins class="diff-chg">
-http://schema.org/BlogPosting
-</ins></td><td style="text-align:center;"><ins class="diff-chg">
--
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.org/posts#TripToWestVirginia
-</ins></td><td><ins class="diff-chg">
-http://purl.org/dc/terms/modified
-</ins></td><td><ins class="diff-chg">
-2010-05-29T14:17:39+02:00
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/2001/XMLSchema#dateTime
-</ins></td></tr></tbody></table></section><section class="informative" id="type-coercion">
-<h3>
-<span class="secno">
-<del class="diff-old">4.3
-</del>
-<ins class="diff-chg">6.5
-</ins>
-</span>
-<del class="diff-old">External
-Contexts
-</del>
-<ins class="diff-chg">Type
-Coercion
-</ins>
-</h3>
-<p>
-<del class="diff-old">Authors
-may
-choose
-</del>
-<em>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-JSON-LD
-supports
-the
-coercion
-of
-values
-</ins>
-to
-<del class="diff-old">declare
-</del>
-<ins class="diff-chg">particular
-data
-types.
-Type
-</ins><dfn title="coercion" id="dfn-coercion"><ins class="diff-chg">
-coercion
-</ins></dfn><ins class="diff-chg">
-allows
-someone
-deploying
-</ins>
-JSON-LD
-<del class="diff-old">context
-s
-in
-external
-documents
-</del>
-to
-<del class="diff-old">promote
-re-use
-</del>
-<ins class="diff-chg">coerce
-the
-incoming
-or
-outgoing
-values
-to
-the
-proper
-data
-type
-based
-on
-a
-mapping
-</ins>
-of
-<del class="diff-old">contexts
-as
-well
-as
-reduce
-</del>
-<ins class="diff-chg">data
-type
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a>.<ins class="diff-chg">
-Using
-type
-coercion,
-value
-representation
-is
-preserved
-without
-requiring
-</ins>
-the
-<del class="diff-old">size
-</del>
-<ins class="diff-chg">data
-type
-to
-be
-specified
-with
-each
-piece
-</ins>
-of
-<del class="diff-old">JSON-LD
-documents.
-</del>
-<ins class="diff-chg">data.
-</ins>
-</p>
-<p>
-<del class="diff-old">In
-order
-to
-use
-an
-external
-context,
-</del>
-<ins class="diff-chg">Type
-coercion
-is
-specified
-within
-</ins>
-an
-<del class="diff-old">author
-must
-specify
-</del>
-<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">
-<ins class="diff-chg">expanded
-term
-definition
-</ins></a><ins class="diff-chg">
-using
-the
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-key.
-The
-value
-of
-this
-key
-expands
-to
-</ins>
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-<ins class="diff-new">Alternatively,
-the
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
-keywords
-</ins>
-</a>
-<code>
-<ins class="diff-new">@id
-</ins></code><ins class="diff-new">
-or
-</ins><code><ins class="diff-new">
-@vocab
-</ins></code><ins class="diff-new">
-may
-be
-used
-as
-value
-</ins>
-to
-<ins class="diff-new">indicate
-that
-within
-the
-body
-of
-</ins>
-a
-<del class="diff-old">valid
-</del>
-JSON-LD
-<del class="diff-old">document.
-The
-referenced
-document
-must
-have
-</del>
-<ins class="diff-chg">document,
-</ins>
-a
-<del class="diff-old">top-level
-subject
-definition
-.
-The
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">string
-</ins></a>
-value
-of
-<del class="diff-old">any
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-coerced
-to
-</ins>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">@id
-</ins></code><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@vocab
-</ins>
-</code>
-<del class="diff-old">key
-within
-that
-object
-</del>
-is
-<del class="diff-old">substituted
-for
-the
-</del>
-<ins class="diff-chg">to
-be
-interpreted
-as
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">within
-</del>
-</a>.
-<ins class="diff-chg">The
-difference
-between
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code><ins class="diff-chg">
-is
-how
-values
-are
-expanded
-to
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-IRIs
-</ins></a>.<code><ins class="diff-chg">
-@vocab
-</ins></code><ins class="diff-chg">
-first
-tries
-to
-expand
-</ins>
-the
-<del class="diff-old">referencing
-document
-</del>
-<ins class="diff-chg">value
-by
-interpreting
-it
-as
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>.<ins class="diff-chg">
-If
-no
-matching
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-is
-found
-in
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<ins class="diff-chg">
-it
-tries
-</ins>
-to
-<del class="diff-old">have
-</del>
-<ins class="diff-chg">expand
-it
-as
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-if
-there's
-a
-colon
-in
-</ins>
-the
-<del class="diff-old">same
-effect
-</del>
-<ins class="diff-chg">value;
-otherwise,
-it
-will
-expand
-the
-value
-using
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context's
-</ins></a><ins class="diff-chg">
-vocabulary
-mapping,
-if
-present,
-or
-by
-interpreting
-it
-as
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
-relative
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.<ins class="diff-chg">
-Values
-coerced
-to
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-in
-contrast
-are
-expanded
-</ins>
-as
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-<ins class="diff-new">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>
-if
-<ins class="diff-new">a
-colon
-is
-present;
-otherwise,
-they
-are
-interpreted
-as
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
-relative
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>.</p><p><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-Terms
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
-compact
-IRIs
-</ins></a><ins class="diff-new">
-used
-as
-</ins>
-the
-value
-<del class="diff-old">were
-specified
-inline
-</del>
-<ins class="diff-chg">of
-a
-</ins><code><ins class="diff-chg">
-@type
-</ins></code><ins class="diff-chg">
-key
-may
-be
-defined
-</ins>
-within
-the
-<del class="diff-old">referencing
-document.
-</del>
-<ins class="diff-chg">same
-context.
-This
-means
-that
-one
-may
-specify
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-like
-</ins><code><ins class="diff-chg">
-xsd
-</ins></code><ins class="diff-chg">
-and
-then
-use
-</ins><code><ins class="diff-chg">
-xsd:integer
-</ins></code><ins class="diff-chg">
-within
-the
-same
-context
-definition.
-</ins>
-</p>
-<p>
-The
-<del class="diff-old">following
-</del>
-example
-<ins class="diff-new">below
-</ins>
-demonstrates
-<del class="diff-old">the
-use
-of
-an
-external
-context:
-</del>
-<ins class="diff-chg">how
-a
-JSON-LD
-author
-can
-coerce
-values
-to
-</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
-typed
-values
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>.
-</p>
-<del class="diff-old">{
-  ,
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
-</del>
-<div class="example"><div class="example-title"><span>Example 24</span>: Expanded term definition with types</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;:
-  {
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;age&quot;:
-</ins>    <span class="diff">{<ins class="diff-chg">
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    }</span>,
-    &quot;homepage&quot;:
-</ins>    <span class="diff">{<ins class="diff-chg">
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }</span>
-  },
-  &quot;@id&quot;: &quot;http://example.com/people#john&quot;,
-  &quot;name&quot;: &quot;John Smith&quot;,
-  &quot;age&quot;: <span class="diff">&quot;41&quot;</span>,
-  &quot;homepage&quot;:
-</ins>  <span class="diff">[<ins class="diff-chg">
-    &quot;http://personal.example.org/&quot;,
-    &quot;http://work.example.com/jsmith/&quot;
-  ]</span>
-</ins>
-}
-</pre>
-</div>
-<p>
-<del class="diff-old">Authors
-</del>
-<ins class="diff-chg">The
-example
-shown
-above
-would
-generate
-the
-following
-data.
-</ins></p><table class="example"><thead><tr><th><ins class="diff-chg">
-Subject
-</ins></th><th><ins class="diff-chg">
-Property
-</ins></th><th><ins class="diff-chg">
-Value
-</ins></th><th><ins class="diff-chg">
-Value
-Type
-</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
-http://example.com/people#john
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/name
-</ins></td><td><ins class="diff-chg">
-John
-Smith
-</ins></td><td></td></tr><tr><td><ins class="diff-chg">
-http://example.com/people#john
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/age
-</ins></td><td><ins class="diff-chg">
-41
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/2001/XMLSchema#integer
-</ins></td></tr><tr><td rowspan="2"><ins class="diff-chg">
-http://example.com/people#john
-</ins></td><td rowspan="2"><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/homepage
-</ins></td><td><ins class="diff-chg">
-http://personal.example.org/
-</ins></td><td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a></td></tr><tr><td><ins class="diff-chg">
-http://work.example.com/jsmith/
-</ins></td><td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a></td></tr></tbody></table><p><ins class="diff-chg">
-Terms
-</ins>
-may
-also
-<del class="diff-old">import
-multiple
-contexts
-</del>
-<ins class="diff-chg">be
-defined
-using
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-IRIs
-</ins></a>
-or
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-<ins class="diff-new">compact
-IRIs
-</ins></a>.<ins class="diff-new">
-This
-allows
-coercion
-rules
-to
-be
-applied
-to
-keys
-which
-are
-not
-represented
-as
-</ins>
-a
-<del class="diff-old">combination
-of
-external
-and
-local
-contexts
-by
-specifying
-a
-list
-of
-contexts:
-</del>
-<ins class="diff-chg">simple
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>.<ins class="diff-chg">
-For
-example:
-</ins>
-</p>
-<del class="diff-old">{
-  &quot;@context&quot;:
-  [
-    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
-</del>
-<div class="example"><div class="example-title"><span>Example 25</span>: Term definitions using compact and absolute IRIs</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
-    &quot;<span class="diff">foaf:age</span>&quot;:
-</ins>
-    {
-<del class="diff-old">      &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-</del>
-      <span class="diff">&quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;</span>,
-<ins class="diff-chg">      &quot;@type&quot;: &quot;xsd:integer&quot;
-</ins>
-    },
-<del class="diff-old">    &quot;http://json-ld.org/contexts/event.jsonld&quot;
-  ],
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;foaf:depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;,
-  &quot;celebrates&quot;:
-  {
-    &quot;@type&quot;: &quot;Event&quot;,
-    &quot;description&quot;: &quot;International Talk Like a Pirate Day&quot;,
-    &quot;date&quot;: &quot;R/2011-09-19&quot;
-  }
-</del>
-<ins class="diff-chg">    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
-    {
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;foaf:name&quot;: &quot;John Smith&quot;,
-  &quot;<span class="diff">foaf:age</span>&quot;: &quot;41&quot;,
-  &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
-  [
-    &quot;http://personal.example.org/&quot;,
-    &quot;http://work.example.com/jsmith/&quot;
-  ]
-</ins>
-}
-</pre>
-</div>
-<p>
-<del class="diff-old">Each
-context
-</del>
-<ins class="diff-chg">In
-this
-case
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-definition
-</ins>
-in
-<del class="diff-old">a
-list
-will
-be
-evaluated
-in-order.
-Duplicate
-mappings
-among
-</del>
-the
-<del class="diff-old">context
-</del>
-<ins class="diff-chg">term
-definition
-is
-optional.
-If
-it
-does
-exist,
-the
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>
-<del class="diff-old">s
-must
-</del>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-representing
-the
-term
-will
-always
-</ins>
-be
-<del class="diff-old">overwritten
-on
-a
-last-defined-overrides
-basis.
-The
-context
-list
-must
-contain
-either
-de-referenceable
-</del>
-<ins class="diff-chg">expanded
-to
-</ins>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">s
-</del>
-<ins class="diff-chg">defined
-by
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-key—regardless
-of
-whether
-a
-prefix
-is
-defined
-</ins>
-or
-<del class="diff-old">JSON
-object
-s
-</del>
-<ins class="diff-chg">not.
-</ins></p><p><ins class="diff-chg">
-Type
-coercion
-is
-always
-performed
-using
-the
-unexpanded
-value
-of
-the
-key.
-In
-the
-example
-above,
-</ins>
-that
-<del class="diff-old">conform
-to
-</del>
-<ins class="diff-chg">means
-that
-type
-coercion
-is
-done
-looking
-for
-</ins><code><ins class="diff-chg">
-foaf:age
-</ins></code><ins class="diff-chg">
-in
-</ins>
-the
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-</ins>
-context
-</a>
-<del class="diff-old">syntax
-</del>
-<ins class="diff-chg">and
-not
-for
-the
-corresponding,
-expanded
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><code><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/age
-</ins></code>.</p><div class="note"><div class="note-title"><span><ins class="diff-chg">
-Note
-</ins></span></div><p class=""><ins class="diff-chg">
-Keys
-in
-the
-context
-are
-treated
-</ins>
-as
-<del class="diff-old">described
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">terms
-</ins></a><ins class="diff-chg">
-for
-the
-purpose
-of
-expansion
-and
-value
-coercion.
-At
-times,
-this
-may
-result
-</ins>
-in
-<ins class="diff-new">multiple
-representations
-for
-the
-same
-expanded
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>.<ins class="diff-new">
-For
-example,
-one
-could
-specify
-that
-</ins><code><ins class="diff-new">
-dog
-</ins></code><ins class="diff-new">
-and
-</ins><code><ins class="diff-new">
-cat
-</ins></code><ins class="diff-new">
-both
-expanded
-to
-</ins><code><ins class="diff-new">
-http://example.com/vocab#animal
-</ins></code>.<ins class="diff-new">
-Doing
-this
-could
-be
-useful
-for
-establishing
-different
-type
-coercion
-or
-language
-specification
-rules.
-It
-also
-allows
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-(or
-even
-an
-absolute
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-)
-to
-be
-defined
-as
-something
-else
-entirely.
-For
-example,
-one
-could
-specify
-that
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><code><ins class="diff-new">
-http://example.org/zoo
-</ins></code><ins class="diff-new">
-should
-expand
-to
-</ins><code><ins class="diff-new">
-http://example.org/river
-</ins></code>,<ins class="diff-new">
-but
-</ins>
-this
-<ins class="diff-new">usage
-is
-discouraged
-because
-it
-would
-lead
-to
-a
-great
-deal
-of
-confusion
-among
-developers
-attempting
-to
-understand
-the
-JSON-LD
-</ins>
-document.
-</p>
-</div>
-</section>
-<section class="informative" id="embedding">
-<h3>
-<span class="secno">
-<ins class="diff-new">6.6
-</ins></span><ins class="diff-new">
-Embedding
-</ins></h3><p><em><ins class="diff-new">
-This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-<del class="diff-old">An
-</del>
-<dfn title="embedding" id="dfn-embedding">
-<ins class="diff-chg">Embedding
-</ins></dfn><ins class="diff-chg">
-is
-a
-JSON-LD
-feature
-that
-allows
-an
-</ins>
-author
-<ins class="diff-chg">to
-use
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-objects
-</ins></a><ins class="diff-chg">
-as
-</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
-property
-</ins></a><ins class="diff-chg">
-values.
-This
-is
-a
-commonly
-used
-mechanism
-for
-creating
-a
-parent-child
-relationship
-between
-two
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-nodes
-</ins></a>.</p><p><ins class="diff-chg">
-The
-example
-shows
-two
-nodes
-related
-by
-a
-property
-from
-the
-first
-node:
-</ins></p>  <div class="example"><div class="example-title"><span>Example 26</span>: Embedding a node object as property value of another node object</div><pre class="example">{<ins class="diff-chg">
-...
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;<span class="diff">knows</span>&quot;:
-  {
-    &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">Person</span>&quot;,
-    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">Gregg Kellogg</span>&quot;,
-  }
-...
-}
-</ins></pre></div><p><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a>,<ins class="diff-chg">
-like
-the
-one
-used
-above,
-</ins>
-may
-<ins class="diff-new">be
-used
-in
-any
-value
-position
-in
-the
-body
-of
-a
-JSON-LD
-document.
-</ins></p></section><section class="informative" id="advanced-context-usage"><h3><span class="secno"><ins class="diff-new">
-6.7
-</ins></span><ins class="diff-new">
-Advanced
-Context
-Usage
-</ins></h3><p><em><ins class="diff-new">
-This
-section
-is
-non-normative.
-</ins>
-</em>
-<del class="diff-old">nest
-contexts
-within
-subject
-definitions
-,
-with
-</del>
-</p>
-<p>
-<ins class="diff-chg">Section
-</ins><a href="#the-context" class="sec-ref"><span class="secno"><ins class="diff-chg">
-5.1
-</ins></span><span class="sec-title"><ins class="diff-chg">
-The
-Context
-</ins></span></a><ins class="diff-chg">
-introduced
-the
-basics
-of
-what
-makes
-JSON-LD
-work.
-This
-section
-expands
-on
-the
-basic
-principles
-of
-</ins>
-the
-<a class="tref internalDFN" title="context" href="#dfn-context">
-<ins class="diff-new">context
-</ins></a><ins class="diff-new">
-and
-demonstrates
-how
-</ins>
-more
-<del class="diff-old">deeply
-nested
-</del>
-<ins class="diff-chg">advanced
-use
-cases
-can
-be
-achieved
-using
-JSON-LD.
-</ins></p><p><ins class="diff-chg">
-In
-general,
-</ins>
-contexts
-<del class="diff-old">overriding
-the
-values
-</del>
-<ins class="diff-chg">may
-be
-used
-at
-any
-time
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-is
-defined.
-The
-only
-time
-that
-one
-cannot
-express
-a
-context
-is
-inside
-a
-context
-definition
-itself.
-For
-example,
-a
-</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
-JSON-LD
-document
-</ins></a><ins class="diff-chg">
-may
-use
-more
-than
-one
-context
-at
-different
-points
-</ins>
-in
-<del class="diff-old">previously
-defined
-contexts:
-</del>
-<ins class="diff-chg">a
-document:
-</ins>
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 27</span>: Using multiple contexts</div><pre class="example">[
-<ins class="diff-chg">  {
-</ins>    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/person.jsonld&quot;,</span><ins class="diff-chg">
-    &quot;name&quot;: &quot;Manu Sporny&quot;,
-    &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-    &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
-  },
-  {
-</ins>    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/place.jsonld&quot;,</span><ins class="diff-chg">
-    &quot;name&quot;: &quot;The Empire State Building&quot;,
-    &quot;description&quot;: &quot;The Empire State Building is a 102-story landmark in New York City.&quot;,
-    &quot;geo&quot;: {
-      &quot;latitude&quot;: &quot;40.75&quot;,
-      &quot;longitude&quot;: &quot;73.98&quot;
-    }
-  }
-]
-</ins></pre></div><p><ins class="diff-chg">
-Duplicate
-context
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a><ins class="diff-chg">
-are
-overridden
-using
-a
-most-recently-defined-wins
-mechanism.
-</ins></p>  <div class="example"><div class="example-title"><span>Example 28</span>: Scoped contexts within node objects</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-  {
-<del class="diff-old">    &quot;name&quot;: &quot;http://example.com/person#name&quot;,
-</del>
-<ins class="diff-chg">    &quot;name&quot;: &quot;http://example.com/person#name,
-</ins>
-    &quot;details&quot;: &quot;http://example.com/person#details&quot;
-<del class="diff-old">  },
-</del>
-<ins class="diff-chg">  }&quot;</span>,
-</ins>
-  &quot;<span class="diff">name</span>&quot;: &quot;Markus Lanthaler&quot;,
-  ...
-  &quot;details&quot;:
-  {
-<del class="diff-old">    &quot;@context&quot;: {
-</del>
-    <span class="diff">&quot;@context&quot;:
-<ins class="diff-chg">    {
-</ins>
-      &quot;name&quot;: &quot;http://example.com/organization#name&quot;
-<del class="diff-old">    },
-</del>
-<ins class="diff-chg">    }</span>,
-</ins>
-    &quot;<span class="diff">name</span>&quot;: &quot;Graz University of Technology&quot;
-  }
-}
-</pre>
-</div>
-<p>
-In
-the
-example
-above,
-the
-<code>
-name
-</code>
-<del class="diff-old">prefix
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a>
-is
-overridden
-in
-the
-more
-deeply
-nested
-<code>
-details
-</code>
-structure.
-Note
-that
-this
-is
-rarely
-a
-good
-authoring
-practice
-and
-is
-typically
-used
-when
-<ins class="diff-new">working
-with
-legacy
-applications
-that
-depend
-on
-a
-specific
-structure
-of
-</ins>
-the
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-<del class="diff-old">has
-legacy
-applications
-using
-</del>
-</a>.
-<ins class="diff-chg">If
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-is
-redefined
-within
-a
-context,
-all
-previous
-rules
-associated
-with
-</ins>
-the
-<del class="diff-old">structure
-</del>
-<ins class="diff-chg">previous
-definition
-are
-removed.
-If
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-is
-redefined
-to
-</ins><code><ins class="diff-chg">
-null
-</ins></code>,<ins class="diff-chg">
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-is
-effectively
-removed
-from
-the
-list
-</ins>
-of
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-new">terms
-</ins></a><ins class="diff-new">
-defined
-in
-</ins>
-the
-<del class="diff-old">object.
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context
-</ins></a>.
-</p>
-<p>
-<del class="diff-old">External
-JSON-LD
-context
-documents
-</del>
-<ins class="diff-chg">Multiple
-contexts
-</ins>
-may
-<del class="diff-old">contain
-extra
-information
-located
-outside
-</del>
-<ins class="diff-chg">be
-combined
-using
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a>,<ins class="diff-chg">
-which
-is
-processed
-in
-order.
-The
-set
-</ins>
-of
-<del class="diff-old">the
-@context
-key,
-such
-</del>
-<ins class="diff-chg">contexts
-defined
-within
-a
-specific
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-are
-referred
-to
-</ins>
-as
-<del class="diff-old">documentation
-about
-</del>
-<dfn title="local-context" id="dfn-local-context">
-<ins class="diff-chg">local
-contexts
-</ins></dfn>.<ins class="diff-chg">
-The
-</ins><dfn title="active-context" id="dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></dfn><ins class="diff-chg">
-refers
-to
-</ins>
-the
-<del class="diff-old">prefixes
-</del>
-<ins class="diff-chg">accumulation
-of
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-contexts
-</ins>
-</a>
-<del class="diff-old">declared
-</del>
-<ins class="diff-chg">that
-are
-</ins>
-in
-<ins class="diff-new">scope
-at
-a
-specific
-point
-within
-</ins>
-the
-document.
-<del class="diff-old">When
-importing
-</del>
-<ins class="diff-chg">Setting
-</ins>
-a
-<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
-<ins class="diff-new">local
-context
-</ins></a><ins class="diff-new">
-to
-</ins>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">null
-</ins>
-</code>
-<del class="diff-old">value
-from
-</del>
-<ins class="diff-chg">effectively
-resets
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-to
-an
-empty
-context.
-The
-following
-example
-specifies
-</ins>
-an
-external
-<del class="diff-old">JSON-LD
-</del>
-context
-<del class="diff-old">document,
-any
-extra
-information
-contained
-outside
-</del>
-<ins class="diff-chg">and
-then
-layers
-an
-embedded
-context
-on
-top
-</ins>
-of
-the
-<ins class="diff-new">external
-context:
-</ins></p>  <div class="example"><div class="example-title"><span>Example 29</span>: Combining external and local contexts</div><pre class="example">{  <span class="diff">&quot;@context&quot;: [<ins class="diff-new">
-    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
-    {
-      &quot;pic&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;
-    }
-  ],</span>
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-</ins>  <span class="diff">&quot;pic&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;</span><ins class="diff-new">
-}
-</ins></pre></div><div class="note"><div class="note-title"><span><ins class="diff-new">
-Note
-</ins></span></div><p class=""><ins class="diff-new">
-When
-possible,
-the
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
-context
-</ins></a><ins class="diff-new">
-definition
-should
-be
-put
-at
-the
-top
-of
-a
-JSON-LD
-document.
-This
-makes
-the
-document
-easier
-to
-read
-and
-might
-make
-streaming
-parsers
-more
-efficient.
-Documents
-that
-do
-not
-have
-the
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
-context
-</ins></a><ins class="diff-new">
-at
-the
-top
-are
-still
-conformant
-JSON-LD.
-</ins></p></div><div class="note"><div class="note-title"><span><ins class="diff-new">
-Note
-</ins></span></div><p class=""><ins class="diff-new">
-To
-avoid
-forward-compatibility
-issues,
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-terms
-</ins></a><ins class="diff-new">
-starting
-with
-an
-</ins>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">@
-</ins>
-</code>
-<del class="diff-old">value
-must
-</del>
-<ins class="diff-chg">character
-are
-to
-</ins>
-be
-<del class="diff-old">discarded.
-It
-is
-also
-recommended
-</del>
-<ins class="diff-chg">avoided
-as
-they
-might
-be
-used
-as
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a><ins class="diff-chg">
-in
-future
-versions
-of
-JSON-LD.
-Terms
-starting
-with
-an
-</ins><code><ins class="diff-chg">
-@
-</ins></code><ins class="diff-chg">
-character
-</ins>
-that
-<del class="diff-old">a
-human-readable
-document
-is
-served
-</del>
-<ins class="diff-chg">are
-not
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-JSON-LD
-1.0
-keywords
-</ins></a><ins class="diff-chg">
-are
-treated
-</ins>
-as
-<del class="diff-old">well
-</del>
-<ins class="diff-chg">any
-other
-term,
-i.e.,
-they
-are
-ignored
-unless
-mapped
-</ins>
-to
-<del class="diff-old">explain
-</del>
-<ins class="diff-chg">an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.<ins class="diff-chg">
-Furthermore,
-</ins>
-the
-<del class="diff-old">correct
-usage
-</del>
-<ins class="diff-chg">use
-</ins>
-of
-<del class="diff-old">the
-JSON-LD
-context
-document.
-</del>
-<ins class="diff-chg">empty
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a><ins class="diff-chg">
-(
-</ins><code><ins class="diff-chg">
-&quot;&quot;
-</ins></code><ins class="diff-chg">
-)
-is
-not
-allowed
-as
-not
-all
-programming
-languages
-are
-able
-to
-handle
-empty
-JSON
-keys.
-</ins>
-</p>
-</div>
-</section>
-<section class="normative" id="interpreting-json-as-json-ld">
-<h3>
-<span class="secno">
-<del class="diff-old">4.4
-</del>
-<ins class="diff-chg">6.8
-</ins>
-</span>
-<del class="diff-old">Referencing
-Contexts
-from
-</del>
-<ins class="diff-chg">Interpreting
-</ins>
-JSON
-<del class="diff-old">Documents
-</del>
-<ins class="diff-chg">as
-JSON-LD
-</ins>
-</h3>
-<p>
-Ordinary
-JSON
-documents
-can
-be
-<del class="diff-old">transformed
-into
-</del>
-<ins class="diff-chg">interpreted
-as
-</ins>
-JSON-LD
-<del class="diff-old">documents
-</del>
-by
-referencing
-<del class="diff-old">to
-an
-external
-</del>
-<ins class="diff-chg">a
-</ins>
-JSON-LD
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-<ins class="diff-new">document
-</ins>
-in
-an
-HTTP
-Link
-Header.
-Doing
-<del class="diff-old">this
-</del>
-<ins class="diff-chg">so
-</ins>
-allows
-JSON
-to
-be
-unambiguously
-machine-readable
-without
-requiring
-developers
-to
-drastically
-change
-their
-<del class="diff-old">workflow
-</del>
-<ins class="diff-chg">documents
-</ins>
-and
-provides
-an
-upgrade
-path
-for
-existing
-infrastructure
-without
-breaking
-existing
-clients
-that
-rely
-on
-the
-<code>
-application/json
-</code>
-media
-type.
-</p>
-<p>
-In
-order
-to
-use
-an
-external
-context
-with
-an
-ordinary
-JSON
-document,
-an
-author
-<del class="diff-old">must
-</del>
-<em class="rfc2119" title="MUST">
-<ins class="diff-chg">MUST
-</ins>
-</em>
-specify
-an
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-to
-a
-valid
-<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
-JSON-LD
-document
-</a>
-in
-an
-HTTP
-Link
-Header
-[
-<cite>
-<a class="bibref" href="#bib-RFC5988">
-RFC5988
-</a>
-</cite>
-]
-using
-the
-<code>
-<del class="diff-old">describedby
-</del>
-<ins class="diff-chg">http://www.w3.org/ns/json-ld#context
-</ins>
-</code>
-link
-relation.
-The
-referenced
-document
-<del class="diff-old">must
-</del>
-<em class="rfc2119" title="MUST">
-<ins class="diff-chg">MUST
-</ins>
-</em>
-have
-a
-top-level
-<del class="diff-old">subject
-definition
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins>
-</a>.
-The
-<code>
-@context
-</code>
-subtree
-within
-that
-object
-is
-added
-to
-the
-top-level
-<del class="diff-old">subject
-definition
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins>
-</a>
-of
-the
-referencing
-document.
-If
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-is
-at
-the
-top-level
-of
-the
-referencing
-document
-and
-its
-items
-are
-<del class="diff-old">subject
-definitions
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-objects
-</ins>
-</a>,
-the
-<code>
-@context
-</code>
-subtree
-is
-added
-to
-all
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-items.
-All
-extra
-information
-located
-outside
-of
-the
-<code>
-@context
-</code>
-subtree
-in
-the
-referenced
-document
-<del class="diff-old">must
-</del>
-<em class="rfc2119" title="MUST">
-<ins class="diff-chg">MUST
-</ins>
-</em>
-be
-discarded.
-<ins class="diff-new">Effectively
-this
-means
-that
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a><ins class="diff-new">
-is
-initialized
-with
-the
-referenced
-external
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
-context
-</ins></a>.
-</p>
-<p>
-The
-following
-example
-demonstrates
-the
-use
-of
-an
-external
-context
-with
-an
-ordinary
-JSON
-document:
-</p>
-<del class="diff-old">GET /ordinary-json-document.json HTTP/1.1
-</del>
-  <div class="example"><div class="example-title"><span>Example 30</span>: Referencing a JSON-LD context from a JSON document via an HTTP Link Header</div><pre class="example">GET /ordinary-json-document.json HTTP/1.1
-Host: example.com
-Accept: application/ld+json,application/json,*/*;q=0.1
-====================================
-HTTP/1.0 200 OK
-...
-Content-Type: <span class="diff">application/json</span>
-<span class="diff">Link: &lt;http://json-ld.org/contexts/person.jsonld&gt;; rel=&quot;http://www.w3.org/ns/json-ld#context&quot;; type=&quot;application/ld+json&quot;</span>
-{
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
-<del class="diff-old">  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
-</del>
-<ins class="diff-chg">  &quot;image&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
-</ins>
-}
-</pre>
-</div>
-<del class="diff-old">Note
-</del>
-<p>
-<ins class="diff-chg">Please
-note
-that
-</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
-JSON-LD
-documents
-</a>
-served
-with
-the
-<code>
-application/ld+json
-</code>
-media
-type
-<del class="diff-old">must
-</del>
-<em class="rfc2119" title="MUST">
-<ins class="diff-chg">MUST
-</ins>
-</em>
-have
-all
-context
-information,
-including
-references
-to
-external
-contexts,
-within
-the
-body
-of
-the
-document.
-<ins class="diff-new">Contexts
-linked
-via
-a
-</ins><code><ins class="diff-new">
-http://www.w3.org/ns/json-ld#context
-</ins></code><ins class="diff-new">
-HTTP
-Link
-Header
-</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-ignored
-for
-such
-documents.
-</ins>
-</p>
-</section>
-<section class="informative" id="string-internationalization">
-<h3>
-<span class="secno">
-<del class="diff-old">4.5
-</del>
-<ins class="diff-chg">6.9
-</ins>
-</span>
-<del class="diff-old">Expanded
-Term
-Definition
-</del>
-<ins class="diff-chg">String
-Internationalization
-</ins>
-</h3>
-<p>
-<del class="diff-old">Within
-a
-context
-definition,
-term
-s
-may
-</del>
-<em>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins>
-</em>
-<del class="diff-old">be
-defined
-using
-an
-expanded
-notation
-to
-allow
-for
-additional
-information
-associated
-with
-the
-term
-to
-be
-specified
-(see
-also
-Type
-Coercion
-and
-Sets
-and
-Lists
-).
-</del>
-</p>
-<p>
-<del class="diff-old">Instead
-of
-using
-</del>
-<ins class="diff-chg">At
-times,
-it
-is
-important
-to
-annotate
-</ins>
-a
-<a class="tref internalDFN" title="string" href="#dfn-string">
-string
-<del class="diff-old">representation
-</del>
-</a>
-<ins class="diff-chg">with
-its
-language.
-In
-JSON-LD
-this
-is
-possible
-in
-a
-variety
-</ins>
-of
-<del class="diff-old">an
-IRI
-,
-the
-IRI
-may
-be
-specified
-using
-</del>
-<ins class="diff-chg">ways.
-First,
-it
-is
-possible
-to
-define
-</ins>
-a
-<del class="diff-old">JSON
-object
-having
-an
-</del>
-<ins class="diff-chg">default
-language
-for
-a
-JSON-LD
-document
-by
-setting
-the
-</ins>
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<del class="diff-old">key.
-</del>
-<ins class="diff-chg">key
-in
-the
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>:</p>  <div class="example"><div class="example-title"><span>Example 31</span>: Setting the default language of a JSON-LD document</div><pre class="example">{  <span class="diff">&quot;@context&quot;:<ins class="diff-chg">
-  {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-  }</span>,
-  &quot;name&quot;: <span class="diff">&quot;花澄&quot;</span>,
-  &quot;occupation&quot;: <span class="diff">&quot;科学者&quot;</span>
-}
-</ins></pre></div><p>
-The
-<del class="diff-old">value
-of
-</del>
-<ins class="diff-chg">example
-above
-would
-associate
-</ins>
-the
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">ja
-</ins>
-</code>
-<del class="diff-old">key
-must
-</del>
-<ins class="diff-chg">language
-code
-with
-the
-two
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-strings
-</ins></a><em><ins class="diff-chg">
-花澄
-</ins>
-</em>
-<del class="diff-old">be
-either
-a
-term
-,
-a
-compact
-IRI
-</del>
-<ins class="diff-chg">and
-</ins><em><ins class="diff-chg">
-科学者
-</ins></em>.<ins class="diff-chg">
-Languages
-codes
-are
-defined
-in
-[
-</ins><cite>
-<del class="diff-old">,
-or
-an
-absolute
-IRI
-</del>
-<a class="bibref" href="#bib-BCP47">
-<ins class="diff-chg">BCP47
-</ins></a>
-</cite>
-<ins class="diff-new">].
-The
-default
-language
-applies
-to
-all
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-string
-</ins></a><ins class="diff-new">
-values
-that
-are
-not
-</ins><a href="#type-coercion"><ins class="diff-new">
-type
-coerced
-</ins>
-</a>.
-<del class="diff-old">Such
-an
-object
-is
-called
-</del>
-</p>
-<p>
-<ins class="diff-chg">To
-clear
-the
-default
-language
-for
-</ins>
-a
-<del class="diff-old">subject
-reference
-.
-</del>
-<ins class="diff-chg">subtree,
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-can
-be
-set
-to
-</ins><code><ins class="diff-chg">
-null
-</ins></code><ins class="diff-chg">
-in
-a
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-as
-follows:
-</ins>
-</p>
-<del class="diff-old">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: ,
-    &quot;name&quot;: ,
-    &quot;homepage&quot;: ,
-    &quot;depiction&quot;:
-</del>
-  <div class="example"><div class="example-title"><span>Example 32</span>: Clearing default language</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;: {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-</ins>
-  },
-<del class="diff-old">  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
-</del>
-<ins class="diff-chg">  &quot;name&quot;: &quot;花澄&quot;,
-  &quot;details&quot;: {
-</ins><span class="diff">    &quot;@context&quot;: {<ins class="diff-chg">
-      &quot;@language&quot;: null
-    }</span>,
-    &quot;occupation&quot;: &quot;Ninja&quot;
-  }
-</ins>
-}
-</pre>
-</div>
-<p>
-<del class="diff-old">This
-allows
-additional
-information
-to
-be
-associated
-with
-the
-term.
-This
-may
-be
-used
-for
-Type
-Coercion
-,
-Sets
-and
-Lists
-),
-or
-</del>
-<ins class="diff-chg">Second,
-it
-is
-possible
-</ins>
-to
-associate
-<ins class="diff-new">a
-</ins>
-language
-<del class="diff-old">information
-</del>
-with
-a
-<ins class="diff-new">specific
-</ins><a class="tref internalDFN" title="term" href="#dfn-term">
-term
-<del class="diff-old">as
-shown
-in
-the
-following
-example:
-</del>
-</a>
-<ins class="diff-chg">using
-an
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins></a>:
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 33</span>: Expanded term definition with language</div><pre class="example">{
-  &quot;@context&quot;: {
-    ...
-<del class="diff-old">    &quot;ex&quot;: &quot;http://example.com/&quot;,
-</del>
-<ins class="diff-chg">    &quot;ex&quot;: &quot;http://example.com/vocab/&quot;,
-</ins>
-    &quot;@language&quot;: &quot;ja&quot;,
-    &quot;name&quot;: { &quot;@id&quot;: &quot;ex:name&quot;, <span class="diff">&quot;@language&quot;: null</span> },
-    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot; },
-    &quot;occupation_en&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;en&quot;</span> },
-    &quot;occupation_cs&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;cs&quot;</span> }
-  },
-  <span class="diff">&quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
-  &quot;occupation&quot;: &quot;忍者&quot;,
-  &quot;occupation_en&quot;: &quot;Ninja&quot;,
-  &quot;occupation_cs&quot;: &quot;Nindža&quot;,</span>
-  ...
-}
-</pre>
-</div>
-<p>
-The
-example
-above
-would
-associate
-<em>
-忍者
-</em>
-with
-the
-specified
-default
-language
-code
-<code>
-ja
-</code>,
-<em>
-Ninja
-</em>
-with
-the
-language
-code
-<code>
-en
-</code>,
-and
-<em>
-Nindža
-</em>
-with
-the
-language
-code
-<code>
-cs
-</code>.
-The
-value
-of
-<code>
-name
-</code>,
-<em>
-Yagyū
-Muneyoshi
-</em>
-wouldn't
-be
-associated
-with
-any
-language
-code
-since
-<code>
-@language
-</code>
-was
-reset
-to
-<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>
-in
-the
-<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">
-expanded
-term
-<del class="diff-old">definition.
-Expanded
-terms
-may
-also
-be
-defined
-using
-compact
-IRIs
-or
-absolute
-IRIs
-as
-keys.
-If
-the
-</del>
-definition
-<del class="diff-old">does
-not
-include
-an
-@id
-key,
-the
-expanded
-IRI
-is
-determined
-by
-performing
-expansion
-of
-the
-key
-within
-the
-current
-active
-context.
-This
-mechanism
-is
-mainly
-used
-to
-associate
-type
-or
-language
-information
-with
-a
-compact
-IRI
-or
-an
-absolute
-IRI
-</del>
-</a>.
-</p>
-<div class="note">
-<div class="note-title">
-<span>
-Note
-</span>
-</div>
-<p class="">
-<del class="diff-old">While
-it
-is
-possible
-to
-define
-a
-compact
-IRI
-,
-or
-an
-absolute
-IRI
-to
-expand
-to
-some
-other
-unrelated
-IRI
-(for
-example,
-foaf:name
-expanding
-</del>
-<ins class="diff-chg">Language
-associations
-are
-only
-applied
-</ins>
-to
-<del class="diff-old">http://example.org/unrelated#species
-),
-such
-usage
-is
-strongly
-discouraged.
-4.6
-Type
-Coercion
-JSON-LD
-supports
-the
-coercion
-of
-</del>
-<ins class="diff-chg">plain
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-strings
-</ins></a>.<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
-Typed
-</ins>
-values
-<del class="diff-old">to
-particular
-data
-types.
-Type
-coercion
-allows
-someone
-deploying
-JSON-LD
-to
-coerce
-the
-incoming
-</del>
-</a>
-or
-<del class="diff-old">outgoing
-</del>
-values
-<ins class="diff-new">that
-are
-subject
-</ins>
-to
-<del class="diff-old">the
-proper
-data
-type
-based
-on
-a
-mapping
-of
-data
-type
-IRI
-s
-to
-term
-s.
-Using
-type
-coercion,
-value
-representation
-is
-preserved
-without
-requiring
-the
-data
-</del>
-<a href="#type-coercion">
-type
-<del class="diff-old">to
-be
-specified
-with
-each
-piece
-of
-data.
-Type
-</del>
-coercion
-<del class="diff-old">is
-specified
-within
-an
-expanded
-term
-definition
-using
-the
-@type
-key.
-The
-value
-of
-this
-key
-represents
-a
-type
-IRI
-and
-must
-take
-the
-form
-of
-a
-term
-,
-compact
-IRI
-,
-absolute
-IRI
-,
-or
-the
-keyword
-</del>
-</a>
-<del class="diff-old">@id
-.
-Specifying
-@id
-indicates
-that
-within
-the
-body
-of
-a
-JSON-LD
-document,
-a
-string
-value
-of
-a
-term
-coerced
-to
-@id
-is
-to
-be
-interpreted
-as
-an
-IRI
-.
-</del>
-<ins class="diff-chg">are
-not
-language
-tagged.
-</ins>
-</p>
-<del class="diff-old">Terms
-or
-compact
-IRIs
-used
-</del>
-</div>
-<p>
-<ins class="diff-chg">Just
-</ins>
-as
-<ins class="diff-new">in
-the
-example
-above,
-systems
-often
-need
-to
-express
-</ins>
-the
-value
-of
-a
-<del class="diff-old">@type
-key
-may
-be
-defined
-within
-the
-same
-context.
-This
-means
-</del>
-<ins class="diff-chg">property
-in
-multiple
-languages.
-Typically,
-such
-systems
-also
-try
-to
-ensure
-</ins>
-that
-<del class="diff-old">one
-may
-specify
-</del>
-<ins class="diff-chg">developers
-have
-</ins>
-a
-<del class="diff-old">term
-like
-xsd
-and
-then
-use
-xsd:integer
-within
-the
-same
-context
-definition
--
-the
-JSON-LD
-processor
-will
-be
-able
-</del>
-<ins class="diff-chg">programmatically
-easy
-way
-</ins>
-to
-<del class="diff-old">determine
-</del>
-<ins class="diff-chg">navigate
-</ins>
-the
-<del class="diff-old">proper
-expansion
-</del>
-<ins class="diff-chg">data
-structures
-</ins>
-for
-<del class="diff-old">xsd:integer
-.
-The
-example
-below
-demonstrates
-how
-a
-JSON-LD
-author
-can
-coerce
-values
-to
-typed
-value
-</del>
-<ins class="diff-chg">the
-language-specific
-data.
-In
-this
-case,
-</ins><a class="tref internalDFN" title="language-map" href="#dfn-language-map"><ins class="diff-chg">
-language
-maps
-</ins>
-</a>
-<del class="diff-old">s,
-IRIs
-and
-lists.
-</del>
-<ins class="diff-chg">may
-be
-utilized.
-</ins>
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 34</span>: Language map expressing a property in three languages</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-<del class="diff-old">    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;age&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    },
-    &quot;homepage&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;,
-      &quot;@container&quot;: &quot;@list&quot;
-    }
-</del>
-<ins class="diff-chg">    ...
-    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@container&quot;: &quot;@language&quot;</span> }
-</ins>
-  },
-<del class="diff-old">  &quot;name&quot;: &quot;John Smith&quot;,
-  &quot;age&quot;: ,
-  &quot;homepage&quot;:
-  [
-    &quot;http://personal.example.org/&quot;,
-    &quot;http://work.example.com/jsmith/&quot;
-  ]
-</del>
-<ins class="diff-chg">  &quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
-  &quot;occupation&quot;:
-</ins>  <span class="diff">{<ins class="diff-chg">
-    &quot;ja&quot;: &quot;忍者&quot;,
-    &quot;en&quot;: &quot;Ninja&quot;,
-    &quot;cs&quot;: &quot;Nindža&quot;
-  }</span>
-  ...
-</ins>
-}
-</pre>
-</div>
-<p>
-The
-example
-above
-<del class="diff-old">would
-generate
-</del>
-<ins class="diff-chg">expresses
-exactly
-</ins>
-the
-<del class="diff-old">following
-Turtle:
-@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
-[ foaf:name &quot;John Smith&quot;;
-  foaf:age  &quot;41&quot;^^xsd:integer;
-  foaf:homepage ( &lt;http://personal.example.org/&gt; &lt;http://work.example.com/jsmith/&gt; )
-]
-.
-Terms
-may
-also
-be
-defined
-using
-absolute
-IRIs
-or
-compact
-IRIs
-.
-This
-allows
-coercion
-rules
-to
-be
-applied
-to
-keys
-which
-are
-not
-represented
-</del>
-<ins class="diff-chg">same
-information
-</ins>
-as
-<del class="diff-old">a
-simple
-term
-.
-For
-example:
-{
-  &quot;@context&quot;:
-  {
-    ,
-    &quot;&quot;:
-    {
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    },
-    &quot;&quot;:
-    {
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;foaf:name&quot;: &quot;John Smith&quot;,
-  &quot;foaf:age&quot;: ,
-  &quot;foaf:homepage&quot;:
-  [
-    &quot;http://personal.example.org/&quot;,
-    &quot;http://work.example.com/jsmith/&quot;
-  ]
-}
-In
-this
-case
-</del>
-the
-<del class="diff-old">@id
-definition
-is
-optional,
-</del>
-<ins class="diff-chg">previous
-example
-</ins>
-but
-<del class="diff-old">if
-it
-does
-exist,
-the
-compact
-IRI
-or
-IRI
-is
-treated
-as
-a
-term
-(not
-</del>
-<ins class="diff-chg">consolidates
-all
-values
-in
-</ins>
-a
-<del class="diff-old">prefix:suffix
-construct)
-so
-that
-</del>
-<ins class="diff-chg">single
-property.
-To
-access
-</ins>
-the
-<del class="diff-old">actual
-definition
-of
-</del>
-<ins class="diff-chg">value
-in
-</ins>
-a
-<del class="diff-old">prefix
-becomes
-unnecessary.
-Note
-Keys
-</del>
-<ins class="diff-chg">specific
-language
-</ins>
-in
-<del class="diff-old">the
-context
-are
-treated
-as
-terms
-</del>
-<ins class="diff-chg">a
-programming
-language
-supporting
-dot-notation
-accessors
-</ins>
-for
-<del class="diff-old">the
-purpose
-of
-expansion
-and
-value
-coercion.
-At
-times,
-this
-</del>
-<ins class="diff-chg">object
-properties,
-a
-developer
-</ins>
-may
-<del class="diff-old">result
-in
-multiple
-representations
-for
-</del>
-<ins class="diff-chg">use
-</ins>
-the
-<del class="diff-old">same
-expanded
-IRI
-.
-For
-example,
-one
-could
-specify
-that
-</del>
-<code>
-<del class="diff-old">dog
-and
-cat
-</del>
-<ins class="diff-chg">property.language
-</ins>
-</code>
-<del class="diff-old">both
-expanded
-</del>
-<ins class="diff-chg">pattern.
-For
-example,
-</ins>
-to
-<ins class="diff-new">access
-the
-occupation
-in
-English,
-a
-developer
-would
-use
-the
-following
-code
-snippet:
-</ins>
-<code>
-<del class="diff-old">http://example.com/vocab#animal
-</del>
-<ins class="diff-chg">obj.occupation.en
-</ins>
-</code>.
-<del class="diff-old">Doing
-this
-could
-be
-useful
-for
-establishing
-different
-type
-coercion
-or
-</del>
-</p>
-<p>
-<ins class="diff-chg">Third,
-it
-is
-possible
-to
-override
-the
-default
-</ins>
-language
-<del class="diff-old">specification
-rules.
-It
-also
-allows
-</del>
-<ins class="diff-chg">by
-using
-</ins>
-a
-<del class="diff-old">compact
-IRI
-(or
-even
-an
-absolute
-IRI
-</del>
-<a class="tref internalDFN" title="value-object" href="#dfn-value-object">
-<ins class="diff-chg">value
-object
-</ins></a>:</p>  <div class="example"><div class="example-title"><span>Example 35</span>: Overriding default language using an expanded value</div><pre class="example">{<ins class="diff-chg">
-  &quot;@context&quot;: {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-  },
-  &quot;name&quot;: &quot;花澄&quot;,
-  &quot;occupation&quot;: <span class="diff">{
-    &quot;@value&quot;: &quot;Scientist&quot;,
-    &quot;@language&quot;: &quot;en&quot;
-  }</span>
-}
-</ins></pre>
-<del class="diff-old">)
-</del>
-</div>
-<p>
-<ins class="diff-chg">This
-makes
-it
-possible
-</ins>
-to
-<del class="diff-old">be
-defined
-as
-something
-else
-entirely.
-For
-example,
-one
-could
-</del>
-specify
-<del class="diff-old">that
-</del>
-<ins class="diff-chg">a
-plain
-string
-by
-omitting
-</ins>
-the
-<del class="diff-old">term
-</del>
-<code>
-<del class="diff-old">http://example.org/zoo
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<del class="diff-old">should
-expand
-</del>
-<ins class="diff-chg">tag
-or
-setting
-it
-</ins>
-to
-<code>
-<del class="diff-old">http://example.org/river
-,
-but
-this
-usage
-is
-discouraged
-because
-</del>
-<ins class="diff-chg">null
-</ins></code><ins class="diff-chg">
-when
-expressing
-</ins>
-it
-<del class="diff-old">would
-lead
-to
-a
-great
-deal
-of
-confusion
-among
-developers
-attempting
-to
-understand
-the
-JSON-LD
-document.
-Type
-coercion
-is
-performed
-</del>
-using
-<del class="diff-old">the
-unexpanded
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object">
-value
-<del class="diff-old">of
-the
-key,
-which
-must
-have
-an
-exact
-match
-for
-an
-entry
-in
-the
-active
-context
-.
-</del>
-<ins class="diff-chg">object
-</ins></a>:
-</p>
-  <div class="example"><div class="example-title"><span>Example 36</span>: Removing language information using an expanded value</div><pre class="example">{
-<ins class="diff-new">  &quot;@context&quot;: {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-  },
-  &quot;name&quot;: <span class="diff">{
-    &quot;@value&quot;: &quot;Frank&quot;
-  }</span>,
-  &quot;occupation&quot;: {
-    &quot;@value&quot;: &quot;Ninja&quot;,
-    &quot;@language&quot;: &quot;en&quot;
-  },
-  &quot;speciality&quot;: &quot;手裏剣&quot;
-}
-</ins></pre>
-</div>
-</section>
-<section class="informative" id="iri-expansion-within-a-context">
-<h3>
-<span class="secno">
-<del class="diff-old">4.7
-</del>
-<ins class="diff-chg">6.10
-</ins>
-</span>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-Expansion
-<del class="diff-old">Within
-</del>
-<ins class="diff-chg">within
-</ins>
-a
-Context
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-In
-general,
-normal
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-expansion
-rules
-apply
-anywhere
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-is
-expected
-(see
-<a class="sectionRef sec-ref" href="#iris">
-<ins class="diff-chg">section
-5.2
-</ins>
-IRIs
-</a>
-).
-Within
-a
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-definition,
-this
-can
-mean
-that
-terms
-defined
-within
-the
-context
-may
-also
-be
-used
-within
-that
-context
-as
-long
-as
-there
-are
-no
-circular
-dependencies.
-For
-example,
-it
-is
-common
-to
-use
-the
-<code>
-xsd
-</code>
-namespace
-when
-defining
-<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
-typed
-value
-</a>
-s:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 37</span>: IRI expansion within a context</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    <span class="diff">&quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;</span>,
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;age&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
-      &quot;@type&quot;: <span class="diff">&quot;xsd:integer&quot;</span>
-    },
-    &quot;homepage&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  ...
-}
-</pre>
-</div>
-<p>
-In
-this
-example,
-the
-<code>
-xsd
-</code>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-is
-defined
-and
-used
-as
-a
-<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
-prefix
-</a>
-for
-the
-<code>
-@type
-</code>
-coercion
-of
-the
-<code>
-age
-</code>
-property.
-</p>
-<p>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">Term
-</del>
-<ins class="diff-chg">Terms
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-may
-also
-be
-used
-when
-defining
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-of
-another
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 38</span>: Using a term to define the IRI of another term within a context</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    &quot;name&quot;: <span class="diff">&quot;foaf:name&quot;</span>,
-    &quot;age&quot;:
-    {
-      &quot;@id&quot;: <span class="diff">&quot;foaf:age&quot;</span>,
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    },
-    &quot;homepage&quot;:
-    {
-      &quot;@id&quot;: <span class="diff">&quot;foaf:homepage&quot;</span>,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  ...
-}
-</pre>
-</div>
-<p>
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-Compact
-IRIs
-</a>
-and
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-IRIs
-</a>
-may
-be
-used
-on
-the
-left-hand
-side
-of
-a
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-definition.
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 39</span>: Using a compact IRI as a term</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    &quot;name&quot;: &quot;foaf:name&quot;,
-    &quot;<span class="diff">foaf:age</span>&quot;:
-    {
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    },
-    &quot;<span class="diff">foaf:homepage</span>&quot;:
-    <span class="diff">{
-      &quot;@type&quot;: &quot;@id&quot;
-    }</span>
-  },
-  ...
-}
-</pre>
-</div>
-<p>
-In
-this
-example,
-the
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-compact
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-form
-is
-used
-in
-two
-different
-ways.
-In
-the
-first
-approach,
-<code>
-foaf:age
-</code>
-declares
-both
-the
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-for
-the
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-(using
-short-form)
-as
-well
-as
-the
-<code>
-@type
-</code>
-associated
-with
-the
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>.
-In
-the
-second
-approach,
-only
-the
-<code>
-@type
-</code>
-associated
-with
-the
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-</a>
-is
-specified.
-The
-<del class="diff-old">JSON-LD
-processor
-will
-derive
-the
-</del>
-full
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-for
-<code>
-foaf:homepage
-</code>
-<ins class="diff-new">is
-determined
-</ins>
-by
-looking
-up
-the
-<code>
-foaf
-</code>
-<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
-prefix
-</a>
-in
-the
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>.
-</p>
-<p>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-Absolute
-IRIs
-</a>
-may
-also
-be
-used
-in
-the
-key
-position
-in
-a
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 40</span>: Associating context definitions with absolute IRIs</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    &quot;name&quot;: &quot;foaf:name&quot;,
-    &quot;foaf:age&quot;:
-    {
-      &quot;@id&quot;: &quot;foaf:age&quot;,
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    },
-    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
-    {
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  ...
-}
-</pre>
-</div>
-<p>
-In
-order
-for
-the
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-to
-match
-above,
-the
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">must
-also
-</del>
-<ins class="diff-chg">needs
-to
-</ins>
-be
-used
-in
-the
-<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
-JSON-LD
-<del class="diff-old">document.
-</del>
-<ins class="diff-chg">document
-</ins></a>.
-Also
-note
-that
-<code>
-foaf:homepage
-</code>
-will
-not
-use
-the
-<code>
-{
-&quot;@type&quot;:
-&quot;@id&quot;
-}
-</code>
-declaration
-because
-<code>
-foaf:homepage
-</code>
-is
-not
-the
-same
-as
-<code>
-http://xmlns.com/foaf/0.1/homepage
-</code>.
-That
-is,
-<del class="diff-old">a
-JSON-LD
-processor
-will
-use
-direct
-string
-comparison
-when
-looking
-up
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<del class="diff-old">term
-</del>
-<ins class="diff-chg">terms
-</ins>
-</a>
-<del class="diff-old">s
-</del>
-<ins class="diff-chg">are
-looked
-up
-</ins>
-in
-a
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-<ins class="diff-new">using
-direct
-string
-comparison
-</ins>
-before
-<del class="diff-old">it
-applies
-</del>
-the
-<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
-prefix
-</a>
-lookup
-<del class="diff-old">mechanism.
-</del>
-<ins class="diff-chg">mechanism
-is
-applied.
-</ins></p><div class="note"><div class="note-title"><span><ins class="diff-chg">
-Note
-</ins></span></div><p class=""><ins class="diff-chg">
-While
-it
-is
-possible
-to
-define
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-or
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-to
-expand
-to
-some
-other
-unrelated
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-(for
-example,
-</ins><code><ins class="diff-chg">
-foaf:name
-</ins></code><ins class="diff-chg">
-expanding
-to
-</ins><code><ins class="diff-chg">
-http://example.org/unrelated#species
-</ins></code><ins class="diff-chg">
-),
-such
-usage
-is
-strongly
-discouraged.
-</ins>
-</p>
-</div>
-<p>
-The
-only
-exception
-for
-using
-terms
-in
-the
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-is
-that
-<del class="diff-old">they
-must
-not
-be
-used
-in
-a
-</del>
-circular
-<del class="diff-old">manner.
-</del>
-<ins class="diff-chg">definitions
-are
-not
-allowed.
-</ins>
-That
-is,
-a
-definition
-of
-<em>
-<del class="diff-old">term-1
-must
-not
-</del>
-<ins class="diff-chg">term1
-</ins>
-</em>
-<ins class="diff-new">cannot
-</ins>
-depend
-on
-the
-definition
-of
-<em>
-<del class="diff-old">term-2
-</del>
-<ins class="diff-chg">term2
-</ins>
-</em>
-if
-<em>
-<del class="diff-old">term-2
-</del>
-<ins class="diff-chg">term2
-</ins>
-</em>
-also
-depends
-on
-<em>
-<del class="diff-old">term-1
-</del>
-<ins class="diff-chg">term1
-</ins>
-</em>.
-For
-example,
-the
-following
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-definition
-is
-illegal:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 41</span>: Illegal circular definition of terms within a context</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    <span class="diff">&quot;term1&quot;: &quot;term2:foo&quot;,
-    &quot;term2&quot;: &quot;term1:bar&quot;</span>
-  },
-  ...
-}
-</pre>
-</div>
-</section>
-<section class="informative" id="sets-and-lists">
-<h3>
-<span class="secno">
-<del class="diff-old">4.8
-</del>
-<ins class="diff-chg">6.11
-</ins>
-</span>
-Sets
-and
-Lists
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-A
-JSON-LD
-author
-can
-express
-multiple
-values
-in
-a
-compact
-way
-by
-using
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<del class="diff-old">array
-s.
-</del>
-<ins class="diff-chg">arrays
-</ins></a>.
-Since
-graphs
-do
-not
-describe
-ordering
-for
-links
-between
-nodes,
-arrays
-in
-JSON-LD
-do
-not
-provide
-an
-ordering
-of
-the
-<del class="diff-old">listed
-objects
-</del>
-<ins class="diff-chg">contained
-elements
-</ins>
-by
-default.
-This
-is
-exactly
-the
-opposite
-from
-regular
-JSON
-arrays,
-which
-are
-ordered
-by
-default.
-For
-example,
-consider
-the
-following
-simple
-document:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 42</span>: Multiple values with no inherent order</div><pre class="example">{
-...
-  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
-<del class="diff-old">  &quot;nick&quot;: ,
-</del>
-<ins class="diff-chg">  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;JB&quot; ]</span>,
-</ins>
-...
-}
-</pre>
-</div>
-<p>
-The
-<del class="diff-old">markup
-</del>
-<ins class="diff-chg">example
-</ins>
-shown
-above
-would
-result
-in
-<del class="diff-old">three
-triples
-</del>
-<ins class="diff-chg">the
-following
-data
-</ins>
-being
-generated,
-each
-relating
-the
-<del class="diff-old">subject
-</del>
-<ins class="diff-chg">node
-</ins>
-to
-an
-individual
-<del class="diff-old">object
-,
-</del>
-<ins class="diff-chg">value,
-</ins>
-with
-no
-inherent
-order:
-</p>
-<del class="diff-old">&lt;http://example.org/people#joebob&gt;
-   &lt;http://xmlns.com/foaf/0.1/nick&gt;
-      &quot;joe&quot; .
-&lt;http://example.org/people#joebob&gt;
-   &lt;http://xmlns.com/foaf/0.1/nick&gt;
-      &quot;bob&quot; .
-&lt;http://example.org/people#joebob&gt;
-   &lt;http://xmlns.com/foaf/0.1/nick&gt;
-&quot;jaybee&quot;
-.
-</del>
-<table class="example">
-<thead>
-<tr>
-<th>
-<ins class="diff-chg">Subject
-</ins></th><th><ins class="diff-chg">
-Property
-</ins></th><th><ins class="diff-chg">
-Value
-</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
-http://example.org/people#joebob
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/nick
-</ins></td><td><ins class="diff-chg">
-joe
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.org/people#joebob
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/nick
-</ins></td><td><ins class="diff-chg">
-bob
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.org/people#joebob
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/nick
-</ins></td><td><ins class="diff-chg">
-JB
-</ins></td></tr></tbody></table>
-<p>
-Multiple
-values
-may
-also
-be
-expressed
-using
-the
-expanded
-form:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 43</span>: Using an expanded form to set multiple values</div><pre class="example">{
-  &quot;@id&quot;: &quot;http://example.org/articles/8&quot;,
-  &quot;dc:title&quot;: <span class="diff">
-  [
-    {
-      &quot;@value&quot;: &quot;Das Kapital&quot;,
-      &quot;@language&quot;: &quot;de&quot;
-    },
-    {
-      &quot;@value&quot;: &quot;Capital&quot;,
-      &quot;@language&quot;: &quot;en&quot;
-    }
-  ]</span>
-}
-</pre>
-</div>
-<p>
-The
-<del class="diff-old">markup
-</del>
-<ins class="diff-chg">example
-</ins>
-shown
-above
-would
-generate
-the
-following
-<del class="diff-old">triples,
-</del>
-<ins class="diff-chg">data,
-</ins>
-again
-with
-no
-inherent
-order:
-</p>
-<del class="diff-old">&lt;http://example.org/articles/8&gt;
-   &lt;http://purl.org/dc/terms/title&gt;
-      &quot;Das Kapital&quot;@de .
-&lt;http://example.org/articles/8&gt;
-   &lt;http://purl.org/dc/terms/title&gt;
-&quot;Capital&quot;@en
-.
-</del>
-<table class="example">
-<thead>
-<tr>
-<th>
-<ins class="diff-chg">Subject
-</ins></th><th><ins class="diff-chg">
-Property
-</ins></th><th><ins class="diff-chg">
-Value
-</ins></th><th><ins class="diff-chg">
-Language
-</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
-http://example.org/articles/8
-</ins></td><td><ins class="diff-chg">
-http://purl.org/dc/terms/title
-</ins></td><td><ins class="diff-chg">
-Das
-Kapital
-</ins></td><td><ins class="diff-chg">
-de
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.org/articles/8
-</ins></td><td><ins class="diff-chg">
-http://purl.org/dc/terms/title
-</ins></td><td><ins class="diff-chg">
-Capital
-</ins></td><td><ins class="diff-chg">
-en
-</ins></td></tr></tbody></table>
-<p>
-As
-the
-notion
-of
-ordered
-collections
-is
-rather
-important
-in
-data
-modeling,
-it
-is
-useful
-to
-have
-specific
-language
-support.
-In
-JSON-LD,
-a
-list
-may
-be
-represented
-using
-the
-<code>
-@list
-</code>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keyword
-</a>
-as
-follows:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 44</span>: An ordered collection of values in JSON-LD</div><pre class="example">{
-...
-  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
-  &quot;foaf:nick&quot;:
-  <span class="diff">{
-    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
-  }</span>,
-...
-}
-</pre>
-</div>
-<p>
-This
-describes
-the
-use
-of
-this
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-as
-being
-ordered,
-and
-order
-is
-maintained
-when
-processing
-a
-document.
-If
-every
-use
-of
-a
-given
-multi-valued
-property
-is
-a
-list,
-this
-may
-be
-abbreviated
-by
-setting
-<code>
-@container
-</code>
-to
-<code>
-@list
-</code>
-in
-the
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>:
-</p>
-<del class="diff-old">{
-</del>
-<div class="example"><div class="example-title"><span>Example 45</span>: Specifying that a collection is ordered in the context</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-  {
-    ...
-    &quot;nick&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/nick&quot;,
-      &quot;@container&quot;: &quot;@list&quot;
-    }
-  }</span>,
-...
-  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
-  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]</span>,
-...
-}
-</pre>
-</div>
-<div class="note">
-<div class="note-title">
-<span>
-Note
-</span>
-</div>
-<p class="">
-List
-of
-lists
-are
-not
-allowed
-in
-this
-version
-of
-JSON-LD.
-<del class="diff-old">If
-a
-list
-of
-lists
-is
-detected,
-a
-JSON-LD
-processor
-will
-throw
-an
-exception.
-</del>
-This
-decision
-was
-made
-due
-to
-the
-extreme
-amount
-of
-added
-complexity
-when
-processing
-lists
-of
-lists.
-</p>
-</div>
-<p>
-<del class="diff-old">Similarly
-to
-</del>
-<ins class="diff-chg">While
-</ins>
-<code>
-@list
-<del class="diff-old">,
-there
-exists
-</del>
-</code>
-<ins class="diff-chg">is
-used
-to
-describe
-</ins><em><ins class="diff-chg">
-ordered
-lists
-</ins></em>,
-the
-<del class="diff-old">keyword
-</del>
-<code>
-@set
-</code>
-<ins class="diff-new">keyword
-is
-used
-</ins>
-to
-describe
-<em>
-unordered
-<del class="diff-old">sets.
-While
-its
-</del>
-<ins class="diff-chg">sets
-</ins></em>.<ins class="diff-chg">
-The
-</ins>
-use
-<ins class="diff-new">of
-</ins><code><ins class="diff-new">
-@set
-</ins></code>
-in
-the
-body
-of
-a
-JSON-LD
-document
-<del class="diff-old">represents
-just
-syntactic
-sugar
-that
-must
-be
-</del>
-<ins class="diff-chg">is
-</ins>
-optimized
-away
-when
-processing
-the
-document,
-<ins class="diff-new">as
-</ins>
-it
-is
-<del class="diff-old">very
-</del>
-<ins class="diff-chg">just
-syntactic
-sugar.
-However,
-</ins><code><ins class="diff-chg">
-@set
-</ins></code><ins class="diff-chg">
-is
-</ins>
-helpful
-when
-used
-within
-the
-context
-of
-a
-document.
-Values
-of
-terms
-associated
-with
-a
-<code>
-@set
-</code>
-or
-<code>
-@list
-</code>
-container
-are
-always
-represented
-in
-the
-form
-of
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-<del class="diff-old">-
-</del>
-</a>,
-even
-if
-there
-is
-just
-a
-single
-value
-that
-would
-otherwise
-be
-optimized
-to
-a
-non-array
-form
-in
-<del class="diff-old">a
-compacted
-document
-.
-</del>
-<ins class="diff-chg">compact
-form
-(see
-</ins><a class="sectionRef sec-ref" href="#compact-document-form"><ins class="diff-chg">
-section
-6.18
-Compact
-Document
-Form
-</ins></a><ins class="diff-chg">
-).
-</ins>
-This
-makes
-post-processing
-of
-<del class="diff-old">the
-data
-</del>
-<ins class="diff-chg">JSON-LD
-documents
-</ins>
-easier
-as
-the
-data
-is
-always
-in
-array
-form,
-even
-if
-the
-array
-only
-contains
-a
-single
-value.
-</p>
-</section>
-<section class="informative" id="reverse-properties">
-<h3>
-<del class="diff-old">Note
-</del>
-<span class="secno">
-<ins class="diff-chg">6.12
-</ins>
-</span>
-<ins class="diff-new">Reverse
-Properties
-</ins></h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
-Feature
-at
-Risk
-2
-</ins></span>:<ins class="diff-new">
-Reverse
-properties
-</ins>
-</div>
-<del class="diff-old">The
-use
-of
-@container
-in
-</del>
-<div class="atrisk">
-<p class="atrisk-head">
-<ins class="diff-chg">Note:
-This
-feature
-is
-</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-chg">
-&quot;at
-risk&quot;
-</ins></a><ins class="diff-chg">
-and
-may
-be
-removed
-from
-this
-specification
-based
-on
-feedback.
-Please
-send
-feedback
-to
-</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-chg">
-public-rdf-comments@w3.org
-</ins></a>.<ins class="diff-chg">
-For
-</ins>
-the
-<del class="diff-old">body
-of
-a
-</del>
-<ins class="diff-chg">current
-status
-see
-</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
-features
-&quot;at
-risk&quot;
-in
-</ins>
-JSON-LD
-<del class="diff-old">document,
-i.e.,
-outside
-@context
-must
-</del>
-<ins class="diff-chg">1.0
-</ins></a></p><p><ins class="diff-chg">
-Reverse
-properties
-might
-</ins>
-be
-<del class="diff-old">ignored
-by
-</del>
-<ins class="diff-chg">removed
-from
-</ins>
-JSON-LD
-<del class="diff-old">processors.
-</del>
-<ins class="diff-chg">1.0
-if
-implementation
-experience
-reveals
-problems
-with
-supporting
-this
-feature.
-</ins>
-</p>
-</div>
-<del class="diff-old">4.9
-Embedding
-</del>
-</div>
-<p>
-<del class="diff-old">Object
-embedding
-is
-a
-</del>
-JSON-LD
-<del class="diff-old">feature
-</del>
-<ins class="diff-chg">serializes
-directed
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-graphs
-</ins></a>.<ins class="diff-chg">
-That
-means
-</ins>
-that
-<del class="diff-old">allows
-an
-author
-to
-use
-subject
-definitions
-as
-</del>
-<ins class="diff-chg">every
-</ins>
-<a class="tref internalDFN" title="property" href="#dfn-property">
-property
-</a>
-<del class="diff-old">values.
-This
-</del>
-<ins class="diff-chg">points
-from
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a><ins class="diff-chg">
-to
-another
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
-value
-</ins></a>.<ins class="diff-chg">
-However,
-in
-some
-cases,
-it
-</ins>
-is
-<ins class="diff-new">desirable
-to
-serialize
-in
-the
-reverse
-direction.
-Consider
-for
-example
-the
-case
-where
-</ins>
-a
-<del class="diff-old">commonly
-</del>
-<ins class="diff-chg">person
-and
-its
-children
-should
-be
-described
-in
-a
-document.
-If
-the
-</ins>
-used
-<del class="diff-old">mechanism
-for
-creating
-</del>
-<ins class="diff-chg">vocabulary
-does
-not
-provide
-</ins>
-a
-<del class="diff-old">parent-child
-relationship
-between
-two
-subject
-</del>
-<em>
-<ins class="diff-chg">children
-</ins></em><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
-property
-</ins>
-</a>
-<del class="diff-old">s.
-The
-example
-shows
-two
-subjects
-related
-by
-</del>
-<ins class="diff-chg">but
-just
-a
-</ins><em><ins class="diff-chg">
-parent
-</ins></em><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
-property
-</ins></a>,<ins class="diff-chg">
-every
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a><ins class="diff-chg">
-representing
-</ins>
-a
-<ins class="diff-new">child
-would
-have
-to
-be
-expressed
-with
-a
-</ins><a class="tref internalDFN" title="property" href="#dfn-property">
-property
-<del class="diff-old">from
-</del>
-</a>
-<ins class="diff-chg">pointing
-to
-</ins>
-the
-<del class="diff-old">first
-subject:
-</del>
-<ins class="diff-chg">parent
-as
-in
-the
-following
-example.
-</ins>
-</p>
-<del class="diff-old">  {
-...
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;&quot;:
-</del>
-  <div class="example"><div class="example-title"><span>Example 46</span>: A document with children linking to their parent</div><pre class="example">[
-  {
-<del class="diff-old">    &quot;&quot;,
-    &quot;&quot;,
-</del>
-    <span class="diff">&quot;@id&quot;: &quot;#homer&quot;</span>,
-<ins class="diff-chg">    &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;
-  },
-  {
-    &quot;@id&quot;: &quot;#bart&quot;,
-    &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;,
-</ins>    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span><ins class="diff-chg">
-  },
-  {
-    &quot;@id&quot;: &quot;#lisa&quot;,
-    &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;,
-</ins>    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span>
-  }
-<del class="diff-old">...
-}
-</del>
-<ins class="diff-chg">]
-</ins>
-</pre>
-</div>
-<p>
-<del class="diff-old">A
-subject
-definition
-,
-like
-the
-one
-used
-above,
-may
-be
-used
-in
-any
-value
-position
-in
-the
-body
-of
-a
-JSON-LD
-document.
-</del>
-<ins class="diff-chg">Expressing
-such
-data
-is
-much
-simpler
-by
-using
-JSON-LD's
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>:
-</p>
-  <div class="example"><div class="example-title"><span>Example 47</span>: A person and its children using a reverse property</div><pre class="example">{
-<ins class="diff-chg">  &quot;@id&quot;: &quot;#homer&quot;,
-  &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;,
-</ins>  <span class="diff">&quot;@reverse&quot;</span>: {    <span class="diff">&quot;http://example.com/vocab#parent&quot;</span>: [<ins class="diff-chg">
-      {
-        &quot;@id&quot;: &quot;#bart&quot;,
-        &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;
-      },
-      {
-        &quot;@id&quot;: &quot;#lisa&quot;,
-        &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;
-      }
-    ]
-  }
-}
-</ins></pre>
-<del class="diff-old">4.10
-Named
-Graphs
-</del>
-</div>
-<p>
-The
-<code>
-<del class="diff-old">@graph
-</del>
-<ins class="diff-chg">@reverse
-</ins>
-</code>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keyword
-</a>
-<del class="diff-old">is
-used
-to
-express
-a
-set
-of
-JSON-LD
-subject
-definition
-s
-that
-may
-not
-be
-directly
-related
-to
-one
-another
-through
-a
-property.
-The
-mechanism
-may
-</del>
-<ins class="diff-chg">can
-</ins>
-also
-be
-used
-<del class="diff-old">where
-embedding
-</del>
-<ins class="diff-chg">in
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definitions
-</ins>
-</a>
-<del class="diff-old">is
-not
-desirable
-</del>
-to
-<ins class="diff-new">create
-reverse
-properties
-as
-shown
-in
-</ins>
-the
-<del class="diff-old">application.
-For
-</del>
-<ins class="diff-chg">following
-</ins>
-example:
-</p>
-<del class="diff-old">  {
-  &quot;@context&quot;: ...,
-  &quot;&quot;:
-  [
-</del>
-  <div class="example"><div class="example-title"><span>Example 48</span>: Using @reverse to define reverse properties</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://example.com/vocab#name&quot;,
-</ins>    <span class="diff">&quot;children&quot;: { &quot;@reverse&quot;: &quot;http://example.com/vocab#parent&quot; }</span><ins class="diff-chg">
-  },
-  &quot;@id&quot;: &quot;#homer&quot;,
-  &quot;name&quot;: &quot;Homer&quot;,
-</ins>  <span class="diff">&quot;children&quot;</span>: [
-    {
-<del class="diff-old">      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;,
-      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
-</del>
-<ins class="diff-chg">      &quot;@id&quot;: &quot;#bart&quot;,
-      &quot;name&quot;: &quot;Bart&quot;
-</ins>
-    },
-    {
-<del class="diff-old">      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
-      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
-</del>
-<ins class="diff-chg">      &quot;@id&quot;: &quot;#lisa&quot;,
-      &quot;name&quot;: &quot;Lisa&quot;
-</ins>
-    }
-  ]
-}
-</pre>
-</div>
-</section>
-<section class="informative" id="named-graphs">
-<h3>
-<span class="secno">
-<ins class="diff-new">6.13
-</ins></span><ins class="diff-new">
-Named
-Graphs
-</ins></h3>
-<p>
-<del class="diff-old">In
-this
-case,
-embedding
-doesn't
-work
-as
-each
-subject
-definition
-references
-the
-other.
-Using
-the
-@graph
-keyword
-allows
-multiple
-resources
-to
-be
-defined
-within
-an
-array
-,
-and
-allows
-the
-use
-of
-a
-shared
-context
-.
-When
-used
-in
-a
-JSON
-object
-that
-is
-not
-otherwise
-a
-subject
-definition
-,
-this
-describes
-resources
-in
-the
-</del>
-<em>
-<del class="diff-old">default
-graph
-.
-</del>
-This
-<ins class="diff-new">section
-</ins>
-is
-<del class="diff-old">equivalent
-to
-using
-multiple
-subject
-definitions
-in
-array
-and
-defining
-the
-@context
-within
-each
-subject
-definition
-:
-
-  {
-
-    &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-    &quot;@type&quot;: &quot;foaf:Person&quot;,
-    &quot;name&quot;: &quot;Manu Sporny&quot;,
-    &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
-  },
-  {
-
-    &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-    &quot;@type&quot;: &quot;foaf:Person&quot;,
-    &quot;name&quot;: &quot;Gregg Kellogg&quot;,
-    &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
-  }
-]
-</del>
-<ins class="diff-chg">non-normative.
-</ins></em>
-</p>
-<p>
-<del class="diff-old">JSON-LD
-allows
-you
-</del>
-<ins class="diff-chg">At
-times,
-it
-is
-necessary
-</ins>
-to
-<del class="diff-old">name
-things
-on
-the
-Web
-</del>
-<ins class="diff-chg">make
-statements
-about
-a
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-JSON-LD
-graph
-</ins></a><ins class="diff-chg">
-itself,
-rather
-than
-just
-a
-single
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a>.<ins class="diff-chg">
-This
-can
-be
-done
-</ins>
-by
-<del class="diff-old">assigning
-an
-</del>
-<ins class="diff-chg">grouping
-a
-set
-of
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-nodes
-</ins></a><ins class="diff-chg">
-using
-the
-</ins>
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">@graph
-</ins>
-</code>
-<del class="diff-old">to
-them,
-which
-is
-typically
-an
-IRI
-</del>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-chg">keyword
-</ins>
-</a>.
-<del class="diff-old">This
-notion
-extends
-to
-the
-ability
-to
-identify
-graphs
-in
-the
-same
-manner.
-</del>
-A
-developer
-may
-<ins class="diff-new">also
-</ins>
-name
-data
-expressed
-using
-the
-<code>
-@graph
-</code>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keyword
-</a>
-by
-pairing
-it
-with
-an
-<code>
-@id
-</code>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keyword
-<del class="diff-old">.
-This
-enables
-the
-developer
-to
-make
-statements
-about
-a
-linked
-data
-graph
-</del>
-</a>
-<del class="diff-old">itself,
-rather
-than
-just
-a
-single
-subject
-.
-</del>
-<ins class="diff-chg">as
-shown
-in
-the
-following
-example:
-</ins>
-</p>
-<del class="diff-old">  {
-  &quot;@context&quot;: ...,
-</del>
-  <div class="example"><div class="example-title"><span>Example 49</span>: Identifying and making statements about a graph</div><pre class="example">{
-<ins class="diff-chg">  &quot;@context&quot;: {
-    &quot;generatedAt&quot;: {
-      &quot;@id&quot;: &quot;http://www.w3.org/ns/prov#generatedAtTime&quot;,
-      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#date&quot;
-    },
-    &quot;Person&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-</ins>
-  <span class="diff">&quot;@id&quot;: &quot;http://example.org/graphs/73&quot;,
-<del class="diff-old">  &quot;asOf&quot;: { &quot;@value&quot;: &quot;2012-04-09&quot;, &quot;@type&quot;: &quot;xsd:date&quot; },
-</del>
-<ins class="diff-chg">  &quot;generatedAt&quot;: &quot;2012-04-09&quot;,
-</ins>
-  &quot;@graph&quot;:</span>
-  [
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-<del class="diff-old">      &quot;@type&quot;: &quot;foaf:Person&quot;,
-</del>
-<ins class="diff-chg">      &quot;@type&quot;: &quot;Person&quot;,
-</ins>
-      &quot;name&quot;: &quot;Manu Sporny&quot;,
-      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-<del class="diff-old">      &quot;@type&quot;: &quot;foaf:Person&quot;,
-</del>
-<ins class="diff-chg">      &quot;@type&quot;: &quot;Person&quot;,
-</ins>
-      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
-      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
-    }
-  ]
-}
-</pre>
-</div>
-<p>
-The
-example
-above
-expresses
-a
-<a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">
-named
-<del class="diff-old">linked
-data
-</del>
-graph
-</a>
-that
-is
-identified
-by
-the
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<code>
-http://example.org/graphs/73
-</code>.
-That
-graph
-is
-composed
-of
-the
-statements
-about
-Manu
-and
-Gregg.
-<del class="diff-old">Meta-data
-</del>
-<ins class="diff-chg">Metadata
-</ins>
-about
-the
-graph
-itself
-is
-<del class="diff-old">also
-</del>
-expressed
-via
-the
-<code>
-<del class="diff-old">asOf
-</del>
-<ins class="diff-chg">generatedAt
-</ins>
-</code>
-property,
-which
-specifies
-when
-the
-<del class="diff-old">information
-</del>
-<ins class="diff-chg">graph
-</ins>
-was
-<del class="diff-old">retrieved
-from
-</del>
-<ins class="diff-chg">generated.
-An
-alternative
-view
-of
-</ins>
-the
-<del class="diff-old">Web.
-</del>
-<ins class="diff-chg">information
-above
-is
-represented
-in
-table
-form
-below:
-</ins>
-</p>
-<table class="example">
-<thead>
-<tr>
-<th>
-<ins class="diff-chg">Graph
-</ins></th><th><ins class="diff-chg">
-Subject
-</ins></th><th><ins class="diff-chg">
-Property
-</ins></th><th><ins class="diff-chg">
-Value
-</ins></th><th><ins class="diff-chg">
-Value
-Type
-</ins></th></tr>
-<del class="diff-old">Issue
-3
-</del>
-</thead>
-<tbody>
-<tr>
-<td>
-</td>
-<td>
-<ins class="diff-chg">http://example.org/graphs/73
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/ns/prov#generatedAtTime
-</ins></td><td><ins class="diff-chg">
-2012-04-09
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/2001/XMLSchema#date
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.org/graphs/73
-</ins></td><td><ins class="diff-chg">
-http://manu.sporny.org/i/public
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/2001/XMLSchema#type
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/Person
-</ins></td><td>
-</td>
-</tr>
-<tr>
-<td>
-<ins class="diff-chg">http://example.org/graphs/73
-</ins></td><td><ins class="diff-chg">
-http://manu.sporny.org/i/public
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/name
-</ins></td><td><ins class="diff-chg">
-Manu
-Sporny
-</ins></td><td>
-<del class="diff-old">These
-examples
-could
-all
-have
-TriG
-definitions
-</del>
-</td>
-</tr>
-<tr>
-<td>
-<ins class="diff-chg">http://example.org/graphs/73
-</ins></td><td><ins class="diff-chg">
-http://manu.sporny.org/i/public
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/knows
-</ins></td><td><ins class="diff-chg">
-http://greggkellogg.net/foaf#me
-</ins></td><td></td></tr><tr><td><ins class="diff-chg">
-http://example.org/graphs/73
-</ins></td><td><ins class="diff-chg">
-http://greggkellogg.net/foaf#me
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/2001/XMLSchema#type
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/Person
-</ins></td><td></td></tr><tr><td><ins class="diff-chg">
-http://example.org/graphs/73
-</ins></td><td><ins class="diff-chg">
-http://greggkellogg.net/foaf#me
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/name
-</ins></td><td><ins class="diff-chg">
-Gregg
-Kellogg
-</ins></td><td></td></tr><tr><td><ins class="diff-chg">
-http://example.org/graphs/73
-</ins></td><td><ins class="diff-chg">
-http://greggkellogg.net/foaf#me
-</ins></td><td><ins class="diff-chg">
-http://xmlns.com/foaf/0.1/knows
-</ins></td><td><ins class="diff-chg">
-http://manu.sporny.org/i/public
-</ins></td><td></td></tr></tbody></table><p><ins class="diff-chg">
-When
-a
-JSON-LD
-document's
-top-level
-structure
-is
-an
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-object
-</ins></a><ins class="diff-chg">
-that
-contains
-no
-other
-</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
-properties
-</ins></a><ins class="diff-chg">
-than
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-and
-optionally
-</ins><code><ins class="diff-chg">
-@context
-</ins></code><ins class="diff-chg">
-(properties
-that
-are
-not
-mapped
-to
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-are
-ignored),
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-is
-considered
-to
-express
-the
-otherwise
-implicit
-</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
-default
-graph
-</ins></a>.<ins class="diff-chg">
-This
-mechanism
-can
-be
-useful
-when
-a
-number
-</ins>
-of
-<del class="diff-old">their
-RDF
-results,
-but
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">nodes
-</ins></a><ins class="diff-chg">
-exist
-at
-the
-document's
-top
-level
-</ins>
-that
-<del class="diff-old">would
-involve
-adding
-RDF
-earlier
-</del>
-<ins class="diff-chg">share
-the
-same
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins></a>,<ins class="diff-chg">
-which
-is,
-e.g.,
-the
-case
-when
-a
-document
-is
-</ins><a href="#flattened-document-form"><ins class="diff-chg">
-flattened
-</ins></a>.<ins class="diff-chg">
-The
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-keyword
-collects
-such
-nodes
-</ins>
-in
-<ins class="diff-new">an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-and
-allows
-</ins>
-the
-<del class="diff-old">document.
-</del>
-<ins class="diff-chg">use
-of
-a
-shared
-context.
-</ins>
-</p>
-  <div class="example"><div class="example-title"><span>Example 50</span>: Using @graph to explicitly express the default graph</div><pre class="example">{
-<ins class="diff-new">  &quot;@context&quot;: ...,
-  &quot;<span class="diff">@graph</span>&quot;:
-  [
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;,
-      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
-      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
-    }
-  ]
-}
-</ins></pre>
-</div>
-<p>
-<ins class="diff-new">In
-this
-case,
-embedding
-doesn't
-work
-as
-each
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a><ins class="diff-new">
-references
-the
-other.
-This
-is
-equivalent
-to
-using
-multiple
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-objects
-</ins></a><ins class="diff-new">
-in
-array
-and
-defining
-the
-</ins><code><ins class="diff-new">
-@context
-</ins></code><ins class="diff-new">
-within
-each
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a>:</p>  <div class="example"><div class="example-title"><span>Example 51</span>: Context needs to be duplicated if @graph is not used</div><pre class="example">[<ins class="diff-new">
-  {
-</ins>    <span class="diff">&quot;@context&quot;: ...,</span><ins class="diff-new">
-    &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-    &quot;@type&quot;: &quot;foaf:Person&quot;,
-    &quot;name&quot;: &quot;Manu Sporny&quot;,
-    &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
-  },
-  {
-</ins>    <span class="diff">&quot;@context&quot;: ...,</span><ins class="diff-new">
-    &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-    &quot;@type&quot;: &quot;foaf:Person&quot;,
-    &quot;name&quot;: &quot;Gregg Kellogg&quot;,
-    &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
-  }
-]
-</ins></pre>
-</div>
-</section>
-<section class="informative" id="identifying-blank-nodes">
-<h3>
-<span class="secno">
-<del class="diff-old">4.11
-</del>
-<ins class="diff-chg">6.14
-</ins>
-</span>
-Identifying
-<del class="diff-old">Unlabeled
-</del>
-<ins class="diff-chg">Blank
-</ins>
-Nodes
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-At
-times,
-it
-becomes
-necessary
-to
-be
-able
-to
-express
-information
-without
-being
-able
-to
-<del class="diff-old">specify
-</del>
-<ins class="diff-chg">uniquely
-identify
-</ins>
-the
-<del class="diff-old">subject.
-Typically,
-this
-</del>
-<a class="tref internalDFN" title="node" href="#dfn-node">
-<ins class="diff-chg">node
-</ins></a><ins class="diff-chg">
-with
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.<ins class="diff-chg">
-This
-</ins>
-type
-of
-node
-is
-called
-<del class="diff-old">an
-unlabeled
-node
-or
-</del>
-a
-<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
-blank
-node
-<del class="diff-old">(see
-[
-RDF-CONCEPTS
-]
-Section
-3.4:
-Blank
-Nodes
-).
-In
-JSON-LD,
-unlabeled
-node
-identifiers
-are
-automatically
-created
-if
-a
-subject
-is
-</del>
-</a>.
-<ins class="diff-chg">JSON-LD
-does
-</ins>
-not
-<del class="diff-old">specified
-</del>
-<ins class="diff-chg">require
-all
-nodes
-to
-be
-identified
-</ins>
-using
-<del class="diff-old">the
-</del>
-<code>
-@id
-<del class="diff-old">keyword
-.
-</del>
-</code>.
-However,
-<del class="diff-old">authors
-</del>
-<ins class="diff-chg">some
-graph
-topologies
-</ins>
-may
-<del class="diff-old">provide
-</del>
-<ins class="diff-chg">require
-</ins>
-identifiers
-<del class="diff-old">for
-unlabeled
-nodes
-by
-</del>
-<ins class="diff-chg">to
-be
-serializable.
-Graphs
-containing
-loops,
-e.g.,
-cannot
-be
-serialized
-</ins>
-using
-<ins class="diff-new">embedding
-alone,
-</ins><code><ins class="diff-new">
-@id
-</ins></code><ins class="diff-new">
-must
-be
-used
-to
-connect
-</ins>
-the
-<del class="diff-old">special
-</del>
-<ins class="diff-chg">nodes.
-In
-these
-situations,
-one
-can
-use
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a>,<ins class="diff-chg">
-which
-look
-like
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-using
-an
-underscore
-(
-</ins>
-<code>
-_
-</code>
-<del class="diff-old">(underscore)
-prefix
-.
-</del>
-<ins class="diff-chg">)
-as
-scheme.
-</ins>
-This
-allows
-one
-to
-reference
-the
-node
-locally
-within
-the
-document,
-but
-makes
-it
-impossible
-to
-reference
-the
-node
-from
-an
-external
-document.
-The
-<del class="diff-old">unlabeled
-</del>
-<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
-<ins class="diff-chg">blank
-</ins>
-node
-identifier
-</a>
-is
-scoped
-to
-the
-document
-in
-which
-it
-is
-used.
-</p>
-<del class="diff-old">{
-...
-  &quot;@id&quot;: &quot;&quot;,
-...
-</del>
-  <div class="example"><div class="example-title"><span>Example 52</span>: Specifying a local blank node identifier</div><pre class="example">{
-<ins class="diff-chg">   ...
-   &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot;,
-   &quot;name&quot;: &quot;Secret Agent 1&quot;,
-   &quot;knows&quot;:
-     {
-       &quot;name&quot;: &quot;Secret Agent 2&quot;,
-       &quot;knows&quot;: { &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot; }
-     }
-</ins>
-}
-</pre>
-</div>
-<p>
-The
-example
-above
-<del class="diff-old">would
-set
-the
-subject
-</del>
-<ins class="diff-chg">contains
-information
-about
-</ins>
-to
-<del class="diff-old">_:foo
-,
-which
-</del>
-<ins class="diff-chg">secrete
-agents
-that
-cannot
-be
-identified
-with
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.<ins class="diff-chg">
-While
-expressing
-that
-</ins><em><ins class="diff-chg">
-agent
-1
-</ins></em><ins class="diff-chg">
-knows
-</ins><em><ins class="diff-chg">
-agent
-2
-</ins></em><ins class="diff-chg">
-is
-possible
-without
-using
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a>,<ins class="diff-chg">
-it
-is
-necessary
-assign
-</ins><em><ins class="diff-chg">
-agent
-1
-</ins></em><ins class="diff-chg">
-an
-identifier
-so
-that
-it
-</ins>
-can
-<del class="diff-old">then
-</del>
-be
-<del class="diff-old">used
-elsewhere
-in
-the
-JSON-LD
-document
-to
-refer
-back
-to
-the
-unlabeled
-</del>
-<ins class="diff-chg">referenced
-from
-</ins><em><ins class="diff-chg">
-agent
-2
-</ins></em>.</p><p><ins class="diff-chg">
-It
-is
-worth
-nothing
-that
-blank
-</ins>
-node
-<del class="diff-old">.
-</del>
-<ins class="diff-chg">identifiers
-may
-be
-relabeled
-during
-processing.
-</ins>
-If
-a
-developer
-finds
-that
-they
-refer
-to
-the
-<del class="diff-old">unlabeled
-</del>
-<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
-<ins class="diff-chg">blank
-</ins>
-node
-</a>
-more
-than
-once,
-they
-should
-consider
-naming
-the
-node
-using
-a
-<del class="diff-old">de-referenceable
-</del>
-<ins class="diff-chg">dereferenceable
-</ins>
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-so
-that
-it
-can
-<ins class="diff-new">also
-</ins>
-be
-referenced
-<del class="diff-old">also
-</del>
-from
-other
-documents.
-</p>
-</section>
-<section class="informative" id="aliasing-keywords">
-<h3>
-<span class="secno">
-<del class="diff-old">4.12
-</del>
-<ins class="diff-chg">6.15
-</ins>
-</span>
-Aliasing
-Keywords
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-Each
-of
-the
-JSON-LD
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keywords
-</a>,
-except
-for
-<code>
-@context
-</code>,
-may
-be
-aliased
-to
-application-specific
-keywords.
-This
-feature
-allows
-legacy
-JSON
-content
-to
-be
-utilized
-by
-JSON-LD
-by
-re-using
-JSON
-keys
-that
-already
-exist
-in
-legacy
-documents.
-This
-feature
-also
-allows
-developers
-to
-design
-domain-specific
-implementations
-using
-only
-the
-JSON-LD
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>.
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 53</span>: Aliasing keywords</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-     <span class="diff">&quot;url&quot;: &quot;@id&quot;</span>,
-     <span class="diff">&quot;a&quot;: &quot;@type&quot;</span>,
-<del class="diff-old">     &quot;name&quot;: &quot;http://schema.org/name&quot;
-</del>
-<ins class="diff-chg">     &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;
-</ins>
-  },
-  &quot;<span class="diff">url</span>&quot;: &quot;http://example.com/about#gregg&quot;,
-<del class="diff-old">  &quot;&quot;: &quot;http://schema.org/Person&quot;,
-</del>
-<ins class="diff-chg">  &quot;<span class="diff">a</span>&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
-</ins>
-  &quot;name&quot;: &quot;Gregg Kellogg&quot;
-}
-</pre>
-</div>
-<p>
-In
-the
-example
-above,
-the
-<code>
-@id
-</code>
-and
-<code>
-@type
-</code>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-keywords
-</a>
-have
-been
-given
-the
-aliases
-<strong>
-url
-</strong>
-and
-<strong>
-a
-</strong>,
-respectively.
-</p>
-<p>
-<ins class="diff-new">Since
-keywords
-cannot
-be
-redefined,
-they
-can
-also
-not
-be
-aliased
-to
-other
-keywords.
-</ins></p></section><section class="informative" id="data-indexing"><h3><span class="secno"><ins class="diff-new">
-6.16
-</ins></span><ins class="diff-new">
-Data
-Indexing
-</ins></h3><p><em><ins class="diff-new">
-This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-new">
-Databases
-are
-typically
-used
-to
-make
-access
-to
-data
-more
-efficient.
-Developers
-often
-extend
-this
-sort
-of
-functionality
-into
-their
-application
-data
-to
-deliver
-similar
-performance
-gains.
-Often
-this
-data
-does
-not
-have
-any
-meaning
-from
-a
-Linked
-Data
-standpoint,
-but
-is
-still
-useful
-for
-an
-application.
-</ins></p><p><ins class="diff-new">
-JSON-LD
-introduces
-the
-notion
-of
-</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-new">
-index
-maps
-</ins></a><ins class="diff-new">
-that
-can
-be
-used
-to
-structure
-data
-into
-a
-form
-that
-is
-more
-efficient
-to
-access.
-The
-data
-indexing
-feature
-allows
-an
-author
-to
-structure
-data
-using
-a
-simple
-key-value
-map
-where
-the
-keys
-do
-not
-map
-to
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
-IRIs
-</ins></a>.<ins class="diff-new">
-This
-enables
-direct
-access
-to
-data
-instead
-of
-having
-to
-scan
-an
-array
-in
-search
-of
-a
-specific
-item.
-In
-JSON-LD
-such
-data
-can
-be
-specified
-by
-associating
-the
-</ins><code><ins class="diff-new">
-@index
-</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
-keyword
-</ins></a><ins class="diff-new">
-with
-a
-</ins><code><ins class="diff-new">
-@container
-</ins></code><ins class="diff-new">
-declaration
-in
-the
-context:
-</ins></p>  <div class="example"><div class="example-title"><span>Example 54</span>: Indexing data in JSON-LD</div><pre class="example">{<ins class="diff-new">
-  &quot;@context&quot;:
-  {
-     &quot;schema&quot;: &quot;http://schema.org/&quot;,
-     &quot;name&quot;: &quot;schema:name&quot;,
-     &quot;body&quot;: &quot;schema:articleBody&quot;,
-     &quot;words&quot;: &quot;schema:wordCount&quot;,
-     &quot;post&quot;: {
-       &quot;@id&quot;: &quot;schema:blogPost&quot;,
-</ins>       <span class="diff">&quot;@container&quot;: &quot;@index&quot;</span><ins class="diff-new">
-     }
-  },
-  &quot;@id&quot;: &quot;http://example.com/&quot;,
-  &quot;@type&quot;: &quot;schema:Blog&quot;,
-  &quot;name&quot;: &quot;World Financial News&quot;,
-</ins>  <span class="diff">&quot;post&quot;: {<ins class="diff-new">
-     &quot;en&quot;: {
-       &quot;@id&quot;: &quot;http://example.com/posts/1/en&quot;,
-       &quot;body&quot;: &quot;World commodities were up today with heavy trading of crude oil...&quot;,
-       &quot;words&quot;: 1539
-     },
-     &quot;de&quot;: {
-       &quot;@id&quot;: &quot;http://example.com/posts/1/de&quot;,
-       &quot;body&quot;: &quot;Die Werte an Warenbörsen stiegen im Sog eines starken Handels von Rohöl...&quot;,
-       &quot;words&quot;: 1204
-     }</span>
-  }
-}
-</ins></pre>
-</div>
-<p>
-<ins class="diff-chg">In
-the
-example
-above,
-the
-</ins><strong><ins class="diff-chg">
-blogPost
-</ins></strong><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-has
-been
-marked
-as
-an
-</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
-index
-map
-</ins></a>.<ins class="diff-chg">
-The
-</ins><strong><ins class="diff-chg">
-en
-</ins></strong>,<strong><ins class="diff-chg">
-de
-</ins></strong>,<ins class="diff-chg">
-and
-</ins><strong><ins class="diff-chg">
-ja
-</ins></strong><ins class="diff-chg">
-keys
-will
-be
-ignored
-semantically,
-but
-preserved
-syntactically,
-by
-the
-JSON-LD
-Processor.
-This
-allows
-a
-developer
-to
-access
-the
-German
-version
-of
-the
-</ins><strong><ins class="diff-chg">
-blogPost
-</ins></strong><ins class="diff-chg">
-using
-the
-following
-code
-snippet:
-</ins><code><ins class="diff-chg">
-obj.blogPost.de
-</ins></code>.</p><p><ins class="diff-chg">
-The
-interpretation
-of
-the
-data
-above
-is
-expressed
-in
-the
-table
-below.
-Note
-how
-the
-index
-keys
-do
-not
-appear
-in
-the
-Linked
-Data
-below,
-but
-would
-continue
-to
-exist
-if
-the
-document
-were
-compacted
-or
-expanded
-(see
-</ins><a class="sectionRef sec-ref" href="#compact-document-form"><ins class="diff-chg">
-section
-6.18
-Compact
-Document
-Form
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="sectionRef sec-ref" href="#expanded-document-form"><ins class="diff-chg">
-section
-6.17
-Expanded
-Document
-Form
-</ins></a><ins class="diff-chg">
-)
-using
-a
-JSON-LD
-processor:
-</ins></p><table class="example"><thead><tr><th><ins class="diff-chg">
-Subject
-</ins></th><th><ins class="diff-chg">
-Property
-</ins></th><th><ins class="diff-chg">
-Value
-</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
-http://example.com/
-</ins></td><td><ins class="diff-chg">
-http://www.w3.org/1999/02/22-rdf-syntax-ns#type
-</ins></td><td><ins class="diff-chg">
-http://schema.org/Blog
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.com/
-</ins></td><td><ins class="diff-chg">
-http://schema.org/name
-</ins></td><td><ins class="diff-chg">
-World
-Financial
-News
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.com/
-</ins></td><td><ins class="diff-chg">
-http://schema.org/blogPost
-</ins></td><td><ins class="diff-chg">
-http://example.com/posts/1/en
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.com/
-</ins></td><td><ins class="diff-chg">
-http://schema.org/blogPost
-</ins></td><td><ins class="diff-chg">
-http://example.com/posts/1/de
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.com/posts/1/en
-</ins></td><td><ins class="diff-chg">
-http://schema.org/articleBody
-</ins></td><td><ins class="diff-chg">
-World
-commodities
-were
-up
-today
-with
-heavy
-trading
-of
-crude
-oil...
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.com/posts/1/en
-</ins></td><td><ins class="diff-chg">
-http://schema.org/wordCount
-</ins></td><td><ins class="diff-chg">
-1539
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.com/posts/1/de
-</ins></td><td><ins class="diff-chg">
-http://schema.org/articleBody
-</ins></td><td><ins class="diff-chg">
-Die
-Werte
-an
-Warenbörsen
-stiegen
-im
-Sog
-eines
-starken
-Handels
-von
-Rohöl...
-</ins></td></tr><tr><td><ins class="diff-chg">
-http://example.com/posts/1/de
-</ins></td><td><ins class="diff-chg">
-http://schema.org/wordCount
-</ins></td><td><ins class="diff-chg">
-1204
-</ins></td></tr></tbody></table></section><section class="informative" id="expanded-document-form">
-<h3>
-<span class="secno">
-<del class="diff-old">4.13
-</del>
-<ins class="diff-chg">6.17
-</ins>
-</span>
-Expanded
-Document
-Form
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-The
-JSON-LD
-<ins class="diff-new">Processing
-Algorithms
-and
-</ins>
-API
-<ins class="diff-new">specification
-</ins>
-[
-<cite>
-<a class="bibref" href="#bib-JSON-LD-API">
-JSON-LD-API
-</a>
-</cite>
-]
-defines
-<del class="diff-old">an
-</del>
-<ins class="diff-chg">a
-</ins>
-method
-for
-<em>
-expanding
-</em>
-a
-JSON-LD
-document.
-Expansion
-is
-the
-process
-of
-taking
-a
-JSON-LD
-document
-and
-applying
-a
-<code>
-@context
-</code>
-such
-that
-all
-IRIs,
-types,
-and
-values
-are
-expanded
-so
-that
-the
-<code>
-@context
-</code>
-is
-no
-longer
-necessary.
-</p>
-<p>
-For
-example,
-assume
-the
-following
-JSON-LD
-input
-document:
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 55</span>: Sample JSON-LD document</div><pre class="example">{
-   &quot;@context&quot;:
-   {
-      &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-      &quot;homepage&quot;: {
-        &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-<del class="diff-old">        &quot;@type&quot;, &quot;@id&quot;
-</del>
-<ins class="diff-chg">        &quot;@type&quot;: &quot;@id&quot;
-</ins>
-      }
-   },
-   &quot;name&quot;: &quot;Manu Sporny&quot;,
-   &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-}
-</pre>
-</div>
-<p>
-Running
-the
-JSON-LD
-Expansion
-algorithm
-against
-the
-JSON-LD
-input
-document
-provided
-above
-would
-result
-in
-the
-following
-output:
-</p>
-<del class="diff-old">[
-</del>
-  <div class="example"><div class="example-title"><span>Example 56</span>: Expanded form for the previous example</div><pre class="example">[
-  {
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Manu Sporny&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
-    ]
-  }
-]
-</pre>
-</div>
-<del class="diff-old">Expanded
-document
-form
-is
-useful
-when
-an
-application
-has
-to
-process
-input
-data
-in
-a
-deterministic
-form.
-It
-has
-been
-optimized
-to
-ensure
-that
-the
-code
-that
-developers
-have
-to
-write
-is
-minimized
-compared
-to
-the
-code
-that
-would
-have
-to
-be
-written
-to
-operate
-on
-compact
-document
-form
-.
-</del>
-</section>
-<section class="informative" id="compact-document-form">
-<h3>
-<span class="secno">
-<del class="diff-old">4.14
-</del>
-<ins class="diff-chg">6.18
-</ins>
-</span>
-Compact
-Document
-Form
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-The
-JSON-LD
-<ins class="diff-new">Processing
-Algorithms
-and
-</ins>
-API
-<ins class="diff-new">specification
-</ins>
-[
-<cite>
-<a class="bibref" href="#bib-JSON-LD-API">
-JSON-LD-API
-</a>
-</cite>
-]
-defines
-a
-method
-for
-<em>
-compacting
-</em>
-a
-JSON-LD
-document.
-Compaction
-is
-the
-process
-of
-<del class="diff-old">taking
-a
-JSON-LD
-document
-and
-</del>
-applying
-a
-<ins class="diff-new">developer-supplied
-</ins>
-context
-<del class="diff-old">such
-that
-the
-most
-</del>
-<ins class="diff-chg">to
-shorten
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-compact
-<del class="diff-old">form
-of
-the
-document
-is
-generated.
-JSON
-is
-typically
-</del>
-<ins class="diff-chg">IRIs
-</ins></a><ins class="diff-chg">
-and
-JSON-LD
-values
-</ins>
-expressed
-in
-<del class="diff-old">a
-very
-compact,
-key-value
-format.
-That
-is,
-full
-IRIs
-are
-rarely
-used
-</del>
-<ins class="diff-chg">expanded
-form
-to
-simple
-values
-such
-</ins>
-as
-<del class="diff-old">keys.
-At
-times,
-a
-JSON-LD
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">strings
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-numbers
-</ins></a>.<ins class="diff-chg">
-Often
-this
-makes
-it
-simpler
-to
-work
-with
-</ins>
-document
-<del class="diff-old">may
-be
-received
-that
-</del>
-<ins class="diff-chg">as
-the
-data
-</ins>
-is
-<del class="diff-old">not
-</del>
-<ins class="diff-chg">expressed
-</ins>
-in
-<del class="diff-old">its
-most
-compact
-form.
-JSON-LD,
-via
-the
-API,
-provides
-a
-way
-</del>
-<ins class="diff-chg">application-specific
-terms.
-Compacted
-documents
-are
-also
-typically
-easier
-</ins>
-to
-<del class="diff-old">compact
-a
-JSON-LD
-document.
-</del>
-<ins class="diff-chg">read
-for
-humans.
-</ins>
-</p>
-<p>
-For
-example,
-assume
-the
-following
-JSON-LD
-input
-document:
-</p>
-<del class="diff-old">[
-</del>
-  <div class="example"><div class="example-title"><span>Example 57</span>: Sample expanded JSON-LD document</div><pre class="example">[
-  {
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [ &quot;Manu Sporny&quot; ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      {
-       &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
-      }
-    ]
-  }
-]
-</pre>
-</div>
-<p>
-Additionally,
-assume
-the
-following
-developer-supplied
-JSON-LD
-context:
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 58</span>: Sample context</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  }
-}
-</pre>
-</div>
-<p>
-Running
-the
-JSON-LD
-Compaction
-algorithm
-given
-the
-context
-supplied
-above
-against
-the
-JSON-LD
-input
-document
-provided
-above
-would
-result
-in
-the
-following
-output:
-</p>
-<del class="diff-old">{
-</del>
-  <div class="example"><div class="example-title"><span>Example 59</span>: Compact form of the sample document once sample context has been applied</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-}
-</pre>
-</div>
-</section>
-<section class="informative" id="flattened-document-form">
-<h3>
-<span class="secno">
-<ins class="diff-new">6.19
-</ins></span><ins class="diff-new">
-Flattened
-Document
-Form
-</ins></h3><p><em><ins class="diff-new">
-This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-The
-<del class="diff-old">compaction
-algorithm
-enables
-</del>
-<ins class="diff-chg">JSON-LD
-Processing
-Algorithms
-and
-API
-specification
-[
-</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
-JSON-LD-API
-</ins></a></cite><ins class="diff-chg">
-]
-defines
-</ins>
-a
-<del class="diff-old">developer
-</del>
-<ins class="diff-chg">method
-for
-</ins><em><ins class="diff-chg">
-flattening
-</ins></em><ins class="diff-chg">
-a
-JSON-LD
-document.
-Flattening
-collects
-all
-properties
-of
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a><ins class="diff-chg">
-in
-a
-single
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-and
-labels
-all
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a><ins class="diff-chg">
-with
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a>.<ins class="diff-chg">
-This
-ensures
-a
-shape
-of
-the
-data
-and
-consequently
-may
-drastically
-simplify
-the
-code
-required
-</ins>
-to
-<del class="diff-old">map
-any
-document
-into
-an
-application-specific
-compacted
-form
-by
-first
-expanding
-</del>
-<ins class="diff-chg">process
-JSON-LD
-in
-certain
-applications.
-</ins></p><p><ins class="diff-chg">
-For
-example,
-assume
-</ins>
-the
-<ins class="diff-new">following
-JSON-LD
-input
-document:
-</ins></p>  <div class="example"><div class="example-title"><span>Example 60</span>: Sample JSON-LD document</div><pre class="example">{<ins class="diff-new">
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;knows&quot;: [
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;
-    },
-    {
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    }
-  ]
-}
-</ins></pre></div><p><ins class="diff-new">
-Running
-the
-JSON-LD
-Flattening
-algorithm
-against
-the
-JSON-LD
-input
-</ins>
-document
-<del class="diff-old">.
-While
-</del>
-<ins class="diff-chg">in
-</ins>
-the
-<del class="diff-old">context
-provided
-</del>
-<ins class="diff-chg">example
-</ins>
-above
-<del class="diff-old">mapped
-http://xmlns.com/foaf/0.1/name
-to
-name
-,
-it
-could
-have
-also
-mapped
-it
-to
-any
-arbitrary
-string
-provided
-by
-</del>
-<ins class="diff-chg">and
-using
-</ins>
-the
-<del class="diff-old">developer.
-This
-powerful
-mechanism,
-along
-with
-another
-</del>
-<ins class="diff-chg">same
-context
-would
-result
-in
-the
-following
-output:
-</ins></p>  <div class="example"><div class="example-title"><span>Example 61</span>: Flattened and compacted form for the previous example</div><pre class="example">{<ins class="diff-chg">
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@graph&quot;: [
-    {
-      &quot;@id&quot;: &quot;_:b0&quot;,
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-      &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-      &quot;knows&quot;: [
-        { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
-        { &quot;@id&quot;: &quot;_:b0&quot; }
-      ]
-    }
-  ]
-}
-</ins></pre></div></section><section class="informative" id="embedding-json-ld-in-html-documents"><h3><span class="secno"><ins class="diff-chg">
-6.20
-</ins></span><ins class="diff-chg">
-Embedding
-</ins>
-JSON-LD
-<del class="diff-old">API
-technique
-called
-</del>
-<ins class="diff-chg">in
-HTML
-Documents
-</ins></h3><p>
-<em>
-<del class="diff-old">framing
-,
-allows
-</del>
-<ins class="diff-chg">This
-section
-is
-non-normative.
-</ins></em></p><p><ins class="diff-chg">
-HTML
-script
-tags
-can
-be
-used
-to
-embed
-blocks
-of
-data
-in
-documents.
-This
-way,
-JSON-LD
-content
-can
-be
-easily
-embedded
-in
-HTML
-by
-placing
-it
-in
-a
-script
-element
-with
-</ins>
-the
-<del class="diff-old">developer
-</del>
-<code>
-<ins class="diff-chg">type
-</ins></code><ins class="diff-chg">
-attribute
-set
-</ins>
-to
-<del class="diff-old">re-shape
-</del>
-<code>
-<ins class="diff-chg">application/ld+json
-</ins></code>.</p>  <div class="example"><div class="example-title"><span>Example 62</span>: Embedding JSON-LD in HTML</div><pre class="example"><span class="diff">&lt;script type=&quot;application/ld+json&quot;&gt;</span><ins class="diff-chg">
-{
-  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,
-  &quot;@id&quot;: &quot;http://dbpedia.org/resource/John_Lennon&quot;,
-  &quot;name&quot;: &quot;John Lennon&quot;,
-  &quot;born&quot;: &quot;1940-10-09&quot;,
-  &quot;spouse&quot;: &quot;http://dbpedia.org/resource/Cynthia_Lennon&quot;
-}
-</ins><span class="diff"><ins class="diff-chg">
-&lt;/script&gt;
-</ins></span></pre></div><p><ins class="diff-chg">
-Depending
-on
-how
-</ins>
-the
-<del class="diff-old">incoming
-JSON
-</del>
-<ins class="diff-chg">HTML
-document
-is
-served,
-certain
-strings
-may
-need
-to
-be
-escaped.
-</ins></p><p><ins class="diff-chg">
-Defining
-how
-such
-</ins>
-data
-<del class="diff-old">into
-a
-format
-that
-</del>
-<ins class="diff-chg">may
-be
-used
-</ins>
-is
-<del class="diff-old">optimized
-for
-their
-application.
-</del>
-<ins class="diff-chg">beyond
-the
-scope
-of
-this
-specification.
-The
-embedded
-JSON-LD
-document
-might
-be
-extracted
-as
-is
-or,
-e.g.,
-be
-converted
-to
-RDF.
-</ins>
-</p>
-<p>
-<ins class="diff-chg">If
-JSON-LD
-content
-is
-extracted
-as
-RDF
-[
-</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
-RDF11-CONCEPTS
-</ins></a></cite><ins class="diff-chg">
-],
-it
-should
-be
-expanded
-into
-an
-</ins><a class="tref externalDFN" title="rdf-dataset" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset"><ins class="diff-chg">
-RDF
-dataset
-</ins></a><ins class="diff-chg">
-using
-the
-</ins><cite><a href="../json-ld-api/#convert-to-rdf-algorithm"><ins class="diff-chg">
-Convert
-to
-RDF
-Algorithm
-</ins></a></cite><ins class="diff-chg">
-[
-</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
-JSON-LD-API
-</ins></a></cite><ins class="diff-chg">
-].
-</ins></p></section></section><section class="appendix normative" id="data-model">
-<h2>
-<span class="secno">
-A.
-</span>
-<del class="diff-old">JSON-LD
-Authoring
-Guidelines
-</del>
-<ins class="diff-chg">Data
-Model
-</ins>
-</h2>
-<p>
-<del class="diff-old">Since
-</del>
-<ins class="diff-chg">JSON-LD
-is
-a
-serialization
-format
-for
-</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data"><ins class="diff-chg">
-Linked
-Data
-</ins></a><ins class="diff-chg">
-based
-on
-JSON.
-It
-is
-therefore
-important
-to
-distinguish
-between
-</ins>
-the
-<ins class="diff-new">syntax,
-which
-is
-defined
-by
-JSON
-in
-[
-</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-new">
-RFC4627
-</ins></a></cite><ins class="diff-new">
-],
-and
-</ins><dfn title="json-ld-data-model" id="dfn-json-ld-data-model"><ins class="diff-new">
-JSON-LD's
-data
-model
-</ins></dfn><ins class="diff-new">
-which
-is
-defined
-as
-follows:
-</ins></p><ul><li><ins class="diff-new">
-A
-</ins><dfn title="json-ld-document" id="dfn-json-ld-document">
-JSON-LD
-<del class="diff-old">syntax
-</del>
-<ins class="diff-chg">document
-</ins></dfn><ins class="diff-chg">
-serializes
-a
-collection
-of
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-JSON-LD
-graphs
-</ins></a><ins class="diff-chg">
-and
-comprises
-exactly
-one
-</ins><dfn title="default-graph" id="dfn-default-graph"><ins class="diff-chg">
-default
-graph
-</ins></dfn><ins class="diff-chg">
-and
-zero
-or
-more
-</ins><dfn title="named-graph" id="dfn-named-graph"><ins class="diff-chg">
-named
-graphs
-</ins></dfn>.</li><li><ins class="diff-chg">
-The
-</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
-default
-graph
-</ins></a><ins class="diff-chg">
-does
-not
-have
-a
-name
-and
-</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
-MAY
-</ins></em><ins class="diff-chg">
-be
-empty.
-</ins></li><li><ins class="diff-chg">
-Each
-</ins><a class="tref internalDFN" title="named-graph" href="#dfn-named-graph"><ins class="diff-chg">
-named
-graph
-</ins></a>
-is
-a
-<del class="diff-old">subset
-</del>
-<ins class="diff-chg">pair
-consisting
-</ins>
-of
-<ins class="diff-new">an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
-blank
-node
-identifier
-</ins></a><ins class="diff-new">
-(the
-</ins><dfn title="graph-name" id="dfn-graph-name"><ins class="diff-new">
-graph
-name
-</ins></dfn><ins class="diff-new">
-)
-and
-a
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-new">
-JSON-LD
-graph
-</ins></a>.<ins class="diff-new">
-Whenever
-practical,
-</ins>
-the
-<del class="diff-old">JSON
-syntax,
-</del>
-<a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
-<ins class="diff-chg">graph
-name
-</ins></a><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
-SHOULD
-</ins></em><ins class="diff-chg">
-be
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.</li><li><ins class="diff-chg">
-A
-</ins><dfn title="json-ld-graph" id="dfn-json-ld-graph"><ins class="diff-chg">
-JSON-LD
-graph
-</ins></dfn><ins class="diff-chg">
-is
-a
-labeled
-directed
-graph,
-i.e.,
-a
-set
-of
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-nodes
-</ins></a><ins class="diff-chg">
-connected
-by
-</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
-edges
-</ins></a>.</li><li><ins class="diff-chg">
-Every
-</ins><dfn title="edge" id="dfn-edge"><ins class="diff-chg">
-edge
-</ins></dfn><ins class="diff-chg">
-has
-a
-direction
-associated
-with
-</ins>
-it
-<del class="diff-old">follows
-that
-all
-valid
-</del>
-<ins class="diff-chg">and
-is
-labeled
-with
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>.<ins class="diff-chg">
-Within
-the
-</ins>
-JSON-LD
-<del class="diff-old">documents
-</del>
-<ins class="diff-chg">syntax
-these
-edge
-labels
-</ins>
-are
-<del class="diff-old">valid
-JSON
-documents.
-It
-also
-means
-that
-</del>
-<ins class="diff-chg">called
-</ins><dfn title="property" id="dfn-property"><ins class="diff-chg">
-properties
-</ins></dfn>.<ins class="diff-chg">
-Whenever
-practical,
-</ins>
-an
-<del class="diff-old">invalid
-JSON
-</del>
-<a class="tref internalDFN" title="edge" href="#dfn-edge">
-<ins class="diff-chg">edge
-</ins></a><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
-SHOULD
-</ins></em><ins class="diff-chg">
-be
-labeled
-with
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.</li><li><ins class="diff-chg">
-Every
-</ins><dfn title="node" id="dfn-node"><ins class="diff-chg">
-node
-</ins></dfn><ins class="diff-chg">
-is
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-node
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
-JSON-LD
-value
-</ins></a>,<ins class="diff-chg">
-or
-a
-</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
-list
-</ins></a>.</li><li><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a><ins class="diff-chg">
-having
-an
-outgoing
-edge
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-be
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-a
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-node
-</ins></a>.</li><li><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-JSON-LD
-graph
-</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em><ins class="diff-chg">
-contain
-unconnected
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-nodes
-</ins></a>,<ins class="diff-chg">
-i.e.,
-nodes
-which
-are
-not
-connected
-by
-an
-</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
-edge
-</ins></a><ins class="diff-chg">
-to
-any
-other
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a>.</li><li><ins class="diff-chg">
-An
-</ins><dfn title="iri" id="dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></dfn><ins class="diff-chg">
-(Internationalized
-Resource
-Identifier)
-is
-a
-string
-that
-conforms
-to
-the
-syntax
-defined
-in
-[
-</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-chg">
-RFC3987
-</ins></a></cite><ins class="diff-chg">
-].
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-used
-within
-a
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-JSON-LD
-graph
-</ins></a><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
-SHOULD
-</ins></em><ins class="diff-chg">
-return
-a
-</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data"><ins class="diff-chg">
-Linked
-Data
-</ins></a>
-document
-<ins class="diff-new">describing
-the
-resource
-denoted
-by
-that
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-when
-being
-dereferenced.
-</ins></li><li><ins class="diff-new">
-A
-</ins><dfn title="blank-node" id="dfn-blank-node"><ins class="diff-new">
-blank
-node
-</ins></dfn><ins class="diff-new">
-is
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
-node
-</ins></a><ins class="diff-new">
-which
-is
-neither
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>,<ins class="diff-new">
-nor
-a
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-new">
-JSON-LD
-value
-</ins></a>,<ins class="diff-new">
-nor
-a
-</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-new">
-list
-</ins></a>.<ins class="diff-new">
-A
-blank
-node
-</ins><em class="rfc2119" title="MAY"><ins class="diff-new">
-MAY
-</ins></em><ins class="diff-new">
-be
-identified
-using
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
-blank
-node
-identifier
-</ins></a>.</li><li><ins class="diff-new">
-A
-</ins><dfn title="blank-node-identifier" id="dfn-blank-node-identifier"><ins class="diff-new">
-blank
-node
-identifier
-</ins></dfn><ins class="diff-new">
-is
-a
-string
-that
-</ins>
-can
-<del class="diff-old">never
-</del>
-be
-<ins class="diff-new">used
-as
-an
-identifier
-for
-</ins>
-a
-<del class="diff-old">valid
-</del>
-<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
-<ins class="diff-chg">blank
-node
-</ins></a><ins class="diff-chg">
-within
-the
-scope
-of
-a
-</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
-JSON-LD
-<del class="diff-old">document.
-Furthermore,
-</del>
-<ins class="diff-chg">document
-</ins></a>.<ins class="diff-chg">
-Blank
-node
-identifiers
-begin
-with
-</ins><code><ins class="diff-chg">
-_:
-</ins></code>.</li><li><ins class="diff-chg">
-A
-</ins><dfn title="json-ld-value" id="dfn-json-ld-value">
-JSON-LD
-<del class="diff-old">places
-</del>
-<ins class="diff-chg">value
-</ins></dfn><ins class="diff-chg">
-is
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,
-a
-<a class="tref internalDFN" title="number" href="#dfn-number">
-number
-</a>,
-<a class="tref internalDFN" title="true" href="#dfn-true">
-<ins class="diff-new">true
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
-false
-</ins></a>,<ins class="diff-new">
-a
-</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-new">
-typed
-value
-</ins></a>,<ins class="diff-new">
-or
-a
-</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-new">
-language-tagged
-string
-</ins></a>.</li><li><ins class="diff-new">
-A
-</ins><dfn title="typed-value" id="dfn-typed-value"><ins class="diff-new">
-typed
-value
-</ins></dfn><ins class="diff-new">
-consists
-</ins>
-of
-<del class="diff-old">restrictions
-on
-the
-JSON
-syntax
-in
-order
-to
-define
-</del>
-a
-<del class="diff-old">set
-</del>
-<ins class="diff-chg">value,
-which
-is
-a
-string,
-and
-a
-type,
-which
-is
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.</li><li><ins class="diff-chg">
-A
-</ins><dfn title="language-tagged-string" id="dfn-language-tagged-string"><ins class="diff-chg">
-language-tagged
-string
-</ins></dfn><ins class="diff-chg">
-consists
-</ins>
-of
-<del class="diff-old">authoring
-guidelines
-</del>
-<ins class="diff-chg">a
-string
-and
-a
-non-empty
-language
-tag
-as
-defined
-by
-[
-</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
-BCP47
-</ins></a></cite><ins class="diff-chg">
-].
-The
-language
-tag
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-<del class="diff-old">that
-are
-</del>
-<ins class="diff-chg">be
-well-formed
-according
-to
-section
-</ins><a href="http://tools.ietf.org/html/bcp47#section-2.2.9"><ins class="diff-chg">
-2.2.9
-Classes
-of
-Conformance
-</ins></a><ins class="diff-chg">
-of
-[
-</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
-BCP47
-</ins></a></cite><ins class="diff-chg">
-].
-</ins></li><li><ins class="diff-chg">
-A
-</ins><dfn title="list" id="dfn-list"><ins class="diff-chg">
-list
-</ins></dfn><ins class="diff-chg">
-is
-an
-ordered
-sequence
-of
-zero
-or
-more
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>,<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a>,<ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
-JSON-LD
-values
-</ins></a>.</li></ul><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-chg">
-Feature
-at
-Risk
-3
-</ins></span>:<ins class="diff-chg">
-Allow
-blank
-nodes
-to
-be
-</ins>
-used
-<ins class="diff-new">as
-graph
-name
-or
-property
-</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
-Note:
-This
-feature
-is
-</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
-&quot;at
-risk&quot;
-</ins></a><ins class="diff-new">
-and
-may
-be
-removed
-from
-this
-specification
-based
-on
-feedback.
-Please
-send
-feedback
-</ins>
-to
-<del class="diff-old">express
-well-formed
-</del>
-<a href="mailto:public-rdf-comments@w3.org">
-<ins class="diff-chg">public-rdf-comments@w3.org
-</ins></a>.<ins class="diff-chg">
-For
-the
-current
-status
-see
-</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
-features
-&quot;at
-risk&quot;
-in
-</ins>
-JSON-LD
-<del class="diff-old">documents.
-At
-times,
-even
-if
-these
-guidelines
-are
-violated,
-</del>
-<ins class="diff-chg">1.0
-</ins></a></p><p><ins class="diff-chg">
-RDF
-does
-not
-currently
-allow
-</ins>
-a
-<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
-<ins class="diff-new">blank
-node
-</ins></a><ins class="diff-new">
-to
-be
-used
-as
-</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-new">
-graph
-name
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-new">
-property
-</ins></a>,<ins class="diff-new">
-while
-JSON-LD
-does.
-</ins>
-JSON-LD
-<del class="diff-old">processor
-will
-do
-its
-best
-</del>
-to
-<del class="diff-old">recover
-</del>
-<ins class="diff-chg">RDF
-converters
-can
-work
-around
-this
-restriction,
-when
-converting
-JSON-LD
-to
-RDF,
-by
-converting
-such
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>,<ins class="diff-chg">
-minting
-new
-&quot;Skolem
-IRIs&quot;
-as
-per
-</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization"><ins class="diff-chg">
-Replacing
-Blank
-Nodes
-with
-IRIs
-</ins></a></cite><ins class="diff-chg">
-of
-[
-</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
-RDF11-CONCEPTS
-</ins></a></cite><ins class="diff-chg">
-].
-Based
-on
-feedback
-</ins>
-from
-<ins class="diff-new">implementors
-</ins>
-the
-<del class="diff-old">mistake
-</del>
-<ins class="diff-chg">Working
-Group
-may
-decide
-to
-disallow
-blank
-nodes
-as
-graph
-names
-</ins>
-and
-<del class="diff-old">will
-deterministically
-transform
-the
-author's
-markup
-into
-well-formed
-</del>
-<ins class="diff-chg">properties
-in
-</ins>
-JSON-LD.
-<ins class="diff-new">If
-this
-change
-would
-affect
-you,
-be
-sure
-to
-send
-in
-a
-comment.
-</ins>
-</p>
-</div>
-</div>
-<p>
-<del class="diff-old">Issue
-4
-</del>
-<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
-<ins class="diff-chg">JSON-LD
-documents
-</ins></a><em class="rfc2119" title="MAY"><ins class="diff-chg">
-MAY
-</ins></em><ins class="diff-chg">
-contain
-data
-that
-cannot
-be
-represented
-by
-the
-</ins><a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model"><ins class="diff-chg">
-data
-model
-</ins></a><ins class="diff-chg">
-defined
-above.
-Unless
-otherwise
-specified,
-such
-data
-is
-ignored
-when
-a
-</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
-JSON-LD
-document
-</ins></a><ins class="diff-chg">
-is
-being
-processed.
-This
-means,
-e.g.,
-that
-properties
-which
-are
-not
-mapped
-to
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr>
-<del class="diff-old">The
-final
-details
-</del>
-</a>
-<ins class="diff-chg">or
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-node
-</ins></a><ins class="diff-chg">
-will
-be
-ignored.
-</ins></p><p style="text-align: center"><img src="linked-data-graph.png" title="An illustration of JSON-LD's data model" /></p><p style="text-align: center"><ins class="diff-chg">
-Figure
-1:
-An
-illustration
-</ins>
-of
-<ins class="diff-new">JSON-LD's
-data
-model.
-</ins></p></section><section class="appendix normative" id="json-ld-grammar"><h2><span class="secno"><ins class="diff-new">
-B.
-</ins></span><ins class="diff-new">
-JSON-LD
-Grammar
-</ins></h2><p><ins class="diff-new">
-This
-appendix
-restates
-</ins>
-the
-<del class="diff-old">guidelines
-are
-still
-being
-discussed
-(
-ISSUE-114
-</del>
-<ins class="diff-chg">syntactic
-conventions
-described
-in
-the
-previous
-sections
-more
-formally.
-</ins></p><p><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
-JSON-LD
-document
-</ins>
-</a>
-<del class="diff-old">),
-as
-well
-</del>
-<em class="rfc2119" title="MUST">
-<ins class="diff-chg">MUST
-</ins></em><ins class="diff-chg">
-be
-a
-valid
-JSON
-document
-</ins>
-as
-<ins class="diff-new">described
-in
-[
-</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-new">
-RFC4627
-</ins></a></cite><ins class="diff-new">
-].
-</ins></p><p><ins class="diff-new">
-A
-</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-new">
-JSON-LD
-document
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-a
-single
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a><ins class="diff-new">
-or
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-whose
-elements
-are
-each
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-objects
-</ins></a><ins class="diff-new">
-at
-</ins>
-the
-<del class="diff-old">best
-mechanism
-</del>
-<ins class="diff-chg">top
-level.
-</ins></p><p><ins class="diff-chg">
-In
-contrast
-</ins>
-to
-<del class="diff-old">express
-these
-restrictions.
-EBNF
-doesn't
-quite
-capture
-what
-these
-guidelines
-are
-attempting
-</del>
-<ins class="diff-chg">JSON,
-in
-JSON-LD
-the
-keys
-in
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-objects
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-be
-unique.
-</ins></p><div class="note"><div class="note-title"><span><ins class="diff-chg">
-Note
-</ins></span></div><p class=""><ins class="diff-chg">
-JSON-LD
-allows
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a>
-to
-<del class="diff-old">do
--
-which
-is
-strongly
-express
-what
-constitutes
-</del>
-<ins class="diff-chg">be
-aliased
-(see
-</ins><a class="sectionRef sec-ref" href="#aliasing-keywords"><ins class="diff-chg">
-section
-6.15
-Aliasing
-Keywords
-</ins></a><ins class="diff-chg">
-for
-details).
-Whenever
-</ins>
-a
-<del class="diff-old">well-formed
-JSON-LD
-document.
-</del>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-chg">keyword
-</ins></a><ins class="diff-chg">
-is
-discussed
-in
-this
-grammar,
-the
-statements
-also
-apply
-to
-an
-alias
-for
-that
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>.
-For
-<ins class="diff-new">example,
-if
-</ins>
-the
-<del class="diff-old">time
-being,
-</del>
-<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
-<ins class="diff-chg">active
-context
-</ins></a><ins class="diff-chg">
-defines
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><code><ins class="diff-chg">
-id
-</ins></code><ins class="diff-chg">
-as
-an
-alias
-for
-</ins><code><ins class="diff-chg">
-@id
-</ins></code>,<ins class="diff-chg">
-that
-alias
-may
-be
-legitimately
-used
-as
-</ins>
-a
-<del class="diff-old">simple
-list
-of
-plain
-English
-guidelines
-</del>
-<ins class="diff-chg">substitution
-for
-</ins><code><ins class="diff-chg">
-@id
-</ins></code>.<ins class="diff-chg">
-Note
-that
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-aliases
-</ins>
-are
-<del class="diff-old">provided.
-</del>
-<ins class="diff-chg">not
-expanded
-during
-context
-processing.
-</ins>
-</p>
-</div>
-<section class="normative" id="terms">
-<h3>
-<del class="diff-old">Issue
-5
-</del>
-<span class="secno">
-<ins class="diff-chg">B.1
-</ins>
-</span>
-<ins class="diff-new">Terms
-</ins></h3><p><ins class="diff-new">
-A
-</ins><dfn title="term" id="dfn-term"><ins class="diff-new">
-term
-</ins></dfn><ins class="diff-new">
-is
-a
-short-hand
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-string
-</ins></a><ins class="diff-new">
-that
-expands
-to
-an
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr>
-<del class="diff-old">Per
-Andy
-S's
-comment
-,
-consider
-making
-this
-</del>
-</a>
-<ins class="diff-chg">or
-</ins>
-a
-<del class="diff-old">normative
-syntax
-definition
-along
-</del>
-<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
-<ins class="diff-chg">blank
-node
-identifier
-</ins></a>.</p><p><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em><ins class="diff-chg">
-equal
-any
-of
-the
-JSON-LD
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a>.</p><p><ins class="diff-chg">
-To
-avoid
-forward-compatibility
-issues,
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
-SHOULD
-NOT
-</ins></em><ins class="diff-chg">
-start
-</ins>
-with
-<del class="diff-old">EBNF.
-</del>
-<ins class="diff-chg">an
-</ins><code><ins class="diff-chg">
-@
-</ins></code><ins class="diff-chg">
-character
-as
-future
-versions
-of
-JSON-LD
-may
-introduce
-additional
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a>.<ins class="diff-chg">
-Furthermore,
-the
-term
-</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em><ins class="diff-chg">
-be
-an
-empty
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a><ins class="diff-chg">
-(
-</ins><code><ins class="diff-chg">
-&quot;&quot;
-</ins></code><ins class="diff-chg">
-)
-as
-not
-all
-programming
-languages
-are
-able
-to
-handle
-empty
-JSON
-keys.
-</ins>
-</p>
-<p>
-<ins class="diff-new">See
-</ins><a class="sectionRef sec-ref" href="#the-context"><ins class="diff-new">
-section
-5.1
-The
-Context
-</ins></a><ins class="diff-new">
-and
-</ins><a class="sectionRef sec-ref" href="#iris"><ins class="diff-new">
-section
-5.2
-IRIs
-</ins></a><ins class="diff-new">
-for
-further
-discussion
-on
-mapping
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-terms
-</ins></a><ins class="diff-new">
-to
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
-IRIs
-</ins></a>.</p></section><section class="normative" id="node-objects"><h3>
-<span class="secno">
-<ins class="diff-chg">B.2
-</ins></span><ins class="diff-chg">
-Node
-Objects
-</ins></h3><p>
-A
-<dfn title="node-object" id="dfn-node-object">
-<ins class="diff-new">node
-object
-</ins></dfn><ins class="diff-new">
-represents
-zero
-or
-more
-properties
-of
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
-node
-</ins></a><ins class="diff-new">
-in
-the
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-new">
-JSON-LD
-graph
-</ins></a><ins class="diff-new">
-serialized
-by
-the
-</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
-JSON-LD
-document
-</a>.
-<ins class="diff-new">A
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a>
-is
-<del class="diff-old">composed
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-if
-it
-exists
-outside
-</ins>
-of
-a
-<del class="diff-old">single
-subject
-definition
-</del>
-<ins class="diff-chg">JSON-LD
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
-context
-</ins>
-</a>
-<ins class="diff-new">and:
-</ins></p><ul><li><ins class="diff-new">
-it
-does
-not
-contain
-the
-</ins><code><ins class="diff-new">
-@value
-</ins></code>,<code><ins class="diff-new">
-@list
-</ins></code>,
-or
-<del class="diff-old">an
-array
-</del>
-<code>
-<ins class="diff-chg">@set
-</ins></code><ins class="diff-chg">
-keywords,
-and
-</ins></li><li><ins class="diff-chg">
-it
-is
-not
-the
-top-most
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins>
-</a>
-<ins class="diff-new">in
-the
-JSON-LD
-document
-consisting
-</ins>
-of
-<del class="diff-old">subject
-definitions
-.
-</del>
-<ins class="diff-chg">no
-other
-members
-than
-</ins><code><ins class="diff-chg">
-@graph
-</ins></code><ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-@context
-</ins></code>.
-</li>
-</ul>
-<p>
-The
-<del class="diff-old">value
-</del>
-<a class="tref internalDFN" title="property" href="#dfn-property">
-<ins class="diff-chg">properties
-</ins></a><ins class="diff-chg">
-of
-a
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
-node
-</ins></a><ins class="diff-chg">
-in
-a
-</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
-JSON-LD
-graph
-</ins></a><ins class="diff-chg">
-may
-be
-spread
-among
-different
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-objects
-</ins></a><ins class="diff-chg">
-within
-a
-document.
-When
-that
-happens,
-the
-keys
-</ins>
-of
-<ins class="diff-new">the
-different
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-objects
-</ins></a><ins class="diff-new">
-need
-to
-be
-merged
-to
-create
-the
-properties
-of
-the
-resulting
-</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
-node
-</ins></a>.</p><p><ins class="diff-new">
-A
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a>.<ins class="diff-new">
-All
-keys
-which
-are
-not
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
-IRIs
-</ins></a>,<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
-compact
-IRIs
-</ins></a>,<a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-terms
-</ins></a><ins class="diff-new">
-valid
-in
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>,<ins class="diff-new">
-or
-one
-of
-the
-following
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
-keywords
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-ignored
-when
-processed:
-</ins></p><ul><li><code><ins class="diff-new">
-@context
-</ins></code>,</li><li>
-<code>
-@id
-</code>,
-</li>
-<li>
-<code>
-<ins class="diff-new">@graph
-</ins></code>,</li><li><code><ins class="diff-new">
-@type
-</ins></code>,</li><li><code><ins class="diff-new">
-@reverse
-</ins></code>,<ins class="diff-new">
-or
-</ins></li><li><code><ins class="diff-new">
-@index
-</ins>
-</code>
-<del class="diff-old">must
-</del>
-</li>
-</ul>
-<p>
-<ins class="diff-chg">If
-the
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-contains
-the
-</ins><code><ins class="diff-chg">
-@context
-</ins></code><ins class="diff-chg">
-key,
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-be
-<del class="diff-old">a
-term
-</del>
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-chg">null
-</ins></a>,<ins class="diff-chg">
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>,
-a
-<del class="diff-old">compact
-</del>
-<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
-<ins class="diff-chg">relative
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>,
-<ins class="diff-new">a
-</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-new">
-context
-definition
-</ins></a>,
-or
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-<ins class="diff-chg">array
-</ins></a><ins class="diff-chg">
-composed
-of
-any
-of
-these.
-</ins></p><p><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-contains
-the
-</ins><code><ins class="diff-chg">
-@id
-</ins></code><ins class="diff-chg">
-key,
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-be
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>,
-<ins class="diff-new">a
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
-relative
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<del class="diff-old">.
-An
-</del>
-</a>,
-<ins class="diff-chg">or
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-(including
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a><ins class="diff-chg">
-).
-See
-</ins><a class="sectionRef sec-ref" href="#node-identifiers"><ins class="diff-chg">
-section
-5.3
-Node
-Identifiers
-</ins></a>,<a class="sectionRef sec-ref" href="#compact-iris"><ins class="diff-chg">
-section
-6.3
-Compact
-IRIs
-</ins></a>,<ins class="diff-chg">
-and
-</ins><a class="sectionRef sec-ref" href="#identifying-blank-nodes"><ins class="diff-chg">
-section
-6.14
-Identifying
-Blank
-Nodes
-</ins></a><ins class="diff-chg">
-for
-further
-discussion
-on
-</ins>
-<code>
-@id
-</code>
-<del class="diff-old">keyword
-and
-a
-</del>
-<ins class="diff-chg">values.
-</ins></p><p><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-contains
-the
-</ins>
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@graph
-</ins>
-</code>
-<del class="diff-old">keyword
-must
-not
-</del>
-<ins class="diff-chg">key,
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-<del class="diff-old">exist
-in
-the
-same
-JSON
-</del>
-<ins class="diff-chg">be
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-</ins>
-object
-</a>
-<ins class="diff-new">or
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-of
-zero
-or
-more
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-objects
-</ins>
-</a>.
-<del class="diff-old">An
-</del>
-<ins class="diff-chg">If
-the
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-contains
-an
-</ins>
-<code>
-@id
-</code>
-<del class="diff-old">keyword
-and
-</del>
-<ins class="diff-chg">keyword,
-its
-value
-is
-used
-as
-the
-label
-of
-</ins>
-a
-<ins class="diff-new">named
-graph.
-See
-</ins><a class="sectionRef sec-ref" href="#named-graphs"><ins class="diff-new">
-section
-6.13
-Named
-Graphs
-</ins></a><ins class="diff-new">
-for
-further
-discussion
-on
-</ins>
-<code>
-<del class="diff-old">@container
-</del>
-<ins class="diff-chg">@graph
-</ins>
-</code>
-<del class="diff-old">keyword
-must
-not
-exist
-in
-the
-same
-</del>
-<ins class="diff-chg">values.
-As
-a
-special
-case,
-if
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-<del class="diff-old">.
-A
-subject
-definition
-</del>
-</a>
-<del class="diff-old">may
-contain
-a
-</del>
-<ins class="diff-chg">contains
-no
-keys
-other
-than
-</ins>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">@graph
-</ins>
-</code>
-<del class="diff-old">property.
-A
-</del>
-<ins class="diff-chg">and
-</ins>
-<code>
-@context
-</code>,
-<ins class="diff-new">and
-the
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a><ins class="diff-new">
-is
-the
-root
-of
-the
-JSON-LD
-document,
-the
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
-JSON
-object
-</ins></a><ins class="diff-new">
-is
-not
-treated
-as
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a><ins class="diff-new">
-;
-this
-is
-used
-as
-a
-way
-of
-defining
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-definitions
-</ins></a><ins class="diff-new">
-that
-may
-not
-form
-a
-connected
-graph.
-This
-allows
-a
-</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
-context
-</ins></a><ins class="diff-new">
-to
-be
-defined
-which
-is
-shared
-by
-all
-of
-the
-constituent
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-objects
-</ins></a>.</p><p><ins class="diff-new">
-If
-the
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a><ins class="diff-new">
-contains
-the
-</ins><code><ins class="diff-new">
-@type
-</ins>
-</code>
-<ins class="diff-new">key,
-its
-</ins>
-value
-<del class="diff-old">must
-not
-</del>
-<em class="rfc2119" title="MUST">
-<ins class="diff-chg">MUST
-</ins>
-</em>
-<del class="diff-old">contain
-</del>
-<ins class="diff-chg">be
-either
-</ins>
-an
-<del class="diff-old">embedded
-</del>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
-relative
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-(including
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifiers
-</ins></a><ins class="diff-chg">
-),
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-defined
-in
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-expanding
-into
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-or
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-array
-</ins></a><ins class="diff-chg">
-of
-any
-of
-these.
-See
-</ins><a class="sectionRef sec-ref" href="#specifying-the-type"><ins class="diff-chg">
-section
-5.4
-Specifying
-the
-Type
-</ins></a><ins class="diff-chg">
-for
-further
-discussion
-on
-</ins>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">@type
-</ins>
-</code>
-<del class="diff-old">definition.
-The
-value
-associated
-with
-</del>
-<ins class="diff-chg">values.
-</ins></p><p><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-contains
-</ins>
-the
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">@reverse
-</ins>
-</code>
-<del class="diff-old">keyword
-must
-</del>
-<ins class="diff-chg">key,
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-be
-a
-<del class="diff-old">string
-expanding
-to
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins></a><ins class="diff-chg">
-containing
-members
-representing
-reverse
-properties.
-Each
-value
-of
-such
-a
-reverse
-property
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-be
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>,
-<ins class="diff-new">a
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
-relative
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>,
-a
-<del class="diff-old">JSON
-object
-</del>
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-<ins class="diff-chg">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>,
-<del class="diff-old">null,
-</del>
-<ins class="diff-chg">a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a>
-or
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-containing
-a
-combination
-of
-<ins class="diff-new">these.
-</ins></p><p><ins class="diff-new">
-If
-</ins>
-the
-<del class="diff-old">allowed
-values.
-The
-value
-associated
-with
-</del>
-<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
-<ins class="diff-chg">node
-object
-</ins></a><ins class="diff-chg">
-contains
-</ins>
-the
-<del class="diff-old">keys
-used
-in
-a
-</del>
-<code>
-<del class="diff-old">@context
-</del>
-<ins class="diff-chg">@index
-</ins>
-</code>
-<del class="diff-old">must
-</del>
-<ins class="diff-chg">key,
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-be
-a
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-new">string
-</ins></a>.<ins class="diff-new">
-See
-</ins><a class="sectionRef sec-ref" href="#data-indexing"><ins class="diff-new">
-section
-6.16
-Data
-Indexing
-</ins></a><ins class="diff-new">
-for
-further
-discussion
-on
-</ins>
-<code>
-<del class="diff-old">null
-,
-</del>
-<ins class="diff-chg">@index
-</ins></code><ins class="diff-chg">
-values.
-</ins></p><p><ins class="diff-chg">
-Keys
-in
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-that
-are
-not
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a><em class="rfc2119" title="MAY"><ins class="diff-chg">
-MAY
-</ins></em><ins class="diff-chg">
-expand
-to
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>
-<ins class="diff-new">using
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a>.<ins class="diff-new">
-The
-values
-associated
-with
-keys
-that
-expand
-to
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
-absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<em class="rfc2119" title="MUST">
-<ins class="diff-new">MUST
-</ins></em><ins class="diff-new">
-be
-one
-of
-the
-following:
-</ins></p><ul><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-string
-</ins></a>,</li><li><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
-number
-</ins></a>,</li><li><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a>,</li><li><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
-false
-</ins></a>,</li><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,</li><li><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a>,</li><li><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-new">
-value
-object
-</ins></a>,</li><li><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
-list
-object
-</ins></a>,</li><li><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-new">
-set
-object
-</ins>
-</a>,
-</li>
-<li>
-<ins class="diff-new">an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-of
-zero
-</ins>
-or
-<ins class="diff-new">more
-of
-the
-possibilities
-above,
-</ins></li><li>
-a
-<del class="diff-old">JSON
-object
-.
-</del>
-<a class="tref internalDFN" title="language-map" href="#dfn-language-map">
-<ins class="diff-chg">language
-map
-</ins></a>,<ins class="diff-chg">
-or
-</ins>
-</li>
-<li>
-<del class="diff-old">For
-each
-</del>
-<ins class="diff-chg">an
-</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
-index
-map
-</ins></a></li></ul></section><section class="normative" id="value-objects"><h3><span class="secno"><ins class="diff-chg">
-B.3
-</ins></span><ins class="diff-chg">
-Value
-Objects
-</ins></h3><p><ins class="diff-chg">
-A
-</ins><dfn title="value-object" id="dfn-value-object">
-value
-<del class="diff-old">that
-</del>
-<ins class="diff-chg">object
-</ins></dfn>
-is
-<ins class="diff-new">used
-to
-explicitly
-associate
-</ins>
-a
-<ins class="diff-chg">type
-or
-a
-language
-with
-a
-value
-to
-create
-a
-</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
-typed
-value
-</ins></a><ins class="diff-chg">
-or
-a
-</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-chg">
-language-tagged
-string
-</ins></a>.</p><p><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-be
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-<del class="diff-old">that
-is
-associated
-with
-</del>
-<ins class="diff-chg">containing
-the
-</ins><code><ins class="diff-chg">
-@value
-</ins></code><ins class="diff-chg">
-key.
-It
-</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
-MAY
-</ins></em><ins class="diff-chg">
-also
-contain
-</ins>
-a
-<del class="diff-old">key
-in
-</del>
-<code>
-<ins class="diff-chg">@type
-</ins></code>,
-a
-<code>
-<ins class="diff-new">@language
-</ins></code>,<ins class="diff-new">
-an
-</ins><code><ins class="diff-new">
-@index
-</ins></code>,<ins class="diff-new">
-or
-an
-</ins><code>
-@context
-<del class="diff-old">:
-</del>
-</code>
-<ins class="diff-chg">key
-but
-</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em><ins class="diff-chg">
-contain
-both
-a
-</ins>
-<code>
-<del class="diff-old">@id
-</del>
-<ins class="diff-chg">@type
-</ins>
-</code>
-and
-<ins class="diff-new">a
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<del class="diff-old">must
-</del>
-<ins class="diff-chg">key
-at
-the
-same
-time.
-A
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
-value
-object
-</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins>
-</em>
-<del class="diff-old">be
-</del>
-<ins class="diff-chg">contain
-any
-other
-keys
-that
-expand
-to
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-or
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-new">keyword
-</ins></a>.</p><p><ins class="diff-new">
-The
-value
-associated
-with
-the
-</ins>
-<code>
-<ins class="diff-new">@value
-</ins></code><ins class="diff-new">
-key
-</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-either
-a
-</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-string
-</ins></a>,<ins class="diff-new">
-a
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
-number
-</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
-true
-</ins></a>,<a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
-false
-</ins></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>.
-</p>
-<p>
-<ins class="diff-new">The
-value
-associated
-with
-the
-</ins><code><ins class="diff-new">
-@type
-</ins>
-</code>
-<ins class="diff-new">key
-</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a>,<ins class="diff-new">
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>
-</a>,
-<ins class="diff-chg">an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>,
-<ins class="diff-new">a
-</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
-relative
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>,<ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>.</p><p><ins class="diff-new">
-The
-value
-associated
-with
-the
-</ins>
-<code>
-<del class="diff-old">@container
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<del class="diff-old">must
-</del>
-<ins class="diff-chg">key
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-<ins class="diff-new">have
-the
-lexical
-form
-described
-in
-[
-</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-new">
-BCP47
-</ins></a></cite><ins class="diff-new">
-],
-or
-</ins>
-be
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-new">null
-</ins></a>.</p><p><ins class="diff-new">
-The
-value
-</ins>
-associated
-with
-<ins class="diff-new">the
-</ins><code><ins class="diff-new">
-@index
-</ins></code><ins class="diff-new">
-key
-</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-</ins>
-a
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-new">string
-</ins></a>.</p><p><ins class="diff-new">
-See
-</ins><a class="sectionRef sec-ref" href="#typed-values"><ins class="diff-new">
-section
-6.4
-Typed
-Values
-</ins></a><ins class="diff-new">
-and
-</ins><a class="sectionRef sec-ref" href="#string-internationalization"><ins class="diff-new">
-section
-6.9
-String
-Internationalization
-</ins></a><ins class="diff-new">
-for
-more
-information
-on
-</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object">
-value
-<ins class="diff-new">objects
-</ins></a>.</p></section><section class="normative" id="lists-and-sets"><h3><span class="secno"><ins class="diff-new">
-B.4
-</ins></span><ins class="diff-new">
-Lists
-and
-Sets
-</ins></h3><p><ins class="diff-new">
-A
-</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-new">
-list
-</ins></a><ins class="diff-new">
-represents
-an
-</ins><em><ins class="diff-new">
-ordered
-</ins></em><ins class="diff-new">
-set
-</ins>
-of
-<del class="diff-old">either
-</del>
-<ins class="diff-chg">values.
-A
-set
-represents
-an
-</ins><em><ins class="diff-chg">
-unordered
-</ins></em><ins class="diff-chg">
-set
-of
-values.
-Unless
-otherwise
-specified,
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
-arrays
-</ins></a><ins class="diff-chg">
-are
-unordered
-in
-JSON-LD.
-As
-such,
-the
-</ins><code><ins class="diff-chg">
-@set
-</ins></code><ins class="diff-chg">
-keyword,
-when
-used
-in
-the
-body
-of
-a
-JSON-LD
-document,
-represents
-just
-syntactic
-sugar
-which
-is
-optimized
-away
-when
-processing
-the
-document.
-However,
-it
-is
-very
-helpful
-when
-used
-within
-the
-context
-of
-a
-document.
-Values
-of
-terms
-associated
-with
-a
-</ins>
-<code>
-@set
-</code>
-or
-<code>
-@list
-<del class="diff-old">.
-@language
-</del>
-</code>
-<del class="diff-old">must
-</del>
-<ins class="diff-chg">container
-will
-always
-</ins>
-be
-<ins class="diff-new">represented
-in
-the
-form
-of
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-when
-</ins>
-a
-<del class="diff-old">string
-expressed
-</del>
-<ins class="diff-chg">document
-is
-processed—even
-if
-there
-is
-just
-a
-single
-value
-that
-would
-otherwise
-be
-optimized
-to
-a
-non-array
-form
-</ins>
-in
-<del class="diff-old">[
-BCP47
-</del>
-<a href="#compact-document-form">
-<ins class="diff-chg">compact
-document
-form
-</ins></a>.<ins class="diff-chg">
-This
-simplifies
-post-processing
-of
-the
-data
-as
-the
-data
-is
-always
-in
-a
-deterministic
-form.
-</ins></p><p><ins class="diff-chg">
-A
-</ins><dfn title="list-object" id="dfn-list-object"><ins class="diff-chg">
-list
-object
-</ins></dfn><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-be
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
-JSON
-object
-</ins>
-</a>
-<ins class="diff-new">that
-contains
-no
-keys
-that
-expand
-to
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>
-<del class="diff-old">]
-</del>
-</a>
-or
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-new">keyword
-</ins></a><ins class="diff-new">
-other
-than
-</ins>
-<code>
-<del class="diff-old">null
-</del>
-<ins class="diff-chg">@list
-</ins></code>,<code><ins class="diff-chg">
-@context
-</ins></code>,<ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-@index
-</ins>
-</code>.
-<del class="diff-old">Any
-other
-property
-must
-</del>
-</p>
-<p>
-<ins class="diff-chg">A
-</ins><dfn title="set-object" id="dfn-set-object"><ins class="diff-chg">
-set
-object
-</ins></dfn><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-be
-<del class="diff-old">ignored
-by
-</del>
-a
-<del class="diff-old">JSON-LD
-processor
-</del>
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-chg">JSON
-object
-</ins></a><ins class="diff-chg">
-that
-contains
-no
-keys
-that
-expand
-to
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a><ins class="diff-chg">
-other
-than
-</ins><code><ins class="diff-chg">
-@list
-</ins></code>,<code><ins class="diff-chg">
-@context
-</ins></code>,
-and
-<del class="diff-old">must
-</del>
-<code>
-<ins class="diff-chg">@index
-</ins></code>.<ins class="diff-chg">
-Please
-note
-that
-the
-</ins><code><ins class="diff-chg">
-@index
-</ins></code><ins class="diff-chg">
-key
-will
-</ins>
-be
-<del class="diff-old">preserved
-in
-compaction
-</del>
-<ins class="diff-chg">ignored
-when
-being
-processed.
-</ins></p><p><ins class="diff-chg">
-In
-both
-cases,
-the
-value
-associated
-with
-the
-keys
-</ins><code><ins class="diff-chg">
-@list
-</ins></code>
-and
-<del class="diff-old">framing.
-</del>
-<code>
-<ins class="diff-chg">@set
-</ins></code><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-be
-one
-of
-the
-following
-types:
-</ins></p><ul><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,
-</li>
-<li>
-<a class="tref internalDFN" title="number" href="#dfn-number">
-<ins class="diff-chg">number
-</ins></a>,</li><li><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a>,</li><li><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>,</li><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,</li><li><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a>,
-</li>
-<li>
-<a class="tref internalDFN" title="value-object" href="#dfn-value-object">
-<ins class="diff-new">value
-object
-</ins></a>,<ins class="diff-new">
-or
-</ins></li><li><ins class="diff-new">
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-of
-zero
-or
-more
-of
-the
-above
-possibilities
-</ins></li></ul><p><ins class="diff-new">
-See
-</ins><a class="sectionRef sec-ref" href="#sets-and-lists"><ins class="diff-new">
-section
-6.11
-Sets
-and
-Lists
-</ins></a><ins class="diff-new">
-for
-further
-discussion
-on
-sets
-and
-lists.
-</ins></p></section><section class="normative" id="language-maps"><h3><span class="secno"><ins class="diff-new">
-B.5
-</ins></span><ins class="diff-new">
-Language
-Maps
-</ins></h3><p>
-A
-<del class="diff-old">subject
-definition
-</del>
-<dfn title="language-map" id="dfn-language-map">
-<ins class="diff-chg">language
-map
-</ins></dfn><ins class="diff-chg">
-is
-used
-to
-associate
-a
-language
-with
-a
-value
-in
-a
-way
-that
-allows
-easy
-programmatic
-access.
-A
-</ins><a class="tref internalDFN" title="language-map" href="#dfn-language-map"><ins class="diff-chg">
-language
-map
-</ins>
-</a>
-may
-<del class="diff-old">have
-an
-</del>
-<ins class="diff-chg">be
-used
-as
-a
-term
-value
-within
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-if
-the
-term
-is
-defined
-with
-</ins>
-<code>
-<del class="diff-old">@graph
-</del>
-<ins class="diff-chg">@container
-</ins>
-</code>
-<del class="diff-old">property.
-</del>
-<ins class="diff-chg">set
-to
-</ins><code><ins class="diff-chg">
-@language
-</ins></code>.
-The
-<del class="diff-old">value
-</del>
-<ins class="diff-chg">keys
-</ins>
-of
-a
-<del class="diff-old">@graph
-property
-must
-</del>
-<a class="tref internalDFN" title="language-map" href="#dfn-language-map">
-<ins class="diff-chg">language
-map
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-be
-<del class="diff-old">a
-subject
-definition
-</del>
-<a class="tref internalDFN" title="string" href="#dfn-string">
-<ins class="diff-chg">strings
-</ins></a><ins class="diff-chg">
-representing
-[
-</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
-BCP47
-</ins>
-</a>
-</cite>
-<ins class="diff-new">]
-language
-codes
-with
-and
-the
-values
-</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-any
-of
-the
-following
-types:
-</ins></p><ul><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,</li><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
-string
-</ins></a>,
-or
-</li>
-<li>
-an
-<a class="tref internalDFN" title="array" href="#dfn-array">
-array
-</a>
-of
-zero
-or
-more
-<del class="diff-old">subject
-definitions
-.
-</del>
-<ins class="diff-chg">of
-the
-above
-possibilities
-</ins>
-</li>
-<del class="diff-old">A
-JSON
-object
-</del>
-</ul>
-<p>
-<ins class="diff-chg">See
-</ins><a class="sectionRef sec-ref" href="#string-internationalization"><ins class="diff-chg">
-section
-6.9
-String
-Internationalization
-</ins>
-</a>
-<del class="diff-old">containing
-</del>
-<ins class="diff-chg">for
-further
-discussion
-on
-language
-maps.
-</ins></p></section><section class="normative" id="index-maps"><h3><span class="secno"><ins class="diff-chg">
-B.6
-</ins></span><ins class="diff-chg">
-Index
-Maps
-</ins></h3><p><ins class="diff-chg">
-An
-</ins><dfn title="index-map" id="dfn-index-map"><ins class="diff-chg">
-index
-map
-</ins></dfn><ins class="diff-chg">
-allows
-keys
-that
-have
-no
-semantic
-meaning,
-but
-should
-be
-preserved
-regardless,
-to
-be
-used
-in
-JSON-LD
-documents.
-An
-</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
-index
-map
-</ins></a><ins class="diff-chg">
-may
-be
-used
-as
-</ins>
-a
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-new">term
-</ins></a><ins class="diff-new">
-value
-within
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a><ins class="diff-new">
-if
-the
-term
-is
-defined
-with
-</ins>
-<code>
-<del class="diff-old">@set
-</del>
-<ins class="diff-chg">@container
-</ins>
-</code>
-<del class="diff-old">key
-must
-not
-</del>
-<ins class="diff-chg">set
-to
-</ins><code><ins class="diff-chg">
-@index
-</ins></code>.<ins class="diff-chg">
-The
-values
-of
-the
-members
-of
-an
-</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
-index
-map
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-<del class="diff-old">have
-any
-other
-keys.
-</del>
-<ins class="diff-chg">be
-one
-of
-the
-following
-types:
-</ins></p><ul><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-string
-</ins></a>,</li><li><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-number
-</ins></a>,
-</li>
-<li>
-<a class="tref internalDFN" title="true" href="#dfn-true">
-<ins class="diff-new">true
-</ins></a>,</li><li><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
-false
-</ins></a>,</li><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>,</li><li><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
-node
-object
-</ins></a>,</li><li><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-new">
-value
-object
-</ins></a>,</li><li><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
-list
-object
-</ins></a>,</li><li><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-new">
-set
-object
-</ins></a>,</li><li><ins class="diff-new">
-an
-</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
-array
-</ins></a><ins class="diff-new">
-of
-zero
-or
-more
-of
-the
-above
-possibilities
-</ins></li></ul><p><ins class="diff-new">
-See
-</ins><a class="sectionRef sec-ref" href="#data-indexing"><ins class="diff-new">
-section
-6.16
-Data
-Indexing
-</ins></a><ins class="diff-new">
-for
-further
-information
-on
-this
-topic.
-</ins></p></section><section class="normative" id="context-definitions"><h3><span class="secno"><ins class="diff-new">
-B.7
-</ins></span><ins class="diff-new">
-Context
-Definitions
-</ins></h3><p>
-A
-<dfn title="context-definition" id="dfn-context-definition">
-<ins class="diff-chg">context
-definition
-</ins></dfn><ins class="diff-chg">
-defines
-a
-</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
-local
-context
-</ins></a><ins class="diff-chg">
-in
-a
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a>.</p><p><ins class="diff-chg">
-A
-</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
-context
-definition
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-be
-a
-</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-JSON
-object
-</a>
-<del class="diff-old">containing
-</del>
-<ins class="diff-chg">whose
-keys
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-either
-be
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-terms
-</ins></a>,<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-IRIs
-</ins></a>,<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-IRIs
-</ins></a>,<ins class="diff-chg">
-or
-the
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keywords
-</ins></a><code><ins class="diff-chg">
-@language
-</ins></code>,<code><ins class="diff-chg">
-@base
-</ins></code>,<ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-@vocab
-</ins></code>.</p><p><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
-context
-definition
-</ins></a><ins class="diff-chg">
-has
-</ins>
-a
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@language
-</ins>
-</code>
-<del class="diff-old">key
-must
-not
-</del>
-<ins class="diff-chg">key,
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-have
-<del class="diff-old">any
-other
-keys.
-The
-</del>
-<ins class="diff-chg">the
-lexical
-form
-described
-in
-[
-</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
-BCP47
-</ins></a></cite><ins class="diff-chg">
-]
-or
-be
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</p><p><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
-context
-definition
-</ins></a><ins class="diff-chg">
-has
-a
-</ins><code><ins class="diff-chg">
-@base
-</ins></code><ins class="diff-chg">
-key,
-its
-</ins>
-value
-<del class="diff-old">of
-</del>
-<em class="rfc2119" title="MUST">
-<ins class="diff-chg">MUST
-</ins></em><ins class="diff-chg">
-be
-</ins>
-an
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-new">absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
-null
-</ins></a>.</p><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
-Feature
-at
-Risk
-1
-</ins></span>:<ins class="diff-new">
-@base
-keyword
-</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
-Note:
-This
-feature
-is
-</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
-&quot;at
-risk&quot;
-</ins></a><ins class="diff-new">
-and
-may
-be
-removed
-from
-this
-specification
-based
-on
-feedback.
-Please
-send
-feedback
-to
-</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-new">
-public-rdf-comments@w3.org
-</ins></a>.<ins class="diff-new">
-For
-the
-current
-status
-see
-</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-new">
-features
-&quot;at
-risk&quot;
-in
-JSON-LD
-1.0
-</ins></a></p><p><ins class="diff-new">
-This
-feature
-is
-at
-risk
-as
-the
-fact
-that
-a
-document
-may
-have
-multiple
-base
-IRIs
-is
-potentially
-confusing
-for
-developers.
-It
-is
-also
-being
-discussed
-whether
-relative
-IRIs
-are
-allowed
-as
-values
-of
-</ins>
-<code>
-<del class="diff-old">@set
-</del>
-<ins class="diff-chg">@base
-</ins>
-</code>
-or
-<ins class="diff-new">whether
-the
-empty
-string
-should
-be
-used
-to
-explicitly
-specify
-that
-there
-isn't
-a
-base
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>,<ins class="diff-new">
-which
-could
-be
-used
-to
-ensure
-that
-relative
-IRIs
-remain
-relative
-when
-expanding.
-</ins></p></div></div><p><ins class="diff-new">
-If
-the
-</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-new">
-context
-definition
-</ins></a><ins class="diff-new">
-has
-a
-</ins>
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@vocab
-</ins>
-</code>
-<del class="diff-old">key
-can
-</del>
-<ins class="diff-chg">key,
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em>
-be
-a
-<del class="diff-old">string,
-</del>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,
-a
-<del class="diff-old">number,
-</del>
-<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
-<ins class="diff-chg">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,
-a
-<del class="diff-old">JSON
-object
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins>
-</a>,
-or
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-new">null
-</ins></a>.</p><p><ins class="diff-new">
-The
-value
-of
-keys
-that
-are
-not
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
-keywords
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-either
-</ins>
-an
-<del class="diff-old">array
-</del>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
-<ins class="diff-chg">absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>,<a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>,<ins class="diff-chg">
-or
-an
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins></a>.</p><p><ins class="diff-chg">
-An
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins>
-</a>
-<del class="diff-old">containing
-</del>
-<ins class="diff-chg">is
-used
-to
-describe
-the
-mapping
-between
-</ins>
-a
-<del class="diff-old">combination
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a><ins class="diff-chg">
-and
-its
-expanded
-identifier,
-as
-well
-as
-other
-properties
-</ins>
-of
-the
-<del class="diff-old">allowed
-values.
-For
-each
-JSON
-object
-</del>
-<ins class="diff-chg">value
-associated
-with
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins>
-</a>
-<del class="diff-old">that
-contains
-</del>
-<ins class="diff-chg">when
-it
-is
-used
-as
-key
-in
-</ins>
-a
-<del class="diff-old">@value
-key:
-It
-may
-</del>
-<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
-<ins class="diff-chg">node
-object
-</ins></a>.</p><p><ins class="diff-chg">
-An
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-<del class="diff-old">have
-</del>
-<ins class="diff-chg">be
-</ins>
-a
-<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
-<ins class="diff-new">JSON
-object
-</ins></a><ins class="diff-new">
-composed
-of
-zero
-or
-more
-keys
-from
-</ins><code><ins class="diff-new">
-@id
-</ins></code>,<code><ins class="diff-new">
-@reverse
-</ins></code>,<code><ins class="diff-new">
-@type
-</ins></code>,
-<code>
-@language
-</code>
-or
-<code>
-<del class="diff-old">@type
-property
-and
-must
-not
-</del>
-<ins class="diff-chg">@container
-</ins></code>.<ins class="diff-chg">
-An
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins></a><em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
-SHOULD
-NOT
-</ins>
-</em>
-<del class="diff-old">have
-</del>
-<ins class="diff-chg">contain
-</ins>
-any
-other
-<del class="diff-old">properties.
-It
-must
-</del>
-<ins class="diff-chg">keys.
-</ins></p><p><ins class="diff-chg">
-If
-an
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins></a><ins class="diff-chg">
-has
-an
-</ins><code><ins class="diff-chg">
-@reverse
-</ins></code><ins class="diff-chg">
-member,
-</ins><code><ins class="diff-chg">
-@id
-</ins></code>,<code><ins class="diff-chg">
-@type
-</ins></code>,<ins class="diff-chg">
-and
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><ins class="diff-chg">
-are
-</ins>
-not
-<ins class="diff-new">allowed.
-If
-an
-</ins><code><ins class="diff-new">
-@container
-</ins></code><ins class="diff-new">
-member
-exists,
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins>
-</em>
-<del class="diff-old">contain
-both
-</del>
-<ins class="diff-chg">be
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a><ins class="diff-chg">
-or
-</ins><code><ins class="diff-chg">
-@index
-</ins></code>.</p><p><ins class="diff-chg">
-If
-</ins>
-the
-<ins class="diff-new">term
-being
-defined
-is
-not
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-or
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-and
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
-active
-context
-</ins></a><ins class="diff-new">
-does
-not
-have
-an
-</ins>
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@vocab
-</ins>
-</code>
-<del class="diff-old">and
-</del>
-<ins class="diff-chg">mapping,
-the
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-include
-the
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@id
-</ins>
-</code>
-<del class="diff-old">keys
-at
-</del>
-<ins class="diff-chg">key.
-</ins></p><p><ins class="diff-chg">
-If
-</ins>
-the
-<del class="diff-old">same
-time.
-The
-value
-of
-</del>
-<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">
-<ins class="diff-chg">expanded
-term
-definition
-</ins></a><ins class="diff-chg">
-contains
-</ins>
-the
-<code>
-<del class="diff-old">@value
-</del>
-<ins class="diff-chg">@id
-</ins>
-</code>
-<del class="diff-old">key
-must
-</del>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-chg">keyword
-</ins></a>,<ins class="diff-chg">
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-be
-<a class="tref internalDFN" title="null" href="#dfn-null">
-<ins class="diff-new">null
-</ins></a>,<ins class="diff-new">
-an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>,
-a
-<del class="diff-old">string
-</del>
-<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
-<ins class="diff-chg">blank
-node
-identifier
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,
-or
-a
-<del class="diff-old">number.
-The
-value
-of
-</del>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-<ins class="diff-chg">term
-</ins></a>.</p><p><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins></a><ins class="diff-chg">
-contains
-</ins>
-the
-<code>
-<del class="diff-old">@language
-</del>
-<ins class="diff-chg">@type
-</ins>
-</code>
-<del class="diff-old">key
-must
-</del>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-chg">keyword
-</ins></a>,<ins class="diff-chg">
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-be
-<ins class="diff-chg">an
-</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
-blank
-node
-identifier
-</ins></a>,<ins class="diff-chg">
-a
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-or
-the
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a>,<a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>,
-<ins class="diff-new">or
-the
-one
-of
-the
-</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
-keywords
-</ins></a><code><ins class="diff-new">
-@id
-</ins>
-</code>
-or
-<del class="diff-old">a
-string
-</del>
-<code>
-<ins class="diff-chg">@vocab
-</ins></code>.</p><p><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins></a><ins class="diff-chg">
-contains
-the
-</ins><code><ins class="diff-chg">
-@language
-</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
-keyword
-</ins></a>,<ins class="diff-chg">
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-have
-the
-lexical
-form
-described
-</ins>
-in
-[
-<cite>
-<a class="bibref" href="#bib-BCP47">
-BCP47
-</a>
-</cite>
-]
-<del class="diff-old">format.
-The
-value
-of
-</del>
-<ins class="diff-chg">or
-be
-</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
-null
-</ins></a>.</p><p><ins class="diff-chg">
-If
-the
-</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
-expanded
-term
-definition
-</ins></a><ins class="diff-chg">
-contains
-the
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@container
-</ins>
-</code>
-<del class="diff-old">must
-</del>
-<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
-<ins class="diff-chg">keyword
-</ins></a>,<ins class="diff-chg">
-its
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins>
-</em>
-be
-<ins class="diff-new">either
-</ins><code><ins class="diff-new">
-@list
-</ins></code>,<code><ins class="diff-new">
-@set
-</ins></code>,<code><ins class="diff-new">
-@language
-</ins></code>,
-<code>
-<ins class="diff-new">@index
-</ins></code>,<ins class="diff-new">
-or
-be
-</ins><a class="tref internalDFN" title="null" href="#dfn-null">
-null
-</a>.
-<ins class="diff-new">If
-the
-value
-is
-</ins><code><ins class="diff-new">
-@language
-</ins>
-</code>,
-<ins class="diff-new">when
-the
-</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
-term
-</ins></a><ins class="diff-new">
-is
-used
-outside
-of
-the
-</ins><code><ins class="diff-new">
-@context
-</ins></code>,<ins class="diff-new">
-the
-associated
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
-MUST
-</ins></em><ins class="diff-new">
-be
-</ins>
-a
-<a class="tref internalDFN" title="language-map" href="#dfn-language-map">
-<ins class="diff-new">language
-map
-</ins></a>.<ins class="diff-new">
-If
-the
-value
-is
-</ins><code><ins class="diff-new">
-@index
-</ins></code>,<ins class="diff-new">
-when
-the
-</ins>
-<a class="tref internalDFN" title="term" href="#dfn-term">
-term
-<del class="diff-old">,
-</del>
-</a>
-<ins class="diff-chg">is
-used
-outside
-of
-the
-</ins><code><ins class="diff-chg">
-@context
-</ins></code>,<ins class="diff-chg">
-the
-associated
-value
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-be
-an
-</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
-index
-map
-</ins></a>.</p><p><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
-Terms
-</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
-MUST
-NOT
-</ins></em><ins class="diff-chg">
-be
-used
-in
-</ins>
-a
-<del class="diff-old">compact
-IRI
-</del>
-<ins class="diff-chg">circular
-manner.
-That
-is,
-the
-definition
-of
-a
-term
-cannot
-depend
-on
-the
-definition
-of
-another
-term
-if
-that
-other
-term
-also
-depends
-on
-the
-first
-term.
-</ins></p><p><ins class="diff-chg">
-See
-</ins><a class="sectionRef sec-ref" href="#the-context"><ins class="diff-chg">
-section
-5.1
-The
-Context
-</ins></a><ins class="diff-chg">
-for
-further
-discussion
-on
-contexts.
-</ins></p></section></section><section class="appendix normative" id="relationship-to-rdf"><h2>
-<del class="diff-old">,
-an
-</del>
-<span class="secno">
-<ins class="diff-chg">C.
-</ins></span><ins class="diff-chg">
-Relationship
-to
-RDF
-</ins></h2><p><ins class="diff-chg">
-The
-RDF
-data
-model,
-as
-outlined
-in
-[
-</ins><cite>
-<del class="diff-old">IRI
-</del>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-chg">RDF11-CONCEPTS
-</ins></a>
-<del class="diff-old">,
-a
-JSON
-object
-,
-or
-</del>
-</cite>
-<ins class="diff-chg">],
-is
-</ins>
-an
-<del class="diff-old">array
-containing
-</del>
-<ins class="diff-chg">abstract
-syntax
-for
-representing
-</ins>
-a
-<del class="diff-old">combination
-</del>
-<ins class="diff-chg">directed
-graph
-of
-information.
-It
-is
-a
-subset
-</ins>
-of
-<a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model">
-<ins class="diff-new">JSON-LD's
-data
-model
-</ins></a><ins class="diff-new">
-with
-a
-few
-additional
-constraints.
-The
-differences
-between
-</ins>
-the
-<del class="diff-old">allowed
-values.
-</del>
-<ins class="diff-chg">two
-data
-models
-are:
-</ins></p><ul><li><ins class="diff-chg">
-In
-JSON-LD
-</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
-graph
-names
-</ins></a><ins class="diff-chg">
-can
-be
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a><ins class="diff-chg">
-whereas
-in
-RDF
-graph
-names
-have
-to
-be
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>.
-</li>
-<li>
-<ins class="diff-chg">In
-JSON-LD
-</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
-properties
-</ins></a><ins class="diff-chg">
-can
-be
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a><ins class="diff-chg">
-whereas
-in
-RDF
-properties
-(predicates)
-have
-to
-be
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>.
-</li>
-<li>
-In
-<ins class="diff-new">JSON-LD
-lists
-are
-part
-of
-</ins>
-the
-<del class="diff-old">body
-</del>
-<ins class="diff-chg">data
-model
-whereas
-in
-RDF
-they
-are
-part
-</ins>
-of
-a
-<ins class="diff-new">vocabulary,
-namely
-[
-</ins><cite><a class="bibref" href="#bib-RDF-SCHEMA"><ins class="diff-new">
-RDF-SCHEMA
-</ins></a></cite><ins class="diff-new">
-].
-</ins></li><li><ins class="diff-new">
-RDF
-values
-are
-either
-typed
-</ins><em><ins class="diff-new">
-literals
-</ins></em><ins class="diff-new">
-(
-</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-new">
-typed
-values
-</ins></a><ins class="diff-new">
-)
-or
-</ins><em><ins class="diff-new">
-language-tagged
-strings
-</ins></em><ins class="diff-new">
-(
-</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-new">
-language-tagged
-strings
-</ins></a><ins class="diff-new">
-)
-whereas
-</ins>
-JSON-LD
-<del class="diff-old">document,
-</del>
-<ins class="diff-chg">also
-supports
-JSON's
-native
-data
-types,
-i.e.,
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-number
-</ins></a>,<a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
-strings
-</ins></a>,<ins class="diff-chg">
-and
-</ins>
-the
-<del class="diff-old">value
-</del>
-<ins class="diff-chg">boolean
-values
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a>.<ins class="diff-chg">
-The
-JSON-LD
-Processing
-Algorithms
-and
-API
-specification
-[
-</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
-JSON-LD-API
-</ins></a></cite><ins class="diff-chg">
-]
-defines
-the
-conversion
-rules
-between
-JSON's
-native
-data
-types
-and
-RDF's
-counterparts
-to
-allow
-full
-round-tripping.
-</ins></li></ul><p><ins class="diff-chg">
-Summarized
-these
-differences
-mean
-that
-JSON-LD
-is
-capable
-</ins>
-of
-<del class="diff-old">@type
-must
-</del>
-<ins class="diff-chg">serializing
-any
-RDF
-graph
-or
-dataset
-and
-most,
-but
-</ins>
-not
-<ins class="diff-chg">all,
-JSON-LD
-documents
-can
-</ins>
-be
-<del class="diff-old">@id
-.
-This
-</del>
-<ins class="diff-chg">directly
-transformed
-to
-RDF.
-It
-</ins>
-is
-<del class="diff-old">in
-contrast
-</del>
-<ins class="diff-chg">possible
-</ins>
-to
-<del class="diff-old">the
-use
-</del>
-<ins class="diff-chg">work
-around
-this
-restriction,
-when
-converting
-JSON-LD
-to
-RDF,
-by
-converting
-</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
-blank
-nodes
-</ins></a><ins class="diff-chg">
-used
-as
-</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
-graph
-names
-</ins></a><ins class="diff-chg">
-or
-</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
-properties
-</ins></a><ins class="diff-chg">
-to
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a>,<ins class="diff-chg">
-minting
-new
-&quot;Skolem
-IRIs&quot;
-as
-per
-</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization"><ins class="diff-chg">
-Replacing
-Blank
-Nodes
-with
-IRIs
-</ins></a></cite>
-of
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">[
-</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
-RDF11-CONCEPTS
-</ins></a></cite><ins class="diff-chg">
-].
-A
-complete
-description
-of
-the
-algorithms
-to
-convert
-from
-RDF
-to
-JSON-LD
-and
-from
-JSON-LD
-to
-RDF
-is
-included
-</ins>
-in
-the
-<del class="diff-old">@context
-,
-where
-this
-</del>
-<ins class="diff-chg">JSON-LD
-Processing
-Algorithms
-and
-API
-specification
-[
-</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
-JSON-LD-API
-</ins></a></cite><ins class="diff-chg">
-].
-</ins></p><p><ins class="diff-chg">
-Even
-though
-JSON-LD
-serializes
-RDF
-datasets,
-it
-can
-also
-be
-used
-as
-a
-RDF
-graph
-source.
-In
-that
-case,
-a
-consumer
-</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
-MUST
-</ins></em><ins class="diff-chg">
-only
-use
-the
-default
-graph
-and
-ignore
-all
-named
-graphs.
-This
-allows
-servers
-to
-expose
-data
-in,
-e.g.,
-both
-Turtle
-and
-JSON-LD
-using
-content
-negotiation.
-</ins></p><div class="note"><div class="note-title"><span><ins class="diff-chg">
-Note
-</ins></span></div><p class=""><ins class="diff-chg">
-Publishers
-supporting
-both
-dataset
-and
-graph
-syntaxes
-have
-to
-ensure
-that
-the
-primary
-data
-</ins>
-is
-<del class="diff-old">allowed.
-</del>
-<ins class="diff-chg">stored
-in
-the
-default
-graph
-to
-enable
-consumers
-that
-do
-not
-support
-datasets
-to
-process
-the
-information.
-</ins></p>
-</div>
-<section class="informative" id="transformation-from-json-ld-to-rdf">
-<h3>
-<span class="secno">
-<del class="diff-old">B.
-</del>
-<ins class="diff-chg">C.1
-</ins>
-</span>
-<del class="diff-old">Relationship
-</del>
-<ins class="diff-chg">Transformation
-from
-JSON-LD
-</ins>
-to
-<del class="diff-old">other
-</del>
-RDF
-<del class="diff-old">Formats
-</del>
-</h3>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<del class="diff-old">Issue
-6
-</del>
-<p>
-The
-<del class="diff-old">intent
-of
-the
-Working
-Group
-and
-the
-Editors
-</del>
-<ins class="diff-chg">process
-</ins>
-of
-<del class="diff-old">this
-specification
-is
-to
-eventually
-align
-terminology
-used
-in
-this
-</del>
-<ins class="diff-chg">turning
-a
-JSON-LD
-</ins>
-document
-<del class="diff-old">with
-</del>
-<ins class="diff-chg">depends
-on
-executing
-</ins>
-the
-<del class="diff-old">terminology
-used
-</del>
-<ins class="diff-chg">algorithms
-defined
-</ins>
-in
-<del class="diff-old">the
-</del>
-<cite>
-<a href="../json-ld-api/#rdf-conversion-algorithms">
-RDF
-<del class="diff-old">Concepts
-document
-</del>
-<ins class="diff-chg">Conversion
-Algorithms
-</ins></a></cite><ins class="diff-chg">
-in
-the
-JSON-LD
-Processing
-Algorithms
-and
-API
-specification
-</ins>
-[
-<cite>
-<del class="diff-old">RDF-CONCEPTS
-</del>
-<a class="bibref" href="#bib-JSON-LD-API">
-<ins class="diff-chg">JSON-LD-API
-</ins>
-</a>
-</cite>
-<del class="diff-old">]
-to
-</del>
-<ins class="diff-chg">].
-It
-is
-beyond
-</ins>
-the
-<del class="diff-old">extent
-to
-which
-it
-makes
-sense
-</del>
-<ins class="diff-chg">scope
-of
-this
-document
-</ins>
-to
-<del class="diff-old">do
-so.
-In
-general,
-if
-there
-</del>
-<ins class="diff-chg">detail
-these
-algorithms
-any
-further,
-but
-a
-summary
-of
-the
-necessary
-operations
-</ins>
-is
-<del class="diff-old">an
-analogue
-</del>
-<ins class="diff-chg">provided
-</ins>
-to
-<del class="diff-old">terminology
-used
-in
-</del>
-<ins class="diff-chg">illustrate
-the
-process.
-</ins></p><p><ins class="diff-chg">
-The
-procedure
-involves
-the
-following
-steps:
-</ins></p><ol><li><ins class="diff-chg">
-Expand
-the
-JSON-LD
-document,
-removing
-any
-context;
-</ins>
-this
-<del class="diff-old">document
-</del>
-<ins class="diff-chg">ensures
-that
-properties,
-types,
-and
-values
-are
-given
-their
-full
-representation
-as
-</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
-IRIs
-</ins></a><ins class="diff-chg">
-and
-expanded
-values.
-Expansion
-is
-discussed
-further
-</ins>
-in
-<a class="sectionRef sec-ref" href="#expanded-document-form">
-<ins class="diff-new">section
-6.17
-Expanded
-Document
-Form
-</ins></a>.</li><li><ins class="diff-new">
-Flatten
-</ins>
-the
-<del class="diff-old">RDF
-Concepts
-</del>
-document,
-<ins class="diff-new">which
-turns
-</ins>
-the
-<del class="diff-old">preference
-</del>
-<ins class="diff-chg">document
-into
-an
-array
-of
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-objects
-</ins></a>.<ins class="diff-chg">
-Flattening
-</ins>
-is
-<del class="diff-old">to
-use
-the
-terminology
-</del>
-<ins class="diff-chg">discussed
-further
-</ins>
-in
-<del class="diff-old">the
-</del>
-<a class="sectionRef sec-ref" href="#flattened-document-form">
-<ins class="diff-chg">section
-6.19
-Flattened
-Document
-Form
-</ins></a>.</li><li><ins class="diff-chg">
-Turn
-each
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-into
-a
-series
-of
-</ins><a class="tref externalDFN" title="rdf-triples" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">
-RDF
-<del class="diff-old">Concepts
-document.
-</del>
-<ins class="diff-chg">triples
-</ins></a>.</li></ol><p><ins class="diff-chg">
-For
-example,
-consider
-the
-following
-JSON-LD
-document
-in
-compact
-form:
-</ins>
-</p>
-    <div class="example"><div class="example-title"><span>Example 63</span>: Sample JSON-LD document</div><pre class="example">{
-<ins class="diff-new">  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;knows&quot;: [
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;
-    },
-    {
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    }
-  ]
-}
-</ins></pre>
-</div>
-<p>
-<ins class="diff-new">Running
-the
-</ins>
-JSON-LD
-<ins class="diff-new">Expansion
-and
-Flattening
-algorithms
-against
-the
-JSON-LD
-input
-document
-in
-the
-example
-above
-would
-result
-in
-the
-following
-output:
-</ins></p>    <div class="example"><div class="example-title"><span>Example 64</span>: Flattened and expanded form for the previous example</div><pre class="example">[<ins class="diff-new">
-  {
-    &quot;@id&quot;: &quot;_:b0&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Dave Longley&quot;
-  },
-  {
-    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Manu Sporny&quot;
-  },
-  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Markus Lanthaler&quot;,
-    &quot;http://xmlns.com/foaf/0.1/knows&quot;: [
-      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
-      { &quot;@id&quot;: &quot;_:b0&quot; }
-    ]
-  }
-]
-</ins></pre></div><p><ins class="diff-new">
-Transforming
-this
-to
-RDF
-now
-</ins>
-is
-a
-<del class="diff-old">specification
-for
-representing
-Linked
-Data
-in
-JSON.
-A
-common
-way
-</del>
-<ins class="diff-chg">straightforward
-process
-</ins>
-of
-<del class="diff-old">working
-with
-Linked
-Data
-is
-through
-RDF
-,
-the
-Resource
-Description
-Framework.
-</del>
-<ins class="diff-chg">turning
-each
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins></a><ins class="diff-chg">
-into
-one
-or
-more
-</ins>
-RDF
-<ins class="diff-new">triples.
-This
-</ins>
-can
-be
-expressed
-<del class="diff-old">using
-JSON-LD
-by
-associating
-JSON-LD
-concepts
-such
-</del>
-<ins class="diff-chg">in
-Turtle
-</ins>
-as
-<del class="diff-old">@id
-and
-@type
-with
-the
-equivalent
-</del>
-<ins class="diff-chg">follows:
-</ins></p>    <div class="example"><div class="example-title"><span>Example 65</span>: Turtle representation of expanded/flattend document</div><pre class="example">_:b0 &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Dave Longley&quot; .
-<del class="diff-old">IRI
-</del>
-<ins class="diff-chg">&lt;http://manu.sporny.org/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Manu Sporny&quot; .
-</ins>
-<del class="diff-old">s
-in
-RDF.
-Further
-information
-about
-</del>
-<ins class="diff-chg">&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Markus Lanthaler&quot; ;
-&lt;http://xmlns.com/foaf/0.1/knows&gt;
-&lt;http://manu.sporny.org/&gt;,
-_:b0
-.
-</ins></pre></div><p><ins class="diff-chg">
-The
-process
-of
-turning
-</ins>
-RDF
-<del class="diff-old">may
-</del>
-<ins class="diff-chg">into
-JSON-LD
-can
-</ins>
-be
-<del class="diff-old">found
-in
-</del>
-<ins class="diff-chg">thought
-of
-as
-</ins>
-the
-<del class="diff-old">[
-RDF-PRIMER
-</del>
-<ins class="diff-chg">inverse
-of
-this
-last
-step,
-creating
-an
-expanded
-JSON-LD
-document
-closely
-matching
-the
-triples
-from
-RDF,
-using
-a
-single
-</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
-node
-object
-</ins>
-</a>
-<ins class="diff-new">for
-all
-triples
-having
-a
-common
-subject,
-and
-a
-single
-</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-new">
-property
-</ins></a><ins class="diff-new">
-for
-those
-triples
-also
-having
-a
-common
-predicate.
-</ins></p></section></section><section class="appendix informative" id="relationship-to-other-linked-data-formats"><h2><span class="secno"><ins class="diff-new">
-D.
-</ins></span><ins class="diff-new">
-Relationship
-to
-Other
-Linked
-Data
-Formats
-</ins></h2><p><em><ins class="diff-new">
-This
-section
-is
-non-normative.
-</ins></em>
-<del class="diff-old">].
-</del>
-</p>
-<p>
-The
-JSON-LD
-<del class="diff-old">markup
-</del>
-examples
-below
-demonstrate
-how
-JSON-LD
-can
-be
-used
-to
-express
-semantic
-data
-marked
-up
-in
-other
-<del class="diff-old">languages
-and
-</del>
-<ins class="diff-chg">linked
-</ins>
-data
-<del class="diff-old">models
-</del>
-<ins class="diff-chg">formats
-</ins>
-such
-as
-<del class="diff-old">RDF,
-</del>
-Turtle,
-RDFa,
-Microformats,
-and
-Microdata.
-These
-sections
-are
-merely
-provided
-as
-evidence
-that
-JSON-LD
-is
-very
-flexible
-in
-what
-it
-can
-express
-across
-different
-<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
-Linked
-Data
-</a>
-approaches.
-<del class="diff-old">Further
-information
-on
-transforming
-JSON-LD
-into
-RDF
-are
-detailed
-in
-the
-[
-JSON-LD-API
-].
-</del>
-</p>
-<section class="informative" id="turtle">
-<h3>
-<span class="secno">
-<del class="diff-old">B.1
-</del>
-<ins class="diff-chg">D.1
-</ins>
-</span>
-<del class="diff-old">RDF
-</del>
-<ins class="diff-chg">Turtle
-</ins>
-</h3>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-The
-<del class="diff-old">RDF
-data
-model,
-as
-outlined
-in
-[
-RDF-CONCEPTS
-],
-is
-an
-abstract
-syntax
-for
-representing
-a
-directed
-graph
-of
-information.
-JSON-LD
-is
-capable
-of
-serializing
-any
-RDF
-graph,
-and
-performing
-full
-RDF
-to
-JSON-LD
-to
-RDF
-round-tripping.
-A
-complete
-description
-of
-how
-JSON-LD
-maps
-to
-RDF
-and
-algorithms
-detailing
-how
-one
-can
-convert
-from
-RDF
-to
-JSON-LD
-and
-from
-JSON-LD
-to
-RDF
-are
-included
-in
-the
-JSON-LD
-API
-[
-JSON-LD-API
-]
-specification.
-B.2
-Turtle
-The
-</del>
-following
-are
-examples
-of
-converting
-RDF
-expressed
-in
-<ins class="diff-new">Turtle
-</ins>
-[
-<cite>
-<del class="diff-old">TURTLE-TR
-</del>
-<a class="bibref" href="#bib-TURTLE">
-<ins class="diff-chg">TURTLE
-</ins>
-</a>
-</cite>
-]
-into
-JSON-LD.
-</p>
-<del class="diff-old">B.2.1
-</del>
-<section>
-<h4 id="prefix-definitions">
-Prefix
-definitions
-</h4>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-The
-JSON-LD
-context
-has
-direct
-equivalents
-for
-the
-Turtle
-<code>
-@prefix
-</code>
-declaration:
-</p>
-<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
-</del>
-      <div class="example"><div class="example-title"><span>Example 66</span>: A set of statements serialized in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
-&lt;http://manu.sporny.org/i/public&gt; a foaf:Person;
-  foaf:name &quot;Manu Sporny&quot;;
-foaf:homepage
-&lt;http://manu.sporny.org/&gt;
-.
-</pre>
-</div>
-<del class="diff-old">{
-</del>
-      <div class="example"><div class="example-title"><span>Example 67</span>: The same set of statements serialized in JSON-LD</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-  },
-  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
-  &quot;foaf:homepage&quot;: { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
-}
-</pre>
-</div>
-<del class="diff-old">Note
-JSON-LD
-has
-no
-equivalent
-for
-the
-Turtle
-@base
-declaration.
-Instead,
-authors
-may
-use
-a
-prefix
-definition
-to
-resolve
-relative
-IRI
-s:
-{
-  &quot;@context&quot;:
-  {
-
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-  },
-  &quot;@id&quot;: ,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
-  &quot;foaf:homepage&quot;: { &quot;@id&quot;: }
-}
-B.2.2
-</del>
-</section>
-<section>
-<h4 id="embedding-1">
-Embedding
-</h4>
-<p>
-Both
-Turtle
-and
-JSON-LD
-allow
-<del class="diff-old">embedding
-of
-objects,
-</del>
-<ins class="diff-chg">embedding,
-</ins>
-although
-Turtle
-only
-allows
-embedding
-of
-<del class="diff-old">objects
-which
-use
-unlabeled
-node
-identifiers.
-</del>
-<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
-<ins class="diff-chg">blank
-nodes
-</ins></a>.
-</p>
-<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
-</del>
-      <div class="example"><div class="example-title"><span>Example 68</span>: Embedding in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
-&lt;http://manu.sporny.org/i/public&gt;
-  a foaf:Person;
-  foaf:name &quot;Manu Sporny&quot;;
-foaf:knows
-[
-a
-foaf:Person;
-foaf:name
-&quot;Gregg
-Kellogg&quot;
-]
-.
-</pre>
-</div>
-<del class="diff-old">{
-</del>
-      <div class="example"><div class="example-title"><span>Example 69</span>: Same embedding example in JSON-LD</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-  },
-  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
-  &quot;foaf:knows&quot;:
-  {
-    &quot;@type&quot;: &quot;foaf:Person&quot;,
-    &quot;foaf:name&quot;: &quot;Gregg Kellogg&quot;
-  }
-}
-</pre>
-</div>
-</section>
-<section>
-<h4 id="conversion-of-native-data-types">
-<ins class="diff-chg">Conversion
-of
-native
-data
-types
-</ins></h4><p><ins class="diff-chg">
-In
-JSON-LD
-numbers
-and
-boolean
-values
-are
-native
-data
-types.
-While
-Turtle
-has
-a
-shorthand
-syntax
-to
-express
-such
-values,
-RDF's
-abstract
-syntax
-requires
-that
-numbers
-and
-boolean
-values
-are
-represented
-as
-typed
-literals.
-Thus,
-to
-allow
-full
-round-tripping,
-the
-JSON-LD
-Processing
-Algorithms
-and
-API
-specification
-[
-</ins><cite>
-<del class="diff-old">B.2.3
-</del>
-<a class="bibref" href="#bib-JSON-LD-API">
-<ins class="diff-chg">JSON-LD-API
-</ins></a></cite><ins class="diff-chg">
-]
-defines
-conversion
-rules
-between
-JSON-LD's
-native
-data
-types
-and
-RDF's
-counterparts.
-</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
-Numbers
-</ins></a><ins class="diff-chg">
-without
-fractions
-are
-converted
-to
-</ins><code><ins class="diff-chg">
-xsd:integer
-</ins></code><ins class="diff-chg">
--typed
-literals,
-numbers
-with
-fractions
-to
-</ins><code><ins class="diff-chg">
-xsd:double
-</ins></code><ins class="diff-chg">
--typed
-literals
-and
-the
-two
-boolean
-values
-</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
-true
-</ins></a><ins class="diff-chg">
-and
-</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
-false
-</ins></a><ins class="diff-chg">
-to
-a
-</ins><code><ins class="diff-chg">
-xsd:boolean
-</ins></code><ins class="diff-chg">
--typed
-literal.
-All
-typed
-literals
-are
-in
-canonical
-lexical
-form.
-</ins></p>      <div class="example"><div class="example-title"><span>Example 70</span>: JSON-LD using native data types for numbers and boolean values</div><pre class="example">{<ins class="diff-chg">
-  &quot;@context&quot;:
-  {
-    &quot;ex&quot;: &quot;http://example.com/vocab#&quot;
-  },
-  &quot;@id&quot;: &quot;http://example.com/&quot;,
-  &quot;ex:numbers&quot;: [ 14, 2.78 ],
-  &quot;ex:booleans&quot;: [ true, false ]
-}
-</ins></pre></div>      <div class="example"><div class="example-title"><span>Example 71</span>: Same example in Turtle using typed literals</div><pre class="example">@prefix ex: &lt;http://example.com/vocab#&gt; .<ins class="diff-chg">
-@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
-&lt;http://example.com/&gt;
-  ex:numbers &quot;14&quot;^^xsd:integer, &quot;2.78E0&quot;^^xsd:double ;
-ex:booleans
-&quot;true&quot;^^xsd:boolean,
-&quot;false&quot;^^xsd:boolean
-.
-</ins></pre></div></section><section><h4 id="lists">
-Lists
-</h4>
-<p>
-Both
-JSON-LD
-and
-Turtle
-can
-represent
-sequential
-lists
-of
-values.
-</p>
-<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
-</del>
-      <div class="example"><div class="example-title"><span>Example 72</span>: A list of values in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
-&lt;http://example.org/people#joebob&gt; a foaf:Person;
-  foaf:name &quot;Joe Bob&quot;;
-foaf:nick
-(
-&quot;joe&quot;
-&quot;bob&quot;
-&quot;jaybee&quot;
-)
-.
-</pre>
-</div>
-<del class="diff-old">{
-</del>
-      <div class="example"><div class="example-title"><span>Example 73</span>: Same example with a list of values in JSON-LD</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-  },
-  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Joe Bob&quot;,
-  &quot;foaf:nick&quot;:
-  {
-    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
-  }
-}
-</pre>
-</div>
-</section>
-</section>
-<section class="informative" id="rdfa">
-<h3>
-<span class="secno">
-<del class="diff-old">B.3
-</del>
-<ins class="diff-chg">D.2
-</ins>
-</span>
-RDFa
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-The
-following
-example
-describes
-three
-people
-with
-their
-respective
-names
-and
-<del class="diff-old">homepages.
-</del>
-<ins class="diff-chg">homepages
-in
-RDFa
-[
-</ins><cite><a class="bibref" href="#bib-RDFA-CORE"><ins class="diff-chg">
-RDFA-CORE
-</ins></a></cite><ins class="diff-chg">
-].
-</ins>
-</p>
-<del class="diff-old">&gt;
-</del>
-    <div class="example"><div class="example-title"><span>Example 74</span>: RDFa fragment that describes three people</div><pre class="example">&lt;div <span class="diff">prefix=&quot;foaf: http://xmlns.com/foaf/0.1/&quot;</span>&gt;
-   &lt;ul&gt;
-      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
-<del class="diff-old">        &lt;a &gt;Bob&lt;/a&gt;
-</del>
-<ins class="diff-chg">        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/bob/&quot; property=&quot;foaf:name&quot;</span>&gt;Bob&lt;/a&gt;
-</ins>
-      &lt;/li&gt;
-      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
-<del class="diff-old">        &lt;a &gt;Eve&lt;/a&gt;
-</del>
-<ins class="diff-chg">        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/eve/&quot; property=&quot;foaf:name&quot;</span>&gt;Eve&lt;/a&gt;
-</ins>
-      &lt;/li&gt;
-      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
-<del class="diff-old">        &lt;a &gt;Manu&lt;/a&gt;
-</del>
-<ins class="diff-chg">        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/manu/&quot; property=&quot;foaf:name&quot;</span>&gt;Manu&lt;/a&gt;
-</ins>
-      &lt;/li&gt;
-   &lt;/ul&gt;
-&lt;/div&gt;
-</pre>
-</div>
-<p>
-An
-example
-JSON-LD
-implementation
-using
-a
-single
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-is
-described
-below.
-</p>
-<del class="diff-old">{
-</del>
-    <div class="example"><div class="example-title"><span>Example 75</span>: Same description in JSON-LD (context shared among node objects)</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-  },
-  &quot;@graph&quot;:
-  [
-    {
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;foaf:homepage&quot;: &quot;http://example.com/bob/&quot;,
-      &quot;foaf:name&quot;: &quot;Bob&quot;
-    },
-    {
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;foaf:homepage&quot;: &quot;http://example.com/eve/&quot;,
-      &quot;foaf:name&quot;: &quot;Eve&quot;
-    },
-    {
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;foaf:homepage&quot;: &quot;http://example.com/manu/&quot;,
-      &quot;foaf:name&quot;: &quot;Manu&quot;
-    }
-  ]
-}
-</pre>
-</div>
-</section>
-<section class="informative" id="microformats">
-<h3>
-<span class="secno">
-<del class="diff-old">B.4
-</del>
-<ins class="diff-chg">D.3
-</ins>
-</span>
-Microformats
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-The
-following
-example
-uses
-a
-simple
-Microformats
-hCard
-example
-to
-express
-how
-<del class="diff-old">the
-Microformat
-is
-</del>
-<ins class="diff-chg">Microformats
-[
-</ins><cite><a class="bibref" href="#bib-MICROFORMATS"><ins class="diff-chg">
-MICROFORMATS
-</ins></a></cite><ins class="diff-chg">
-]
-are
-</ins>
-represented
-in
-JSON-LD.
-</p>
-<del class="diff-old">&lt;div class=&quot;vcard&quot;&gt;
-</del>
-    <div class="example"><div class="example-title"><span>Example 76</span>: HTML fragment with a simple Microformats hCard</div><pre class="example">&lt;div class=&quot;vcard&quot;&gt;
- &lt;a class=&quot;url fn&quot; href=&quot;http://tantek.com/&quot;&gt;Tantek Çelik&lt;/a&gt;
-&lt;/div&gt;
-</pre>
-</div>
-<p>
-The
-representation
-of
-the
-hCard
-expresses
-the
-Microformat
-terms
-in
-the
-<a class="tref internalDFN" title="context" href="#dfn-context">
-context
-</a>
-and
-uses
-them
-directly
-for
-the
-<code>
-url
-</code>
-and
-<code>
-fn
-</code>
-properties.
-Also
-note
-that
-the
-Microformat
-to
-JSON-LD
-processor
-has
-generated
-the
-proper
-URL
-type
-for
-<code>
-http://tantek.com/
-</code>.
-</p>
-<del class="diff-old">{
-</del>
-    <div class="example"><div class="example-title"><span>Example 77</span>: Same hCard representation in JSON-LD</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;vcard&quot;: &quot;http://microformats.org/profile/hcard#vcard&quot;,
-    &quot;url&quot;:
-    {
-      &quot;@id&quot;: &quot;http://microformats.org/profile/hcard#url&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-    &quot;fn&quot;: &quot;http://microformats.org/profile/hcard#fn&quot;
-  },
-  &quot;@type&quot;: &quot;vcard&quot;,
-  &quot;url&quot;: &quot;http://tantek.com/&quot;,
-  &quot;fn&quot;: &quot;Tantek Çelik&quot;
-}
-</pre>
-</div>
-</section>
-<section class="informative" id="microdata">
-<h3>
-<span class="secno">
-<del class="diff-old">B.5
-</del>
-<ins class="diff-chg">D.4
-</ins>
-</span>
-Microdata
-</h3>
-<p>
-<em>
-<ins class="diff-new">This
-section
-is
-non-normative.
-</ins></em></p>
-<p>
-The
-<del class="diff-old">microdata
-</del>
-<ins class="diff-chg">HTML
-Microdata
-[
-</ins><cite><a class="bibref" href="#bib-MICRODATA"><ins class="diff-chg">
-MICRODATA
-</ins></a></cite><ins class="diff-chg">
-]
-</ins>
-example
-below
-expresses
-book
-information
-as
-a
-<del class="diff-old">microdata
-</del>
-<ins class="diff-chg">Microdata
-</ins>
-Work
-item.
-</p>
-<del class="diff-old">&lt;dl itemscope
-</del>
-    <div class="example"><div class="example-title"><span>Example 78</span>: HTML fragments that describes a book using microdata</div><pre class="example">&lt;dl itemscope
-    itemtype=&quot;http://purl.org/vocab/frbr/core#Work&quot;
-    itemid=&quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;&gt;
- &lt;dt&gt;Title&lt;/dt&gt;
- &lt;dd&gt;&lt;cite itemprop=&quot;http://purl.org/dc/terms/title&quot;&gt;Just a Geek&lt;/cite&gt;&lt;/dd&gt;
- &lt;dt&gt;By&lt;/dt&gt;
- &lt;dd&gt;&lt;span itemprop=&quot;http://purl.org/dc/terms/creator&quot;&gt;Wil Wheaton&lt;/span&gt;&lt;/dd&gt;
- &lt;dt&gt;Format&lt;/dt&gt;
- &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
-     itemscope
-     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
-     itemid=&quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;&gt;
-  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/BOOK&quot;&gt;
-  Print
- &lt;/dd&gt;
- &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
-     itemscope
-     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
-     itemid=&quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;&gt;
-  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/EBOOK&quot;&gt;
-  Ebook
- &lt;/dd&gt;
-&lt;/dl&gt;
-</pre>
-</div>
-<p>
-Note
-that
-the
-JSON-LD
-representation
-of
-the
-Microdata
-information
-stays
-true
-to
-the
-desires
-of
-the
-Microdata
-community
-to
-avoid
-contexts
-and
-instead
-refer
-to
-items
-by
-their
-full
-<a class="tref internalDFN" title="iri" href="#dfn-iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-</p>
-<del class="diff-old">[
-</del>
-    <div class="example"><div class="example-title"><span>Example 79</span>: Same book description in JSON-LD (avoiding contexts)</div><pre class="example">[
-  {
-    &quot;@id&quot;: &quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;,
-    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Work&quot;,
-    &quot;http://purl.org/dc/terms/title&quot;: &quot;Just a Geek&quot;,
-    &quot;http://purl.org/dc/terms/creator&quot;: &quot;Whil Wheaton&quot;,
-    &quot;http://purl.org/vocab/frbr/core#realization&quot;:
-    [
-      &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
-      &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;
-    ]
-  },
-  {
-    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
-    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
-    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/BOOK&quot;
-  },
-  {
-    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;,
-    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
-    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/EBOOK&quot;
-  }
-]
-</pre>
-</div>
-</section>
-</section>
-<section class="appendix normative" id="iana-considerations">
-<h2>
-<span class="secno">
-<del class="diff-old">C.
-</del>
-<ins class="diff-chg">E.
-</ins>
-</span>
-IANA
-Considerations
-</h2>
-<del class="diff-old">This
-section
-is
-non-normative.
-</del>
-<p>
-This
-section
-is
-included
-<del class="diff-old">merely
-</del>
-for
-<del class="diff-old">standards
-</del>
-community
-review
-and
-will
-be
-submitted
-to
-the
-Internet
-Engineering
-Steering
-Group
-<del class="diff-old">if
-</del>
-<ins class="diff-chg">(IESG)
-as
-part
-of
-the
-Last
-Call
-announcement
-for
-</ins>
-this
-<del class="diff-old">specification
-becomes
-a
-W3C
-Recommendation.
-</del>
-<ins class="diff-chg">specification.
-</ins>
-</p>
-<h2 id="application-ld-json">
-application/ld+json
-</h2>
-<dl>
-<dt>
-Type
-name:
-</dt>
-<dd>
-application
-</dd>
-<dt>
-Subtype
-name:
-</dt>
-<dd>
-ld+json
-</dd>
-<dt>
-Required
-parameters:
-</dt>
-<dd>
-None
-</dd>
-<dt>
-Optional
-parameters:
-</dt>
-<dd>
-<dl>
-<dt>
-<code>
-<del class="diff-old">form
-</del>
-<ins class="diff-chg">profile
-</ins>
-</code>
-</dt>
-<dd>
-<del class="diff-old">Determines
-</del>
-<p>
-<ins class="diff-chg">A
-a
-non-empty
-list
-of
-space-separated
-URI-encoded
-URIs
-identifying
-specific
-constraints
-or
-conventions
-that
-apply
-to
-a
-JSON-LD
-document
-according
-[
-</ins><cite><a class="bibref" href="#bib-RFC6906"><ins class="diff-chg">
-RFC6906
-</ins></a></cite><ins class="diff-chg">
-].
-A
-profile
-does
-not
-change
-</ins>
-the
-<del class="diff-old">serialization
-form
-for
-</del>
-<ins class="diff-chg">semantics
-of
-</ins>
-the
-<del class="diff-old">JSON-LD
-document.
-</del>
-<ins class="diff-chg">resource
-representation
-when
-processed
-without
-profile
-knowledge,
-so
-that
-clients
-both
-with
-and
-without
-knowledge
-of
-a
-profiled
-resource
-can
-safely
-use
-the
-same
-representation.
-</ins>
-The
-<del class="diff-old">only
-valid
-value
-at
-</del>
-<code>
-<ins class="diff-chg">profile
-</ins></code><ins class="diff-chg">
-parameter
-may
-be
-used
-by
-clients
-to
-express
-their
-preferences
-in
-</ins>
-the
-<del class="diff-old">moment
-</del>
-<ins class="diff-chg">content
-negotiation
-process.
-It
-</ins>
-is
-<em class="rfc2119" title="RECOMMENDED">
-<ins class="diff-new">RECOMMENDED
-</ins></em><ins class="diff-new">
-that
-profile
-URIs
-are
-dereferenceable
-and
-provide
-useful
-documentation
-at
-that
-URI.
-For
-more
-information
-and
-background
-please
-refer
-to
-[
-</ins><cite><a class="bibref" href="#bib-RFC6906"><ins class="diff-new">
-RFC6906
-</ins></a></cite><ins class="diff-new">
-].
-</ins></p><p><ins class="diff-new">
-This
-specification
-defines
-three
-values
-for
-the
-</ins>
-<code>
-<del class="diff-old">expanded
-.
-If
-no
-form
-is
-specified
-in
-an
-HTTP
-</del>
-<ins class="diff-chg">profile
-</ins></code><ins class="diff-chg">
-parameter.
-To
-</ins>
-request
-<del class="diff-old">header
-to
-an
-HTTP
-server,
-</del>
-<ins class="diff-chg">or
-specify
-Expanded
-JSON-LD
-document
-form,
-</ins>
-the
-<del class="diff-old">server
-may
-</del>
-<ins class="diff-chg">URI
-</ins><code><ins class="diff-chg">
-http://www.w3.org/ns/json-ld#expanded
-</ins></code><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
-SHOULD
-</ins>
-</em>
-<del class="diff-old">choose
-any
-form.
-If
-no
-form
-is
-specified
-in
-an
-HTTP
-response,
-</del>
-<ins class="diff-chg">be
-used.
-To
-request
-or
-specify
-Compacted
-JSON-LD
-document
-form,
-</ins>
-the
-<del class="diff-old">form
-must
-not
-</del>
-<ins class="diff-chg">URI
-</ins><code><ins class="diff-chg">
-http://www.w3.org/ns/json-ld#compacted
-</ins></code><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
-SHOULD
-</ins>
-</em>
-be
-<del class="diff-old">assumed
-</del>
-<ins class="diff-chg">used.
-To
-request
-or
-specify
-Flattened
-JSON-LD
-document
-form,
-the
-URI
-</ins><code><ins class="diff-chg">
-http://www.w3.org/ns/json-ld#flattened
-</ins></code><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
-SHOULD
-</ins></em><ins class="diff-chg">
-be
-used.
-Please
-note
-that,
-according
-[
-</ins><cite><a class="bibref" href="#bib-HTTP11"><ins class="diff-chg">
-HTTP11
-</ins></a></cite><ins class="diff-chg">
-],
-the
-value
-of
-the
-</ins><code><ins class="diff-chg">
-profile
-</ins></code><ins class="diff-chg">
-parameter
-has
-</ins>
-to
-<del class="diff-old">take
-any
-particular
-form.
-</del>
-<ins class="diff-chg">be
-enclosed
-in
-quotes
-(
-</ins><code><ins class="diff-chg">
-&quot;
-</ins></code><ins class="diff-chg">
-)
-because
-it
-contains
-special
-characters
-and,
-if
-multiple
-profiles
-are
-combined,
-whitespace.
-</ins></p><p><ins class="diff-chg">
-When
-processing
-the
-&quot;profile&quot;
-media
-type
-parameter,
-it
-is
-important
-to
-apply
-URI-decoding
-before
-processing
-the
-URI
-(such
-as
-comparing
-it
-to
-known
-profiles).
-</ins></p>
-</dd>
-</dl>
-</dd>
-<dt>
-Encoding
-considerations:
-</dt>
-<dd>
-<del class="diff-old">The
-same
-as
-the
-application/json
-MIME
-media
-type.
-</del>
-<ins class="diff-chg">See
-RFC
-6839,
-section
-3.1.
-</ins>
-</dd>
-<dt>
-Security
-considerations:
-</dt>
-<dd>
-Since
-JSON-LD
-is
-intended
-to
-be
-a
-pure
-data
-exchange
-format
-for
-directed
-graphs,
-the
-serialization
-<del class="diff-old">should
-not
-</del>
-<em class="rfc2119" title="SHOULD NOT">
-<ins class="diff-chg">SHOULD
-NOT
-</ins>
-</em>
-be
-passed
-through
-a
-code
-execution
-mechanism
-such
-as
-JavaScript's
-<code>
-eval()
-</code>
-<del class="diff-old">function.
-</del>
-<ins class="diff-chg">function
-to
-be
-parsed.
-</ins><br /><ins class="diff-chg">
-JSON-LD
-contexts
-that
-are
-loaded
-from
-the
-Web
-over
-non-secure
-connections,
-such
-as
-HTTP,
-run
-the
-risk
-of
-modifying
-the
-JSON-LD
-</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
-active
-context
-</ins></a><ins class="diff-chg">
-in
-a
-way
-that
-could
-compromise
-security.
-</ins>
-It
-is
-<del class="diff-old">recommended
-</del>
-<ins class="diff-chg">advised
-</ins>
-that
-<ins class="diff-new">any
-application
-that
-depends
-on
-</ins>
-a
-<del class="diff-old">conforming
-parser
-does
-not
-attempt
-</del>
-<ins class="diff-chg">remote
-context
-for
-mission
-critical
-purposes
-vet
-and
-cache
-the
-remote
-context
-before
-allowing
-the
-system
-</ins>
-to
-<del class="diff-old">directly
-evaluate
-</del>
-<ins class="diff-chg">use
-it.
-</ins><br /><ins class="diff-chg">
-Given
-that
-JSON-LD
-allows
-</ins>
-the
-<ins class="diff-new">substitution
-of
-long
-IRIs
-with
-short
-terms,
-</ins>
-JSON-LD
-<del class="diff-old">serialization
-and
-instead
-purely
-parse
-</del>
-<ins class="diff-chg">documents
-may
-expand
-considerably
-when
-processed
-and,
-in
-</ins>
-the
-<del class="diff-old">input
-into
-a
-language-native
-</del>
-<ins class="diff-chg">worst
-case,
-the
-resulting
-</ins>
-data
-<del class="diff-old">structure.
-</del>
-<ins class="diff-chg">might
-consume
-all
-of
-the
-recipient's
-resources.
-Applications
-should
-treat
-any
-data
-with
-due
-skepticism.
-</ins>
-</dd>
-<dt>
-Interoperability
-considerations:
-</dt>
-<dd>
-Not
-Applicable
-</dd>
-<dt>
-Published
-specification:
-</dt>
-<dd>
-<del class="diff-old">The
-JSON-LD
-specification.
-</del>
-<ins class="diff-chg">http://www.w3.org/TR/json-ld
-</ins>
-</dd>
-<dt>
-Applications
-that
-use
-this
-media
-type:
-</dt>
-<dd>
-Any
-programming
-environment
-that
-requires
-the
-exchange
-of
-directed
-graphs.
-Implementations
-of
-JSON-LD
-have
-been
-created
-for
-JavaScript,
-Python,
-Ruby,
-<del class="diff-old">PHP
-</del>
-<ins class="diff-chg">PHP,
-</ins>
-and
-C++.
-</dd>
-<dt>
-Additional
-information:
-</dt>
-<dd>
-<dl>
-<dt>
-Magic
-number(s):
-</dt>
-<dd>
-Not
-Applicable
-</dd>
-<dt>
-File
-extension(s):
-</dt>
-<dd>.jsonld
-</dd>
-<dt>
-Macintosh
-file
-type
-code(s):
-</dt>
-<dd>
-TEXT
-</dd>
-</dl>
-</dd>
-<dt>
-Person
-&amp;
-email
-address
-to
-contact
-for
-further
-information:
-</dt>
-<dd>
-Manu
-Sporny
-&lt;msporny@digitalbazaar.com&gt;
-</dd>
-<dt>
-Intended
-usage:
-</dt>
-<dd>
-Common
-</dd>
-<dt>
-Restrictions
-on
-usage:
-</dt>
-<dd>
-None
-</dd>
-<dt>
-Author(s):
-</dt>
-<dd>
-Manu
-Sporny,
-<ins class="diff-new">Dave
-Longley,
-</ins>
-Gregg
-Kellogg,
-Markus
-Lanthaler,
-<del class="diff-old">Dave
-Longley
-</del>
-<ins class="diff-chg">Niklas
-Lindström
-</ins>
-</dd>
-<dt>
-Change
-controller:
-</dt>
-<dd>
-<abbr title="World Wide Web Consortium">
-W3C
-</abbr>
-</dd>
-</dl>
-<p>
-Fragment
-identifiers
-used
-with
-<a href="#application-ld-json">
-application/ld+json
-</a>
-<del class="diff-old">resources
-may
-identify
-a
-node
-in
-the
-linked
-data
-graph
-expressed
-in
-the
-resource.
-This
-idiom,
-which
-is
-also
-used
-</del>
-<ins class="diff-chg">are
-treated
-as
-</ins>
-in
-RDF
-<ins class="diff-new">syntaxes,
-as
-per
-</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-fragID"><ins class="diff-new">
-RDF
-1.1
-Concepts
-and
-Abstract
-Syntax
-</ins></a></cite>
-[
-<cite>
-<del class="diff-old">RDF-CONCEPTS
-</del>
-<a class="bibref" href="#bib-RDF11-CONCEPTS">
-<ins class="diff-chg">RDF11-CONCEPTS
-</ins>
-</a>
-</cite>
-<del class="diff-old">],
-gives
-a
-simple
-way
-to
-&quot;mint&quot;
-new,
-document-local
-IRIs
-to
-label
-nodes
-and
-therefore
-contributes
-considerably
-to
-the
-expressive
-power
-of
-JSON-LD.
-</del>
-<ins class="diff-chg">].
-</ins>
-</p>
-</section>
-<section class="appendix informative" id="acknowledgements">
-<h2>
-<span class="secno">
-<del class="diff-old">D.
-</del>
-<ins class="diff-chg">F.
-</ins>
-</span>
-Acknowledgements
-</h2>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-The
-<del class="diff-old">editors
-</del>
-<ins class="diff-chg">authors
-</ins>
-would
-like
-to
-<del class="diff-old">thank
-</del>
-<ins class="diff-chg">extend
-a
-deep
-appreciation
-and
-the
-most
-sincere
-thanks
-to
-</ins>
-Mark
-Birbeck,
-who
-<del class="diff-old">provided
-</del>
-<ins class="diff-chg">contributed
-foundational
-concepts
-to
-JSON-LD
-via
-his
-work
-on
-RDFj.
-JSON-LD
-uses
-</ins>
-a
-<del class="diff-old">great
-deal
-</del>
-<ins class="diff-chg">number
-</ins>
-of
-<ins class="diff-new">core
-concepts
-introduced
-in
-RDFj,
-such
-as
-</ins>
-the
-<del class="diff-old">initial
-push
-behind
-</del>
-<ins class="diff-chg">context
-as
-a
-mechanism
-to
-provide
-an
-environment
-for
-interpreting
-JSON
-data.
-Mark
-had
-also
-been
-very
-involved
-in
-</ins>
-the
-<del class="diff-old">JSON-LD
-</del>
-work
-<del class="diff-old">via
-his
-</del>
-<ins class="diff-chg">on
-RDFa
-as
-well.
-RDFj
-built
-upon
-that
-work.
-JSON-LD
-exists
-because
-of
-the
-</ins>
-work
-<ins class="diff-new">and
-ideas
-he
-started
-nearly
-a
-decade
-ago
-in
-2004.
-</ins></p><p><ins class="diff-new">
-A
-large
-amount
-of
-thanks
-goes
-out
-to
-the
-JSON-LD
-Community
-Group
-participants
-who
-worked
-through
-many
-of
-the
-technical
-issues
-</ins>
-on
-<del class="diff-old">RDFj,
-Dave
-</del>
-<ins class="diff-chg">the
-mailing
-list
-and
-the
-weekly
-telecons
--
-of
-special
-mention
-are
-François
-Daoust,
-Stéphane
-Corlosquet,
-Lin
-Clark,
-and
-Zdenko
-'Denny'
-Vrandečić.
-</ins></p><p><ins class="diff-chg">
-The
-work
-of
-David
-I.
-</ins>
-Lehn
-and
-Mike
-Johnson
-<del class="diff-old">who
-reviewed,
-provided
-feedback,
-</del>
-<ins class="diff-chg">are
-appreciated
-for
-reviewing,
-</ins>
-and
-<del class="diff-old">performed
-</del>
-<ins class="diff-chg">performing
-</ins>
-several
-<ins class="diff-new">early
-</ins>
-implementations
-of
-the
-<del class="diff-old">specification,
-and
-</del>
-<ins class="diff-chg">specification.
-Thanks
-also
-to
-</ins>
-Ian
-<del class="diff-old">Davis,
-who
-created
-</del>
-<ins class="diff-chg">Davis
-for
-this
-work
-on
-</ins>
-RDF/JSON.
-</p>
-<p>
-Thanks
-<del class="diff-old">also
-</del>
-to
-<del class="diff-old">Nathan
-Rixham,
-Bradley
-P.
-Allen,
-Kingsley
-Idehen,
-Glenn
-McDonald,
-</del>
-<ins class="diff-chg">the
-following
-individuals,
-in
-order
-of
-their
-first
-name,
-for
-their
-input
-on
-the
-specification:
-Adrian
-Walker,
-</ins>
-Alexandre
-Passant,
-<ins class="diff-new">Andy
-Seaborne,
-Ben
-Adida,
-Blaine
-Cook,
-Bradley
-Allen,
-Brian
-Peterson,
-Bryan
-Thompson,
-Conal
-Tuohy,
-Dan
-Brickley,
-</ins>
-Danny
-Ayers,
-<del class="diff-old">Ted
-Thibodeau
-Jr.,
-Olivier
-Grisel,
-Josh
-Mandel,
-Eric
-Prud'hommeaux,
-</del>
-<ins class="diff-chg">Daniel
-Leja,
-Dave
-Reynolds,
-David
-I.
-Lehn,
-</ins>
-David
-Wood,
-<ins class="diff-new">Dean
-Landolt,
-Ed
-Summers,
-elf
-Pavlik,
-Eric
-Prud'hommeaux,
-Erik
-Wilde,
-Fabian
-Christ,
-Jon
-A.
-Frost,
-Gavin
-Carothers,
-Glenn
-McDonald,
-</ins>
-Guus
-Schreiber,
-<ins class="diff-new">Henri
-Bergius,
-Jose
-María
-Alvarez
-Rodríguez,
-Ivan
-Herman,
-Jack
-Moffitt,
-Josh
-Mandel,
-KANZAKI
-Masahide,
-Kingsley
-Idehen,
-Kuno
-Woudt,
-Larry
-Garfield,
-Mark
-Baker,
-Mark
-MacGillivray,
-Marko
-Rodriguez,
-Melvin
-Carvalho,
-Nathan
-Rixham,
-Olivier
-Grisel,
-Paolo
-Ciccarese,
-</ins>
-Pat
-Hayes,
-<ins class="diff-new">Patrick
-Logan,
-Paul
-Kuykendall,
-Pelle
-Braendgaard,
-Peter
-Williams,
-Pierre-Antoine
-Champin,
-Richard
-Cyganiak,
-Roy
-T.
-Fielding,
-</ins>
-Sandro
-Hawke,
-<ins class="diff-new">Srecko
-Joksimovic,
-Stephane
-Fellah,
-Steve
-Harris,
-Ted
-Thibodeau
-Jr.,
-Thomas
-Steiner,
-Tim
-Bray,
-Tom
-Morris,
-Tristan
-King,
-Sergio
-Fernández,
-Werner
-Wilms,
-</ins>
-and
-<del class="diff-old">Richard
-Cyganiak
-for
-their
-input
-on
-the
-specification.
-</del>
-<ins class="diff-chg">William
-Waites.
-</ins>
-</p>
-</section>
-<section id="references" class="appendix" typeof="bibo:Chapter" resource="#references" rel="bibo:chapter">
-<h2>
-<span class="secno">
-<del class="diff-old">E.
-</del>
-<ins class="diff-chg">G.
-</ins>
-</span>
-References
-</h2>
-<section id="normative-references" typeof="bibo:Chapter" resource="#normative-references" rel="bibo:chapter">
-<h3>
-<span class="secno">
-<del class="diff-old">E.1
-</del>
-<ins class="diff-chg">G.1
-</ins>
-</span>
-Normative
-references
-</h3>
-<dl class="bibliography" about="">
-<dt id="bib-BCP47">
-[BCP47]
-</dt>
-<dd rel="dcterms:requires">
-A.
-Phillips;
-M.
-Davis.
-<a href="http://tools.ietf.org/html/bcp47">
-<cite>
-Tags
-for
-Identifying
-Languages
-</cite>
-</a>.
-September
-2009.
-IETF
-Best
-Current
-Practice.
-URL:
-<a href="http://tools.ietf.org/html/bcp47">
-http://tools.ietf.org/html/bcp47
-</a>
-</dd>
-<del class="diff-old">[JSON-LD-API]
-</del>
-<dt id="bib-RFC2119">
-<ins class="diff-chg">[RFC2119]
-</ins>
-</dt>
-<dd rel="dcterms:requires">
-<ins class="diff-chg">S.
-Bradner.
-</ins><a href="http://www.ietf.org/rfc/rfc2119.txt">
-<cite>
-<del class="diff-old">The
-JSON-LD
-API
-1.0
-Manu
-Sporny,
-Gregg
-Kellogg,
-Dave
-Longley,
-Markus
-Lanthaler,
-Editors.
-World
-Wide
-Web
-Consortium
-(work
-</del>
-<ins class="diff-chg">Key
-words
-for
-use
-</ins>
-in
-<del class="diff-old">progress).
-24
-May
-2012.
-Editor's
-Draft.
-This
-edition
-of
-the
-JSON-LD
-Syntax
-specification
-is
-http://json-ld.org/spec/ED/json-ld-api/20120524/.
-The
-latest
-edition
-of
-the
-JSON-LD
-Syntax
-is
-available
-at
-http://json-ld.org/spec/latest/json-ld-api/
-[RDF-CONCEPTS]
-</del>
-<ins class="diff-chg">RFCs
-to
-Indicate
-Requirement
-Levels.
-</ins></cite>
-<del class="diff-old">RDF
-1.1
-Concepts
-and
-Abstract
-Syntax
-</del>
-</a>
-<del class="diff-old">Richard
-Cyganiak,
-David
-Wood,
-Editors.
-World
-Wide
-Web
-Consortium
-(work
-in
-progress).
-30
-May
-2012.
-Editor's
-Draft.
-This
-edition
-of
-the
-JSON-LD
-Syntax
-specification
-is
-http://www.w3.org/TR/2011/WD-rdf11-concepts-20110830/.
-The
-latest
-edition
-of
-the
-JSON-LD
-Syntax
-</del>
-<ins class="diff-chg">March
-1997.
-Internet
-RFC
-2119.
-URL:
-</ins><a href="http://www.ietf.org/rfc/rfc2119.txt"><ins class="diff-chg">
-http://www.ietf.org/rfc/rfc2119.txt
-</ins>
-</a>
-<del class="diff-old">is
-available
-at
-http://www.w3.org/TR/rdf11-concepts/
-</del>
-</dd>
-<dt id="bib-RFC3987">
-[RFC3987]
-</dt>
-<dd rel="dcterms:requires">
-M.
-Dürst;
-M.
-Suignard.
-<a href="http://www.ietf.org/rfc/rfc3987.txt">
-<cite>
-Internationalized
-Resource
-Identifiers
-<del class="diff-old">(IRIs).
-</del>
-<ins class="diff-chg">(IRIs)
-(RFC
-3987)
-</ins>
-</cite>
-</a>.
-January
-2005.
-<del class="diff-old">Internet
-RFC
-3987.
-</del>
-<ins class="diff-chg">RFC.
-</ins>
-URL:
-<a href="http://www.ietf.org/rfc/rfc3987.txt">
-http://www.ietf.org/rfc/rfc3987.txt
-</a>
-</dd>
-<dt id="bib-RFC4627">
-[RFC4627]
-</dt>
-<dd rel="dcterms:requires">
-D.
-Crockford.
-<a href="http://www.ietf.org/rfc/rfc4627.txt">
-<cite>
-The
-application/json
-Media
-Type
-for
-JavaScript
-Object
-Notation
-(JSON)
-<ins class="diff-new">(RFC
-4627)
-</ins>
-</cite>
-</a>.
-July
-2006.
-<del class="diff-old">Internet
-RFC
-4627.
-</del>
-<ins class="diff-chg">RFC.
-</ins>
-URL:
-<a href="http://www.ietf.org/rfc/rfc4627.txt">
-http://www.ietf.org/rfc/rfc4627.txt
-</a>
-</dd>
-<dt id="bib-RFC5988">
-[RFC5988]
-</dt>
-<dd rel="dcterms:requires">
-<ins class="diff-chg">M.
-Nottingham.
-</ins>
-<cite>
-<a href="http://www.ietf.org/rfc/rfc5988.txt">
-Web
-Linking
-</a>.
-</cite>
-<del class="diff-old">M.
-Nottingham.
-Editor.
-</del>
-October
-2010.
-<del class="diff-old">IETF
-Standard.
-</del>
-<ins class="diff-chg">Internet
-RFC
-5988.
-</ins>
-URL:
-<del class="diff-old">http://tools.ietf.org/rfc/rfc5988.txt
-</del>
-<a href="http://www.ietf.org/rfc/rfc5988.txt">
-<ins class="diff-chg">http://www.ietf.org/rfc/rfc5988.txt
-</ins>
-</a>
-</dd>
-</dl>
-</section>
-<section id="informative-references" typeof="bibo:Chapter" resource="#informative-references" rel="bibo:chapter">
-<h3>
-<span class="secno">
-<del class="diff-old">E.2
-</del>
-<ins class="diff-chg">G.2
-</ins>
-</span>
-Informative
-references
-</h3>
-<dl class="bibliography" about="">
-<del class="diff-old">[RDF-PRIMER]
-</del>
-<dt id="bib-HTTP11">
-<ins class="diff-chg">[HTTP11]
-</ins>
-</dt>
-<del class="diff-old">Frank
-Manola;
-Eric
-Miller.
-</del>
-<dd rel="dcterms:references">
-<ins class="diff-chg">R.
-Fielding
-et
-al.
-</ins><a href="http://www.ietf.org/rfc/rfc2616.txt">
-<cite>
-<del class="diff-old">RDF
-Primer.
-</del>
-<ins class="diff-chg">Hypertext
-Transfer
-Protocol
--
-HTTP/1.1
-</ins>
-</cite>
-</a>.
-<ins class="diff-new">June
-1999.
-RFC
-2616.
-URL:
-</ins><a href="http://www.ietf.org/rfc/rfc2616.txt"><ins class="diff-new">
-http://www.ietf.org/rfc/rfc2616.txt
-</ins>
-</a>
-</dd>
-<dt id="bib-JSON-LD-API">
-<ins class="diff-new">[JSON-LD-API]
-</ins></dt><dd rel="dcterms:references"><ins class="diff-new">
-Markus
-Lanthaler,
-Gregg
-Kellogg,
-Manu
-Sporny,
-Editors.
-</ins><cite><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/"><ins class="diff-new">
-JSON-LD
-1.0
-Processing
-Algorithms
-and
-API
-</ins></a>.</cite><ins class="diff-new">
-W3C
-Working
-Draft
-(work
-in
-progress).
-URL:
-</ins><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/"><ins class="diff-new">
-http://www.w3.org/TR/2013/WD-json-ld-api-20130411/
-</ins></a>.<ins class="diff-new">
-The
-latest
-edition
-is
-available
-at
-</ins><a href="http://www.w3.org/TR/json-ld-api/"><ins class="diff-new">
-http://www.w3.org/TR/json-ld-api/
-</ins></a></dd><dt id="bib-JSON-LD-TESTS"><ins class="diff-new">
-[JSON-LD-TESTS]
-</ins></dt><dd rel="dcterms:references"><cite><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-new">
-JSON-LD
-1.0
-Test
-Suite
-</ins></a></cite>.<ins class="diff-new">
-W3C
-Test
-Suite
-(work
-in
-progress).
-URL:
-</ins><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-new">
-http://www.w3.org/2013/json-ld-tests/
-</ins></a></dd><dt id="bib-MICRODATA"><ins class="diff-new">
-[MICRODATA]
-</ins></dt><dd rel="dcterms:references"><ins class="diff-new">
-Ian
-Hickson,
-Editor.
-</ins><cite><a href="http://www.w3.org/TR/2012/WD-microdata-20121025/"><ins class="diff-new">
-HTML
-Microdata
-</ins></a>.</cite><ins class="diff-new">
-25
-October
-2012.
-W3C
-Working
-Draft
-(work
-in
-progress).
-URL:
-</ins><a href="http://www.w3.org/TR/2012/WD-microdata-20121025/"><ins class="diff-new">
-http://www.w3.org/TR/2012/WD-microdata-20121025/
-</ins></a>.<ins class="diff-new">
-The
-latest
-edition
-is
-available
-at
-</ins><a href="http://www.w3.org/TR/microdata/"><ins class="diff-new">
-http://www.w3.org/TR/microdata/
-</ins></a></dd><dt id="bib-MICROFORMATS"><ins class="diff-new">
-[MICROFORMATS]
-</ins></dt><dd rel="dcterms:references"><a href="http://microformats.org"><cite><ins class="diff-new">
-Microformats
-</ins></cite></a>.<ins class="diff-new">
-URL:
-</ins><a href="http://microformats.org"><ins class="diff-new">
-http://microformats.org
-</ins></a></dd><dt id="bib-RDF-SCHEMA"><ins class="diff-new">
-[RDF-SCHEMA]
-</ins></dt><dd rel="dcterms:references"><ins class="diff-new">
-Dan
-Brickley;
-Ramanathan
-V.
-Guha.
-</ins><a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210"><cite><ins class="diff-new">
-RDF
-Vocabulary
-Description
-Language
-1.0:
-RDF
-Schema
-</ins></cite></a>.
-10
-February
-2004.
-W3C
-Recommendation.
-URL:
-<del class="diff-old">http://www.w3.org/TR/2004/REC-rdf-primer-20040210/
-</del>
-<a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210">
-<ins class="diff-chg">http://www.w3.org/TR/2004/REC-rdf-schema-20040210
-</ins></a></dd><dt id="bib-RDF11-CONCEPTS"><ins class="diff-chg">
-[RDF11-CONCEPTS]
-</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
-Richard
-Cyganiak,
-David
-Wood,
-Editors.
-</ins><cite><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/"><ins class="diff-chg">
-RDF
-1.1
-Concepts
-and
-Abstract
-Syntax.
-</ins></a></cite><ins class="diff-chg">
-15
-January
-2013.
-W3C
-Working
-Draft
-(work
-in
-progress).
-URL:
-</ins><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/"><ins class="diff-chg">
-http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/
-</ins></a>.<ins class="diff-chg">
-The
-latest
-edition
-is
-available
-at
-</ins><a href="http://www.w3.org/TR/rdf11-concepts/"><ins class="diff-chg">
-http://www.w3.org/TR/rdf11-concepts/
-</ins>
-</a>
-</dd>
-<dt id="bib-RDFA-CORE">
-[RDFA-CORE]
-</dt>
-<dd rel="dcterms:references">
-Shane
-<del class="diff-old">McCarron;
-</del>
-<ins class="diff-chg">McCarron
-</ins>
-et
-al.
-<a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/">
-<cite>
-RDFa
-Core
-1.1:
-Syntax
-and
-processing
-rules
-for
-embedding
-RDF
-through
-<del class="diff-old">attributes.
-</del>
-<ins class="diff-chg">attributes
-</ins>
-</cite>
-</a>.
-7
-June
-2012.
-W3C
-Recommendation.
-URL:
-<del class="diff-old">http://www.w3.org/TR/rdfa-core/
-</del>
-<a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/">
-<ins class="diff-chg">http://www.w3.org/TR/2012/REC-rdfa-core-20120607/
-</ins>
-</a>
-</dd>
-<del class="diff-old">[TURTLE-TR]
-</del>
-<dt id="bib-RFC3986">
-<ins class="diff-chg">[RFC3986]
-</ins>
-</dt>
-<dd rel="dcterms:references">
-<ins class="diff-chg">T.
-Berners-Lee;
-R.
-Fielding;
-L.
-Masinter.
-</ins><a href="http://www.ietf.org/rfc/rfc3986.txt"><cite><ins class="diff-chg">
-Uniform
-Resource
-Identifier
-(URI):
-Generic
-Syntax
-(RFC
-3986)
-</ins></cite></a>.<ins class="diff-chg">
-January
-2005.
-RFC.
-URL:
-</ins><a href="http://www.ietf.org/rfc/rfc3986.txt"><ins class="diff-chg">
-http://www.ietf.org/rfc/rfc3986.txt
-</ins></a></dd><dt id="bib-RFC6906"><ins class="diff-chg">
-[RFC6906]
-</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
-Erik
-Wilde.
-</ins><cite><a href="http://www.ietf.org/rfc/rfc6906.txt"><ins class="diff-chg">
-The
-'profile'
-Link
-Relation
-Type
-</ins></a>.</cite><ins class="diff-chg">
-March
-2013.
-Internet
-RFC
-6906.
-URL:
-</ins><a href="http://www.ietf.org/rfc/rfc6906.txt"><ins class="diff-chg">
-http://www.ietf.org/rfc/rfc6906.txt
-</ins></a></dd><dt id="bib-TURTLE"><ins class="diff-chg">
-[TURTLE]
-</ins></dt><dd rel="dcterms:references">
-Eric
-Prud'hommeaux,
-Gavin
-<del class="diff-old">Carothers.
-</del>
-<ins class="diff-chg">Carothers,
-Editors.
-</ins>
-<cite>
-<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
-Turtle:
-Terse
-RDF
-Triple
-Language.
-</a>
-</cite>
-<del class="diff-old">09
-August
-2011.
-</del>
-<ins class="diff-chg">19
-February
-2013.
-</ins>
-W3C
-<del class="diff-old">Working
-Draft.
-</del>
-<ins class="diff-chg">Candidate
-Recommendation
-(work
-in
-progress).
-</ins>
-URL:
-<del class="diff-old">http://www.w3.org/TR/2011/WD-turtle-20110809/
-</del>
-<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
-<ins class="diff-chg">http://www.w3.org/TR/2013/CR-turtle-20130219/
-</ins></a>.<ins class="diff-chg">
-The
-latest
-edition
-is
-available
-at
-</ins><a href="http://www.w3.org/TR/turtle/"><ins class="diff-chg">
-http://www.w3.org/TR/turtle/
-</ins>
-</a>
-</dd>
-</dl>
-</section>
-</section>
-</body>
-</html>
-
--- a/spec/WD/20130411/json-ld/index.html	Mon Apr 08 11:44:09 2013 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3620 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
-<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" typeof="bibo:Document">
-<head>
-<title>JSON-LD 1.0</title>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-<style type="text/css">
-  .diff { font-weight:bold; color:#0a3; }
-  table, thead, tr, td { padding: 5px; border-width: 1px; border-spacing: 0px; border-style: solid; border-collapse: collapse; }
-  .atrisk-head { font-style: italic; }
-</style>
-<style type="text/css">
-/* --- INLINES --- */
-em.rfc2119 {
-    text-transform:     lowercase;
-    font-variant:       small-caps;
-    font-style:         normal;
-    color:              #900;
-}
-
-h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
-h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
-    border: none;
-}
-
-dfn {
-    font-weight:    bold;
-}
-
-a.internalDFN {
-    color:  inherit;
-    border-bottom:  1px solid #99c;
-    text-decoration:    none;
-}
-
-a.externalDFN {
-    color:  inherit;
-    border-bottom:  1px dotted #ccc;
-    text-decoration:    none;
-}
-
-a.bibref {
-    text-decoration:    none;
-}
-
-cite .bibref {
-    font-style: normal;
-}
-
-code {
-    color:  #ff4500;
-}
-
-
-/* --- --- */
-ol.algorithm { counter-reset:numsection; list-style-type: none; }
-ol.algorithm li { margin: 0.5em 0; }
-ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
-
-/* --- TOC --- */
-.toc a, .tof a {
-    text-decoration:    none;
-}
-
-a .secno, a .figno {
-    color:  #000;
-}
-
-ul.tof, ol.tof {
-    list-style: none outside none;
-}
-
-.caption {
-    margin-top: 0.5em;
-    font-style:   italic;
-}
-
-/* --- TABLE --- */
-table.simple {
-    border-spacing: 0;
-    border-collapse:    collapse;
-    border-bottom:  3px solid #005a9c;
-}
-
-.simple th {
-    background: #005a9c;
-    color:  #fff;
-    padding:    3px 5px;
-    text-align: left;
-}
-
-.simple th[scope="row"] {
-    background: inherit;
-    color:  inherit;
-    border-top: 1px solid #ddd;
-}
-
-.simple td {
-    padding:    3px 10px;
-    border-top: 1px solid #ddd;
-}
-
-.simple tr:nth-child(even) {
-    background: #f0f6ff;
-}
-
-/* --- DL --- */
-.section dd > p:first-child {
-    margin-top: 0;
-}
-
-.section dd > p:last-child {
-    margin-bottom: 0;
-}
-
-.section dd {
-    margin-bottom:  1em;
-}
-
-.section dl.attrs dd, .section dl.eldef dd {
-    margin-bottom:  0;
-}
-</style><style type="text/css">/* --- EXAMPLES --- */
-div.example-title {
-    min-width: 7.5em;
-    color: #b9ab2d;
-}
-div.example-title span {
-    text-transform: uppercase;
-}
-aside.example, div.example, div.illegal-example {
-    padding: 0.5em;
-    margin: 1em 0;
-    position: relative;
-    clear: both;
-}
-div.illegal-example { color: red }
-div.illegal-example p { color: black }
-aside.example, div.example {
-    padding: .5em;
-    border-left-width: .5em;
-    border-left-style: solid;
-    border-color: #e0cb52;
-    background: #fcfaee;
-}
-
-aside.example div.example {
-    border-left-width: .1em;
-    border-color: #999;
-    background: #fff;
-}
-aside.example div.example div.example-title {
-    color: #999;
-}
-</style><style type="text/css">/* --- ISSUES/NOTES --- */
-div.issue-title, div.note-title {
-    padding-right:  1em;
-    min-width: 7.5em;
-    color: #b9ab2d;
-}
-div.issue-title { color: #e05252; }
-div.note-title { color: #52e052; }
-div.issue-title span, div.note-title span {
-    text-transform: uppercase;
-}
-div.note, div.issue {
-    margin-top: 1em;
-    margin-bottom: 1em;
-}
-.note > p:first-child, .issue > p:first-child { margin-top: 0 }
-.issue, .note {
-    padding: .5em;
-    border-left-width: .5em;
-    border-left-style: solid;
-}
-div.issue, div.note {
-    padding: 0.5em;
-    margin: 1em 0;
-    position: relative;
-    clear: both;
-}
-span.note, span.issue { padding: .1em .5em .15em; }
-
-.issue {
-    border-color: #e05252;
-    background: #fbe9e9;
-}
-.note {
-    border-color: #52e052;
-    background: #e9fbe9;
-}
-
-
-</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
-</head>
-
-<body><div class="head">
-  <p>
-
-      <a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" /></a>
-
-  </p>
-  <h1 class="title" id="title">JSON-LD 1.0</h1>
-
-    <h2 id="subtitle">A JSON-based Serialization for Linked Data</h2>
-
-  <h2 id="w3c-last-call-working-draft-11-april-2013"><abbr title="World Wide Web Consortium">W3C</abbr> Last Call Working Draft 11 April 2013</h2>
-  <dl>
-
-      <dt>This version:</dt>
-      <dd><a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">http://www.w3.org/TR/2013/WD-json-ld-20130411/</a></dd>
-      <dt>Latest published version:</dt>
-      <dd><a href="http://www.w3.org/TR/json-ld/">http://www.w3.org/TR/json-ld/</a></dd>
-
-
-      <dt>Latest editor's draft:</dt>
-      <dd><a href="http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html</a></dd>
-
-
-
-
-
-      <dt>Previous version:</dt>
-      <dd><a href="http://www.w3.org/TR/2012/WD-json-ld-syntax-20120712/">http://www.w3.org/TR/2012/WD-json-ld-syntax-20120712/</a></dd>
-
-
-    <dt>Editors:</dt>
-    <dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://manu.sporny.org/">Manu Sporny</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
-</dd>
-<dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">Gregg Kellogg</a>, <a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">Kellogg Associates</a></span>
-</dd>
-<dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>, <a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">Graz University of Technology</a></span>
-</dd>
-
-
-      <dt>Authors:</dt>
-      <dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://digitalbazaar.com/">Manu Sporny</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
-</dd>
-<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Dave Longley" href="http://digitalbazaar.com/">Dave Longley</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
-</dd>
-<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">Gregg Kellogg</a>, <a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">Kellogg Associates</a></span>
-</dd>
-<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>, <a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">Graz University of Technology</a></span>
-</dd>
-<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Niklas Lindström" href="http://neverspace.net/">Niklas Lindström</a></span>
-</dd>
-
-
-  </dl>
-
-
-    <p>
-
-        This document is also available in this non-normative format:
-
-      <a rel="alternate" href="diff-20120712.html">diff to previous version</a>
-    </p>
-
-
-
-
-      <p class="copyright">
-        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©
-        2010-2013
-
-        <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup>
-        (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,
-        <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
-        <a href="http://www.keio.ac.jp/">Keio</a>, <a href="http://ev.buaa.edu.cn/">Beihang</a>), All Rights Reserved.
-        <abbr title="World Wide Web Consortium">W3C</abbr> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
-        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and
-        <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.
-      </p>
-
-
-  <hr />
-</div>
-<div id="abstract" class="introductory section" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:chapter"><h2>Abstract</h2>
-  <p>JSON has proven to be a highly useful object serialization and messaging
-    format. This specification defines JSON-LD, a JSON-based format to serialize
-    Linked Data. The syntax is designed to not disturb already deployed systems
-    running on JSON, but provide a smooth upgrade path from JSON to JSON-LD.
-    It is primarily intended to be a way to use Linked Data in Web-based
-    programming environments, to build interoperable Web services, and to
-    store Linked Data in JSON-based storage engines.</p>
-</div><div id="sotd" class="introductory section" typeof="bibo:Chapter" resource="#sotd" rel="bibo:chapter"><h2>Status of This Document</h2>
-
-
-
-        <p>
-          <em>This section describes the status of this document at the time of its publication. Other
-          documents may supersede this document. A list of current <abbr title="World Wide Web Consortium">W3C</abbr> publications and the latest revision
-          of this technical report can be found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports
-          index</a> at http://www.w3.org/TR/.</em>
-        </p>
-
-  <p>This document has been under development for over 25 months in the
-    JSON for Linking Data Community Group. The document has recently been
-    transferred to the RDF Working Group for review, improvement, and publication.
-    The specification has undergone significant development, review, and changes
-    during the course of the last 25 months. There are several independent
-    <a href="http://json-ld.org/#impl">interoperable implementations</a> of
-    this specification and a fairly complete test suite [<cite><a class="bibref" href="#bib-JSON-LD-TESTS">JSON-LD-TESTS</a></cite>].</p>
-
-        <p>
-          This document was published by the <a href="http://www.w3.org/2011/rdf-wg/">RDF Working Group</a> as a Last Call Working Draft.
-
-            This document is intended to become a <abbr title="World Wide Web Consortium">W3C</abbr> Recommendation.
-
-
-          If you wish to make comments regarding this document, please send them to
-          <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>
-          (<a href="mailto:public-rdf-comments-request@w3.org?subject=subscribe">subscribe</a>,
-          <a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">archives</a>).
-
-          The Last Call period ends 11 May 2013.
-
-
-        All comments are welcome.
-
-
-          </p>
-
-
-  <div style="padding: 1em; margin: 1em; border: 1px solid red;">
-    <p>The Working Group welcomes reports of implementations, sent to the
-      comments address. If we gather sufficient evidence of interoperable
-      implementations, the group may request to skip Call for Implementations
-      (Candidate Recommendation) drafts and have the next round of
-      publications be Proposed Recommendations.</p>
-  </div>
-
-
-          <p>
-            Publication as a Last Call Working Draft does not imply endorsement by the <abbr title="World Wide Web Consortium">W3C</abbr> Membership.
-            This is a draft document and may be updated, replaced or obsoleted by other documents at
-            any time. It is inappropriate to cite this document as other than work in progress.
-          </p>
-
-
-          <p>
-            This is a Last Call Working Draft and thus the Working Group has determined that this document has satisfied the
-            relevant technical requirements and is sufficiently stable to advance through the Technical Recommendation process.
-          </p>
-
-        <p>
-
-            This document was produced by a group operating under the
-            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
-
-
-
-
-              <abbr title="World Wide Web Consortium">W3C</abbr> maintains a <a href="http://www.w3.org/2004/01/pp-impl/46168/status" rel="disclosure">public list of any patent disclosures</a>
-
-            made in connection with the deliverables of the group; that page also includes instructions for
-            disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains
-            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the
-            information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
-            6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
-
-
-        </p>
-
-
-
-
-</div><div class="section" id="toc"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#how-to-read-this-document" class="tocxref"><span class="secno">1.1 </span>How to Read this Document</a></li></ul></li><li class="tocline"><a href="#design-goals-and-rationale" class="tocxref"><span class="secno">2. </span>Design Goals and Rationale</a></li><li class="tocline"><a href="#terminology" class="tocxref"><span class="secno">3. </span>Terminology</a><ul class="toc"><li class="tocline"><a href="#general-terminology" class="tocxref"><span class="secno">3.1 </span>General Terminology</a></li><li class="tocline"><a href="#syntax-tokens-and-keywords" class="tocxref"><span class="secno">3.2 </span>Syntax Tokens and Keywords</a></li></ul></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">4. </span>Conformance</a></li><li class="tocline"><a href="#basic-concepts" class="tocxref"><span class="secno">5. </span>Basic Concepts</a><ul class="toc"><li class="tocline"><a href="#the-context" class="tocxref"><span class="secno">5.1 </span>The Context</a></li><li class="tocline"><a href="#iris" class="tocxref"><span class="secno">5.2 </span>IRIs</a></li><li class="tocline"><a href="#node-identifiers" class="tocxref"><span class="secno">5.3 </span>Node Identifiers</a></li><li class="tocline"><a href="#specifying-the-type" class="tocxref"><span class="secno">5.4 </span>Specifying the Type</a></li></ul></li><li class="tocline"><a href="#advanced-concepts" class="tocxref"><span class="secno">6. </span>Advanced Concepts</a><ul class="toc"><li class="tocline"><a href="#base-iri" class="tocxref"><span class="secno">6.1 </span>Base <abbr title="Internationalized Resource Identifier">IRI</abbr></a></li><li class="tocline"><a href="#default-vocabulary" class="tocxref"><span class="secno">6.2 </span>Default Vocabulary</a></li><li class="tocline"><a href="#compact-iris" class="tocxref"><span class="secno">6.3 </span>Compact IRIs</a></li><li class="tocline"><a href="#typed-values" class="tocxref"><span class="secno">6.4 </span>Typed Values</a></li><li class="tocline"><a href="#type-coercion" class="tocxref"><span class="secno">6.5 </span>Type Coercion</a></li><li class="tocline"><a href="#embedding" class="tocxref"><span class="secno">6.6 </span>Embedding</a></li><li class="tocline"><a href="#advanced-context-usage" class="tocxref"><span class="secno">6.7 </span>Advanced Context Usage</a></li><li class="tocline"><a href="#interpreting-json-as-json-ld" class="tocxref"><span class="secno">6.8 </span>Interpreting JSON as JSON-LD</a></li><li class="tocline"><a href="#string-internationalization" class="tocxref"><span class="secno">6.9 </span>String Internationalization</a></li><li class="tocline"><a href="#iri-expansion-within-a-context" class="tocxref"><span class="secno">6.10 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion within a Context</a></li><li class="tocline"><a href="#sets-and-lists" class="tocxref"><span class="secno">6.11 </span>Sets and Lists</a></li><li class="tocline"><a href="#reverse-properties" class="tocxref"><span class="secno">6.12 </span>Reverse Properties</a></li><li class="tocline"><a href="#named-graphs" class="tocxref"><span class="secno">6.13 </span>Named Graphs</a></li><li class="tocline"><a href="#identifying-blank-nodes" class="tocxref"><span class="secno">6.14 </span>Identifying Blank Nodes</a></li><li class="tocline"><a href="#aliasing-keywords" class="tocxref"><span class="secno">6.15 </span>Aliasing Keywords</a></li><li class="tocline"><a href="#data-indexing" class="tocxref"><span class="secno">6.16 </span>Data Indexing</a></li><li class="tocline"><a href="#expanded-document-form" class="tocxref"><span class="secno">6.17 </span>Expanded Document Form</a></li><li class="tocline"><a href="#compact-document-form" class="tocxref"><span class="secno">6.18 </span>Compact Document Form</a></li><li class="tocline"><a href="#flattened-document-form" class="tocxref"><span class="secno">6.19 </span>Flattened Document Form</a></li><li class="tocline"><a href="#embedding-json-ld-in-html-documents" class="tocxref"><span class="secno">6.20 </span>Embedding JSON-LD in HTML Documents</a></li></ul></li><li class="tocline"><a href="#data-model" class="tocxref"><span class="secno">A. </span>Data Model</a></li><li class="tocline"><a href="#json-ld-grammar" class="tocxref"><span class="secno">B. </span>JSON-LD Grammar</a><ul class="toc"><li class="tocline"><a href="#terms" class="tocxref"><span class="secno">B.1 </span>Terms</a></li><li class="tocline"><a href="#node-objects" class="tocxref"><span class="secno">B.2 </span>Node Objects</a></li><li class="tocline"><a href="#value-objects" class="tocxref"><span class="secno">B.3 </span>Value Objects</a></li><li class="tocline"><a href="#lists-and-sets" class="tocxref"><span class="secno">B.4 </span>Lists and Sets</a></li><li class="tocline"><a href="#language-maps" class="tocxref"><span class="secno">B.5 </span>Language Maps</a></li><li class="tocline"><a href="#index-maps" class="tocxref"><span class="secno">B.6 </span>Index Maps</a></li><li class="tocline"><a href="#context-definitions" class="tocxref"><span class="secno">B.7 </span>Context Definitions</a></li></ul></li><li class="tocline"><a href="#relationship-to-rdf" class="tocxref"><span class="secno">C. </span>Relationship to RDF</a><ul class="toc"><li class="tocline"><a href="#transformation-from-json-ld-to-rdf" class="tocxref"><span class="secno">C.1 </span>Transformation from JSON-LD to RDF</a></li></ul></li><li class="tocline"><a href="#relationship-to-other-linked-data-formats" class="tocxref"><span class="secno">D. </span>Relationship to Other Linked Data Formats</a><ul class="toc"><li class="tocline"><a href="#turtle" class="tocxref"><span class="secno">D.1 </span>Turtle</a></li><li class="tocline"><a href="#rdfa" class="tocxref"><span class="secno">D.2 </span>RDFa</a></li><li class="tocline"><a href="#microformats" class="tocxref"><span class="secno">D.3 </span>Microformats</a></li><li class="tocline"><a href="#microdata" class="tocxref"><span class="secno">D.4 </span>Microdata</a></li></ul></li><li class="tocline"><a href="#iana-considerations" class="tocxref"><span class="secno">E. </span>IANA Considerations</a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">F. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">G. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">G.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">G.2 </span>Informative references</a></li></ul></li></ul></div>
-
-
-
-<div class="informative section" id="introduction">
-
-<!--OddPage-->
-<h2><span class="secno">1. </span>Introduction</h2><p><em>This section is non-normative.</em></p>
-
-  <p><dfn title="linked-data" id="dfn-linked-data">Linked Data</dfn> is a technique for creating a network
-    of inter-connected data across different documents and Web sites. In general,
-    Linked Data has four properties: 1) it uses <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
-    to name things; 2) it uses HTTP <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
-    for those names; 3) the name <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, when dereferenced,
-    provide more information about the thing; and 4) the data expresses links
-    to data on other Web sites. These properties allow data published on the Web
-    to work much like Web pages do today. One can start at one piece of Linked Data,
-    and follow the links to other pieces of data that are hosted on different
-    sites across the Web.</p>
-
-  <p>JSON-LD is a lightweight syntax to serialize <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> in
-    JSON [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]. Its design allows existing JSON to be transformed to
-    Linked Data with minimal changes. JSON-LD is primarily intended to be a
-    way to use Linked Data in Web-based programming environments, to build
-    interoperable Web services, and to store Linked Data in JSON-based storage engines. Since
-    JSON-LD is 100% compatible with JSON, the large number of JSON parsers and libraries
-    available today can be reused. In addition to all the features JSON provides,
-    JSON-LD introduces:</p>
-
-  <ul>
-    <li>a universal identifier mechanism for <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a>
-      via the use of <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,</li>
-    <li>a way to disambiguate keys shared among different JSON documents by mapping
-      them to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> via a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>,</li>
-    <li>a mechanism in which a value in a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> may refer
-      to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> on a different site on the Web,</li>
-    <li>the ability to annotate <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> with their language,</li>
-    <li>a way to associate datatypes with values such as dates and times,</li>
-    <li>and a facility to express one or more directed graphs, such as a social
-      network, in a single document.</li>
-  </ul>
-
-  <p>Developers that require any of the facilities listed above or need to serialize
-    an RDF graph or dataset [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>] in a JSON-based syntax will find
-    JSON-LD of interest. The syntax is designed to not disturb already deployed
-    systems running on JSON, but provide a smooth upgrade path from JSON to
-    JSON-LD. Since the shape of such data varies wildly, JSON-LD features mechanisms
-    to reshape documents into a deterministic structure which simplifies their
-    processing.</p>
-
-  <div class="informative section" id="how-to-read-this-document">
-    <h3><span class="secno">1.1 </span>How to Read this Document</h3><p><em>This section is non-normative.</em></p>
-
-    <p>This document is a detailed specification for a serialization of Linked
-      Data in JSON. The document is primarily intended for the following audiences:</p>
-
-    <ul>
-      <li>Software developers who want to encode Linked Data in a variety of
-        programming languages that can use JSON.</li>
-      <li>Software developers who want to convert existing JSON to JSON-LD.</li>
-      <li>Software developers who want to understand the design decisions and
-        language syntax for JSON-LD.</li>
-      <li>Software developers who want to implement processors and APIs for
-        JSON-LD.</li>
-    </ul>
-
-    <p>A companion document, the JSON-LD Processing Algorithms and API specification
-      [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>], specifies how to work with JSON-LD at a higher level by
-      providing a standard library interface for common JSON-LD operations.</p>
-
-    <p>To understand the basics in this specification you must first be familiar with
-      JSON, which is detailed in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>].</p>
-  </div>
-</div>
-
-<div class="informative section" id="design-goals-and-rationale">
-
-<!--OddPage-->
-<h2><span class="secno">2. </span>Design Goals and Rationale</h2><p><em>This section is non-normative.</em></p>
-
-  <p>JSON-LD satisfies the following design goals:</p>
-
-  <dl>
-   <dt>Simplicity</dt>
-   <dd>No extra processors or software libraries should be necessary to use JSON-LD
-     in its most basic form. The language will provide developers with a very easy
-     learning curve. Developers only need to know JSON and two
-     <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> (<code>@context</code>
-     and <code>@id</code>) to use the basic functionality in JSON-LD.</dd>
-   <dt>Compatibility</dt>
-   <dd>A JSON-LD document must be 100% compatible with JSON. This ensures that
-    all of the standard JSON libraries work seamlessly with JSON-LD documents.</dd>
-   <dt>Expressiveness</dt>
-   <dd>The syntax must be able to serialize directed graphs. This ensures that almost
-    every real world data model can be expressed.</dd>
-   <dt>Terseness</dt>
-   <dd>The JSON-LD syntax must be very terse and human readable, requiring as
-    little effort as possible from the developer.</dd>
-   <dt>Zero Edits, most of the time</dt>
-   <dd>JSON-LD must make the transition to JSON-LD as simple as possible. In many cases,
-     zero edits to the JSON document and the addition of one line to the HTTP response
-     should suffice (see <a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld">section 6.8 Interpreting JSON as JSON-LD</a>).
-     This allows organizations that have
-     already deployed large JSON-based infrastructure to use JSON-LD's features
-     in a way that is not disruptive to their day-to-day operations and is
-     transparent to their current customers. However, there are times where
-     mapping JSON to a graph representation is more complex than a simple one-line
-     change. In these instances, rather than extending JSON-LD to support an
-     esoteric use case, we chose not to support the use case. While Zero Edits is
-     a design goal, it is not always possible without adding great complexity
-     to the language. We should focus on simplicity when possible.</dd>
-  </dl>
-</div>
-
-<div class="normative section" id="terminology">
-
-<!--OddPage-->
-<h2><span class="secno">3. </span>Terminology</h2>
-
-  <div class="normative section" id="general-terminology">
-    <h3><span class="secno">3.1 </span>General Terminology</h3>
-
-    <p>This document uses the following terms as defined in JSON [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]. Refer
-      to the <em>JSON Grammar</em> section in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>] for formal definitions.</p>
-
-    <dl>
-      <dt><dfn title="json-object" id="dfn-json-object">JSON object</dfn></dt><dd>
-        An object structure is represented as a pair of curly brackets surrounding
-        zero or more key-value pairs. A key is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.
-        A single colon comes after each key, separating the key from the value.
-        A single comma separates a value from a following key. In contrast to JSON,
-        in JSON-LD the keys in an object must be unique.</dd>
-      <dt><dfn title="array" id="dfn-array">array</dfn></dt>
-      <dd>An array structure is represented as square brackets surrounding zero
-        or more values. Values are separated by commas.
-        In JSON, an array is an <em>ordered</em> sequence of zero or more values.
-        While JSON-LD uses the same array representation as JSON,
-        the collection is <em>unordered</em> by default. While order is
-        preserved in regular JSON arrays, it is not in regular JSON-LD arrays
-        unless specifically defined (see <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a>).</dd>
-      <dt><dfn title="string" id="dfn-string">string</dfn></dt><dd>
-        A string is a sequence of zero or more Unicode characters,
-        wrapped in double quotes, using backslash escapes (if necessary).</dd>
-      <dt><dfn title="number" id="dfn-number">number</dfn></dt>
-      <dd>A number is similar to that used in most programming languages, except
-        that the octal and hexadecimal formats are not used and leading zeros
-        are not allowed.</dd>
-      <dt><dfn title="true" id="dfn-true">true</dfn> and <dfn title="false" id="dfn-false">false</dfn></dt><dd>
-        Values that are used to express one of two possible boolean states.</dd>
-      <dt><dfn title="null" id="dfn-null">null</dfn></dt>
-      <dd>The <a class="tref internalDFN" title="null" href="#dfn-null">null</a> value, which is typically used to clear or forget
-        data. For example, A key-value pair in the
-        <code>@context</code> where the value is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> explicitly
-        decouples a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>'s association with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.
-        A key-value pair in the body of a JSON-LD document whose
-        value is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> has the same meaning as if the key-value pair
-        was not defined. If <code>@value</code>, <code>@list</code>, or
-        <code>@set</code> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in expanded form, then
-        the entire <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is ignored.</dd>
-    </dl>
-  </div>
-
-  <div class="normative section" id="syntax-tokens-and-keywords">
-    <h3><span class="secno">3.2 </span>Syntax Tokens and Keywords</h3>
-
-    <p>JSON-LD specifies a number of syntax tokens and <dfn title="keyword" id="dfn-keyword">keywords</dfn>
-    that are a core part of the language:</p>
-
-    <dl>
-      <dt><code>@context</code></dt>
-      <dd>Used to define the short-hand names that are used throughout a JSON-LD
-        document. These short-hand names are called <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> and help
-        developers to express specific identifiers in a compact manner. The
-        <code>@context</code> keyword is described in detail in
-        <a class="sectionRef sec-ref" href="#the-context">section 5.1 The Context</a>.</dd>
-      <dt><code>@id</code></dt>
-      <dd>Used to uniquely identify <em>things</em> that are being described in the document.
-        This keyword is described in <a class="sectionRef sec-ref" href="#node-identifiers">section 5.3 Node Identifiers</a>.</dd>
-      <dt><code>@value</code></dt>
-      <dd>Used to specify the data that is associated with a particular
-        <a class="tref internalDFN" title="property" href="#dfn-property">property</a> in the graph. This keyword is described in
-        <a class="sectionRef sec-ref" href="#string-internationalization">section 6.9 String Internationalization</a> and
-        <a class="sectionRef sec-ref" href="#typed-values">section 6.4 Typed Values</a>.</dd>
-      <dt><code>@language</code></dt>
-      <dd>Used to specify the natural (human) language for a particular value or the default
-        language of a JSON-LD document. This keyword is described in
-        <a class="sectionRef sec-ref" href="#string-internationalization">section 6.9 String Internationalization</a>.</dd>
-      <dt><code>@type</code></dt>
-      <dd>Used to set the data type of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> or
-        <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>. This keyword is described in
-        <a class="sectionRef sec-ref" href="#typed-values">section 6.4 Typed Values</a>.</dd>
-      <dt><code>@container</code></dt>
-      <dd>Used to set the default container type for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.
-        This keyword is described in <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a>.</dd>
-      <dt><code>@list</code></dt>
-      <dd>Used to express an ordered set of data.
-        This keyword is described in <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a>.</dd>
-      <dt><code>@set</code></dt>
-      <dd>Used to express an unordered set of data and to ensure that values are always
-         represented as arrays. This keyword is described in
-         <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a>.</dd>
-      <dt><code>@reverse</code></dt>
-      <dd>Used to express reverse properties. This keyword is described in
-        <a class="sectionRef sec-ref" href="#reverse-properties">section 6.12 Reverse Properties</a>.</dd>
-      <dt><code>@index</code></dt>
-      <dd>Used to specify that a container is used to index information and
-        that processing should continue deeper into a JSON data structure.
-        This keyword is described in <a class="sectionRef sec-ref" href="#data-indexing">section 6.16 Data Indexing</a>.</dd>
-      <dt><code>@base</code></dt>
-      <dd>Used to set the base <abbr title="Internationalized Resource Identifier">IRI</abbr> against which <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative IRIs</a>
-        are resolved. This keyword is described in <a class="sectionRef sec-ref" href="#base-iri">section 6.1 Base IRI</a>.</dd>
-      <dt><code>@vocab</code></dt>
-      <dd>Used to expand properties and values in <code>@type</code> with a common prefix
-        <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. This keyword is described in <a class="sectionRef sec-ref" href="#default-vocabulary">section 6.2 Default Vocabulary</a>.</dd>
-      <dt><code>@graph</code></dt><dd>Used to explicitly label a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>.
-        This keyword is described in <a class="sectionRef sec-ref" href="#named-graphs">section 6.13 Named Graphs</a>.</dd>
-      <dt><code>:</code></dt>
-      <dd>The separator for JSON keys and values that use
-        <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>.</dd>
-    </dl>
-
-    <p>All keys, <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>, and values in JSON-LD are case-sensitive.</p>
-  </div>
-</div>
-
-<div class="normative section" id="conformance">
-
-<!--OddPage-->
-<h2><span class="secno">4. </span>Conformance</h2>
-
-  <p>This specification describes the conformance criteria for JSON-LD documents.
-    This criteria is relevant to authors and authoring tool implementers. As well
-    as sections marked as non-normative, all authoring guidelines, diagrams, examples,
-    and notes in this specification are non-normative. Everything else in this
-    specification is normative.</p>
-
-  <p>A <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> complies with this specification if it follows
-    the normative statements in appendix <a href="#json-ld-grammar" class="sec-ref"><span class="secno">B.</span> <span class="sec-title">JSON-LD Grammar</span></a>. JSON documents
-    can be interpreted as JSON-LD by following the normative statements in
-    <a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld">section 6.8 Interpreting JSON as JSON-LD</a>. For convenience, normative
-    statements for documents are often phrased as statements on the properties of the document.</p>
-
-  <p>The key words <em class="rfc2119" title="MUST">MUST</em>, <em class="rfc2119" title="MUST NOT">MUST NOT</em>, <em class="rfc2119" title="REQUIRED">REQUIRED</em>, <em class="rfc2119" title="SHALL">SHALL</em>, <em class="rfc2119" title="SHALL NOT">SHALL NOT</em>, <em class="rfc2119" title="SHOULD">SHOULD</em>, <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em>,
-    <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em>, <em class="rfc2119" title="NOT RECOMMENDED">NOT RECOMMENDED</em>, <em class="rfc2119" title="MAY">MAY</em>, and <em class="rfc2119" title="OPTIONAL">OPTIONAL</em> in this specification have the
-    meaning defined in [<cite><a class="bibref" href="#bib-RFC2119">RFC2119</a></cite>].</p>
-</div>
-
-<div class="informative section" id="basic-concepts">
-
-<!--OddPage-->
-<h2><span class="secno">5. </span>Basic Concepts</h2><p><em>This section is non-normative.</em></p>
-
-  <p>JSON [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>] is a lightweight, language-independent data-interchange format.
-    It is easy to parse and easy to generate. However, it is difficult to integrate JSON
-    from different sources as the data has just local meaning. Furthermore, JSON has no
-    built-in support for hyperlinks - a fundamental building block on the Web. Let's look
-    at an example that we will be using for the rest of this section:</p>
-
-  <div class="example"><div class="example-title"><span>Example 1</span>: Sample JSON document</div><pre class="example">{
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
-}</pre></div>
-
-  <p>It's obvious to humans that the data is about a person whose name is &quot;Manu Sporny&quot;
-    and that the <code>homepage</code> property contains the URL of that person's homepage.
-    A machine doesn't have such an intuitive understanding and sometimes,
-    even for humans, it is difficult to resolve ambiguities in such representations. This problem
-    can be solved by using unambiguous identifiers to denote the different concepts instead of
-    tokens such as &quot;name&quot;, &quot;homepage&quot;, etc.</p>
-
-  <p><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a>, and the Web in general, uses <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
-    (Internationalized Resource Identifiers as described in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>]) for unambiguous
-    identification. The idea is to assign <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> to something that may
-    be of use to other developers and that it is useful to give them an unambiguous identifier.
-    That is, it is useful for <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> to expand to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
-    so that developers don't accidentally step on each other's terms. Furthermore, developers and
-    machines are able to use this <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> (by using a web browser, for instance) to go to
-    the term and get a definition of what the term means.</p>
-
-  <p>Leveraging the well-known <a href="http://schema.org/">schema.org vocabulary</a>,
-    the example above could be unambiguously expressed as follows:</p>
-
-  <div class="example"><div class="example-title"><span>Example 2</span>: Sample JSON-LD document using full IRIs instead of terms</div><pre class="example">{
-  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
-  &quot;<span class="diff">http://schema.org/url</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/&quot; <span class="diff">}</span>,
-  &quot;<span class="diff">http://schema.org/image</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/images/manu.png&quot; <span class="diff">}</span>
-}</pre></div>
-
-  <p>In the example above, every property is unambiguously identified by an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> and all values
-    representing <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> are explicitly marked as such by the
-    <code>@id</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. While this is a valid JSON-LD
-    document that is very specific about its data, the document is also overly verbose and difficult
-    to work with for human developers. To address this issue, JSON-LD introduces the notion
-    of a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> as described in the next section.</p>
-
-  <div class="informative section" id="the-context">
-    <h3><span class="secno">5.1 </span>The Context</h3><p><em>This section is non-normative.</em></p>
-
-    <p>Simply speaking, a <dfn title="context" id="dfn-context">context</dfn> is used to map <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> to
-      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>. <a class="tref internalDFN" title="term" href="#dfn-term">Terms</a> are case sensitive
-      and any valid <a class="tref internalDFN" title="string" href="#dfn-string">string</a> that is not a reserved JSON-LD <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>
-      can be used as a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</p>
-
-    <p>For the sample document in the previous section, a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> would
-      look something like this:</p>
-
-    <div class="example"><div class="example-title"><span>Example 3</span>: Context for the sample document in the previous section</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-  {
-    &quot;name&quot;: &quot;http://schema.org/name&quot;,
-    &quot;image&quot;: {
-      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  }</span>
-}</pre></div>
-
-    <p>As the <a class="tref internalDFN" title="context" href="#dfn-context">context</a> above shows, the value of a <dfn title="term-definition" id="dfn-term-definition">term definition</dfn> can
-      either be a simple string, mapping the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-      or a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</p>
-
-    <p>When a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is
-      associated with a term, it is called an <dfn title="expanded-term-definition" id="dfn-expanded-term-definition">expanded term definition</dfn>.
-      The example above specifies that the values of <code>image</code> and
-      <code>homepage</code> terms are <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.
-      They also allow terms to be used for <a href="#data-indexing">index maps</a>
-      and to specify whether <a class="tref internalDFN" title="array" href="#dfn-array">array</a> values are to be
-      interpreted as <a href="#sets-and-lists">sets or lists</a>.
-      <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">Expanded term definitions</a> may
-      be defined using <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute</a> or
-      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> as keys, which is
-      mainly used to associate type or language information with an
-      <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute</a> or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
-
-    <p><a class="tref internalDFN" title="context" href="#dfn-context">Contexts</a> can either be directly embedded
-      into the document or be referenced. Assuming the context document in the previous
-      example can be retrieved at <code>http://json-ld.org/contexts/person.jsonld</code>,
-      it can be referenced by adding a single line and allows a JSON-LD document to
-      be expressed much more concisely as shown in the example below:</p>
-
-    <div class="example"><div class="example-title"><span>Example 4</span>: Referencing a JSON-LD context</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,</span>
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
-}</pre></div>
-
-    <p>The referenced context not only specifies how the terms map to
-      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> in the Schema.org vocabulary but also specifies that
-      the values of the <code>homepage</code> and <code>image</code> property
-      can be interpreted as an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> (<code>&quot;@type&quot;: &quot;@id&quot;</code>,
-      see <a class="sectionRef sec-ref" href="#iris">section 5.2 IRIs</a> for more details). This information allows developers
-      to re-use each other's data without having to agree to how their data will interoperate
-      on a site-by-site basis. External JSON-LD context documents may contain extra
-      information located outside of the <code>@context</code> key, such as
-      documentation about the <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> declared in the
-      document. Information contained outside of the <code>@context</code> value
-      is ignored when the document is used as an external JSON-LD context document.</p>
-
-    <p>JSON documents can be transformed to JSON-LD without having to be modified by
-      referencing a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> via an HTTP Link Header
-      as described in <a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld">section 6.8 Interpreting JSON as JSON-LD</a>. It is also
-      possible to apply a custom context using the JSON-LD API [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>].</p>
-
-    <p>In <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD documents</a>
-      <a class="tref internalDFN" title="context" href="#dfn-context">contexts</a> may also be specified in-line.
-      This has the advantage that documents can be processed even in the
-      absence of a connection to the Web.</p>
-
-    <div class="example"><div class="example-title"><span>Example 5</span>: In-line context definition</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-  {
-    &quot;name&quot;: &quot;http://schema.org/name&quot;,
-    &quot;image&quot;: {
-      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },</span>
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
-}</pre></div>
-  </div>
-
-<div class="informative section" id="iris">
-  <h3><span class="secno">5.2 </span>IRIs</h3><p><em>This section is non-normative.</em></p>
-
-  <p><a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> (Internationalized Resource Identifiers
-    [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>]) are fundamental to <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> as that is how most
-    <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> and <a class="tref internalDFN" title="property" href="#dfn-property">properties</a>
-    are identified. In JSON-LD, IRIs may be represented as an
-    <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. An
-    <dfn title="absolute-iri" id="dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn> is defined in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>] as containing a
-    <em>scheme</em> along with <em>path</em> and optional <em>query</em> and
-    <em>fragment</em> segments. A <dfn title="relative-iri" id="dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn> is an <abbr title="Internationalized Resource Identifier">IRI</abbr>
-    that is relative to some other <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.
-    In JSON-LD all <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative IRIs</a> are resolved
-    relative to the <dfn title="base-iri" id="dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn> associated with the document.</p>
-
-  <p>A <a class="tref internalDFN" title="string" href="#dfn-string">string</a> is interpreted as an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> when it is the
-    value of an <code>@id</code> member:</p>
-
-  <div class="example"><div class="example-title"><span>Example 6</span>: Values of @id are interpreted as IRI</div><pre class="example">{
-...
-  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;http://example.com/&quot; }
-...
-}</pre></div>
-
-  <p>Values that are interpreted as <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, can also be
-    expressed as <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative IRIs</a>. For example,
-    assuming that the following document is located at
-    <code>http://example.com/about/</code>, the <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-    <code>../</code> would expand to <code>http://example.com/</code> (for more
-    information on where  <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative IRIs</a> can be
-    used, please refer to appendix <a href="#json-ld-grammar" class="sec-ref"><span class="secno">B.</span> <span class="sec-title">JSON-LD Grammar</span></a>).</p>
-
-  <div class="example"><div class="example-title"><span>Example 7</span>: IRIs can be relative</div><pre class="example">{
-...
-  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;../&quot; }
-...
-}</pre></div>
-
-  <p><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">Absolute IRIs</a> can be expressed directly
-    in the key position like so:</p>
-
-  <div class="example"><div class="example-title"><span>Example 8</span>: IRI as a key</div><pre class="example">{
-...
-  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
-...
-}</pre></div>
-
-  <p>In the example above, the key <code>http://schema.org/name</code>
-    is interpreted as an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> because it contains a colon
-    (<code>:</code>) and it is neither a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> nor a
-    <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</p>
-
-  <p>Term-to-<abbr title="Internationalized Resource Identifier">IRI</abbr> expansion occurs if the key matches a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> defined
-    within the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>:</p>
-
-  <div class="example"><div class="example-title"><span>Example 9</span>: Term expansion from context definition</div><pre class="example">{
-  &quot;<span class="diff">@context</span>&quot;:
-  {
-    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">http://schema.org/name</span>&quot;
-  },
-  &quot;<span class="diff">name</span>&quot;: &quot;Manu Sporny&quot;,
-  &quot;status&quot;: &quot;trollin'&quot;
-}</pre></div>
-
-  <p>JSON keys that do not expand to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, such as <code>status</code>
-    in the example above, are not Linked Data and thus ignored when processed.</p>
-
-  <p>If type <a class="tref internalDFN" title="coercion" href="#dfn-coercion">coercion</a> rules are specified in the <code>@context</code> for
-    a particular <a class="tref internalDFN" title="term" href="#dfn-term">term</a> or property <abbr title="Internationalized Resource Identifier">IRI</abbr>, an <abbr title="Internationalized Resource Identifier">IRI</abbr> is generated:</p>
-
-  <div class="example"><div class="example-title"><span>Example 10</span>: Type coercion</div><pre class="example">{<span class="diff">
-  &quot;@context&quot;:
-  {
-    ...
-    &quot;homepage&quot;:
-    {
-      &quot;@id&quot;: &quot;http://schema.org/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-    ...
-  }</span>
-...
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-...
-}</pre></div>
-
-  <p>In the example above, even though the value <code>http://manu.sporny.org/</code>
-    is expressed as a JSON <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, the type <a class="tref internalDFN" title="coercion" href="#dfn-coercion">coercion</a>
-    rules will transform the value into an <abbr title="Internationalized Resource Identifier">IRI</abbr> when generating the
-    <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>. See <a class="sectionRef sec-ref" href="#type-coercion">section 6.5 Type Coercion</a> for more
-    details about this feature.</p>
-
-  <p>In summary, <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> can be expressed in a variety of
-    different ways in JSON-LD:</p>
-
-  <ol>
-    <li><a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> keys that have a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> mapping in
-      the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> expand to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-      (only applies outside of the <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a>).</li>
-    <li>An <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is generated for the <a class="tref internalDFN" title="string" href="#dfn-string">string</a> value specified using
-      <code>@id</code> or <code>@type</code>.</li>
-    <li>An <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is generated for the <a class="tref internalDFN" title="string" href="#dfn-string">string</a> value of any key for which there
-      are <a class="tref internalDFN" title="coercion" href="#dfn-coercion">coercion</a> rules that contain a <code>@type</code> key that is
-      set to a value of <code>@id</code> or <code>@vocab</code>.</li>
-  </ol>
-</div>
-
-<div class="informative section" id="node-identifiers">
-  <h3><span class="secno">5.3 </span>Node Identifiers</h3><p><em>This section is non-normative.</em></p>
-
-  <p>To be able to externally reference <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>
-    in a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">graph</a>, it is important that
-    <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> have an identifier. <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
-    are a fundamental concept of <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a>, for
-    <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> to be truly linked, dereferencing the
-    identifier should result in a representation of that <a class="tref internalDFN" title="node" href="#dfn-node">node</a>.
-    This may allow an application to retrieve further information about a
-    <a class="tref internalDFN" title="node" href="#dfn-node">node</a>.</p>
-
-  <p>In JSON-LD, a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> is identified using the <code>@id</code>
-    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>:</p>
-
-  <div class="example"><div class="example-title"><span>Example 11</span>: Identifying a node</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    ...
-    &quot;name&quot;: &quot;http://schema.org/name&quot;
-  },
-  <span class="diff">&quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;</span>,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  ...
-}</pre></div>
-
-  <p>The example above contains a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> identified by the <abbr title="Internationalized Resource Identifier">IRI</abbr>
-    <code>http://me.markus-lanthaler.com/</code>.</p>
-</div>
-
-<div class="informative section" id="specifying-the-type">
-<h3><span class="secno">5.4 </span>Specifying the Type</h3><p><em>This section is non-normative.</em></p>
-
-<p>The type of a particular node can be specified using the <code>@type</code>
-  <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. In <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a>, types are uniquely
-  identified with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
-
-<div class="example"><div class="example-title"><span>Example 12</span>: Specifying the type for a node</div><pre class="example">{
-...
-  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-  &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">http://schema.org/Restaurant</span>&quot;,
-...
-}</pre></div>
-
-<p>A node can be assigned more than one type by using an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>:</p>
-
-<div class="example"><div class="example-title"><span>Example 13</span>: Specifying multiple types for a node</div><pre class="example">{
-...
-  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-  &quot;<span class="diff">@type</span>&quot;: <span class="diff">[ &quot;http://schema.org/Restaurant&quot;, &quot;http://schema.org/Brewery&quot; ],</span>
-...
-}</pre></div>
-
-<p>The value of a <code>@type</code> key may also be a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> defined in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>:</p>
-<div class="example"><div class="example-title"><span>Example 14</span>: Using a term to specify the type</div><pre class="example">{
-  &quot;@context&quot;: {
-    ...
-    <span class="diff">&quot;Restaurant&quot;: &quot;http://schema.org/Restaurant&quot;, </span>
-    <span class="diff">&quot;Brewery&quot;: &quot;http://schema.org/Brewery&quot;</span>
-  }
-  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-  <span class="diff">&quot;@type&quot;: [ &quot;Restaurant&quot;, &quot;Brewery&quot; ]</span>,
-  ...
-}</pre></div>
-</div>
-</div>
-
-<div class="normative section" id="advanced-concepts">
-
-<!--OddPage-->
-<h2><span class="secno">6. </span>Advanced Concepts</h2>
-
-<p>JSON-LD has a number of features that provide functionality above and beyond
-  the core functionality described above. The following section describes this
-  advanced functionality in more detail.</p>
-
-<div class="informative section" id="base-iri">
-  <h3><span class="secno">6.1 </span>Base <abbr title="Internationalized Resource Identifier">IRI</abbr></h3><p><em>This section is non-normative.</em></p>
-
-  <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 1</span>: @base keyword</div><div class="atrisk">
-    <p class="atrisk-head">Note: This feature is
-      <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
-      be removed from this specification based on feedback. Please send feedback to
-      <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
-      For the current status see
-      <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
-    <p>Support for the <code>@base</code> keyword might be removed from JSON-LD 1.0 if
-      implementation experience reveals that the fact that a document may have multiple
-      base IRIs is confusing for developers. It is also being discussed whether relative
-      IRIs are allowed as values of <code>@base</code> or whether the empty string should
-      be used to explicitly specify that there isn't a base <abbr title="Internationalized Resource Identifier">IRI</abbr>, which could be used to
-      ensure that relative IRIs remain relative when expanding.</p>
-  </div></div>
-
-  <p>JSON-LD allows <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>s to be specified in a relative form which is
-    resolved against the document base according
-    <cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1">section 5.1 Establishing a Base URI</a></cite>
-    of [<cite><a class="bibref" href="#bib-RFC3986">RFC3986</a></cite>]. The base <abbr title="Internationalized Resource Identifier">IRI</abbr> may be explicitly set with a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>
-    using the <code>@base</code> keyword.</p>
-
-  <p>For example, if a JSON-LD document was retrieved from <code>http://example.com/document.jsonld</code>,
-    relative IRIs would resolve against that <abbr title="Internationalized Resource Identifier">IRI</abbr>:</p>
-
-  <div class="example"><div class="example-title"><span>Example 15</span>: Use a relative IRI as node identifier</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;label&quot;: &quot;http://www.w3.org/2000/01/rdf-schema#label&quot;
-  },
-  <span class="diff">&quot;@id&quot;: &quot;&quot;</span>,
-  &quot;label&quot;: &quot;Just a simple document&quot;
-}</pre></div>
-
-  <p>This document uses an empty <code>@id</code>, which resolves to the document base.
-    However, if the document is moved to a different location, the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> would change.
-    To prevent this without having to use an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>
-    may define a <code>@base</code> mapping, to overwrite the base <abbr title="Internationalized Resource Identifier">IRI</abbr> for the document.</p>
-
-  <div class="example"><div class="example-title"><span>Example 16</span>: Setting the document base in a document</div><pre class="example">{
-  &quot;@context&quot;: {
-    <span class="diff">&quot;@base&quot;: &quot;http://example.com/document.jsonld&quot;</span>
-  },
-  &quot;@id&quot;: &quot;&quot;,
-  &quot;label&quot;: &quot;Just a simple document&quot;
-}</pre></div>
-</div>
-
-<div class="informative section" id="default-vocabulary">
-  <h3><span class="secno">6.2 </span>Default Vocabulary</h3><p><em>This section is non-normative.</em></p>
-
-  <p>At times, all properties and types may come from the same vocabulary. JSON-LD's
-    <code>@vocab</code> keyword allows an author to set a common prefix to be used
-    for all properties and types that do not match a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> and are neither
-    a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> nor an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> (i.e., they do
-    not contain a colon).</p>
-
-  <div class="example"><div class="example-title"><span>Example 17</span>: Using a common vocabulary prefix</div><pre class="example">{
-  &quot;@context&quot;: {
-    <span class="diff">&quot;@vocab&quot;: &quot;http://schema.org/&quot;</span>
-  }
-  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-  &quot;@type&quot;: <span class="diff">&quot;Restaurant&quot;</span>,
-  <span class="diff">&quot;name&quot;</span>: &quot;Brew Eats&quot;
-  ...
-}</pre></div>
-
-  <p>If <code>@vocab</code> is used but certain keys in an
-    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">object</a> should not be expanded using
-    the vocabulary <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> can be explicitly set
-    to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. For instance, in the
-    example below the <code>databaseId</code> member would not expand to an
-    <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
-
-  <div class="example"><div class="example-title"><span>Example 18</span>: Using the null keyword to ignore data</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-     &quot;@vocab&quot;: &quot;http://schema.org/&quot;,
-     <span class="diff">&quot;databaseId&quot;: null</span>
-  },
-    &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
-    &quot;@type&quot;: &quot;Restaurant&quot;,
-    &quot;name&quot;: &quot;Brew Eats&quot;,
-    <span class="diff">&quot;databaseId&quot;</span>: &quot;23987520&quot;
-}</pre></div>
-</div>
-
-<div class="informative section" id="compact-iris">
-  <h3><span class="secno">6.3 </span>Compact IRIs</h3><p><em>This section is non-normative.</em></p>
-
-  <p>A <dfn title="compact-iri" id="dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn> is a way of expressing an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-    using a <em>prefix</em> and <em>suffix</em> separated by a colon (<code>:</code>).
-    The <dfn title="prefix" id="dfn-prefix">prefix</dfn> is a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> taken from the
-    <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and is a short string identifying a
-    particular <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> in a JSON-LD document. For example, the
-    prefix <code>foaf</code> may be used as a short hand for the
-    Friend-of-a-Friend vocabulary, which is identified using the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-    <code>http://xmlns.com/foaf/0.1/</code>. A developer may append
-    any of the FOAF vocabulary terms to the end of the prefix to specify a short-hand
-    version of the <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> for the vocabulary term. For example,
-    <code>foaf:name</code> would be expanded to the <abbr title="Internationalized Resource Identifier">IRI</abbr>
-    <code>http://xmlns.com/foaf/0.1/name</code>.</p>
-
-  <div class="example"><div class="example-title"><span>Example 19</span>: Prefix expansion</div><pre class="example">{
-  &quot;<span class="diff">@context</span>&quot;:
-  {
-    &quot;<span class="diff">foaf</span>&quot;: &quot;<span class="diff">http://xmlns.com/foaf/0.1/</span>&quot;
-...
-  },
-  &quot;@type&quot;: &quot;<span class="diff">foaf:Person</span>&quot;
-  &quot;<span class="diff">foaf:name</span>&quot;: &quot;Dave Longley&quot;,
-...
-}</pre></div>
-
-  <p>In the example above, <code>foaf:name</code> expands to the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-    <code>http://xmlns.com/foaf/0.1/name</code> and <code>foaf:Person</code> expands
-    to <code>http://xmlns.com/foaf/0.1/Person</code>.</p>
-
-  <p><a class="tref internalDFN" title="prefix" href="#dfn-prefix">Prefixes</a> are expanded when the form of the value
-    is a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> represented as a <code>prefix:suffix</code>
-    combination, the <em>prefix</em> matches a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> defined within the
-    <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, and the <em>suffix</em> does not begin with two
-    slashes (<code>//</code>). The <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> is expanded by
-    concatenating the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> mapped to the <em>prefix</em> to the (possibly empty)
-    <em>suffix</em>. If the <em>prefix</em> is not defined in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
-    or the suffix begins with two slashes (such as in <code>http://example.com</code>),
-    the value is interpreted as <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> instead. If the prefix is an
-    underscore (<code>_</code>), the value is interpreted as <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
-    instead.</p>
-
-
-  <p>It's also possible to use compact IRIs within the context as shown in the
-    following example:</p>
-
-  <div class="example"><div class="example-title"><span>Example 20</span>: Using vocabularies</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
-    <span class="diff">&quot;foaf:homepage&quot;</span>: { &quot;@type&quot;: &quot;@id&quot; },
-    &quot;picture&quot;: { &quot;@id&quot;: <span class="diff">&quot;foaf:depiction&quot;</span>, &quot;@type&quot;: &quot;@id&quot; }
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;foaf:homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
-  &quot;picture&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
-}</pre></div>
-</div>
-
-<div class="informative section" id="typed-values">
-<h3><span class="secno">6.4 </span>Typed Values</h3><p><em>This section is non-normative.</em></p>
-
-<p>
-  A value with an associated type, also known as a
-  <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>, is indicated by associating a value with
-  an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> which indicates the value's type. Typed values may be
-  expressed in JSON-LD in three ways:
-</p>
-
-<ol>
-  <li>By utilizing the <code>@type</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> when defining
-    a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> within a <code>@context</code> section.</li>
-  <li>By utilizing a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>.</li>
-  <li>By using a native JSON type such as <a class="tref internalDFN" title="number" href="#dfn-number">number</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>.</li>
-</ol>
-
-<p>The first example uses the <code>@type</code> keyword to associate a
-type with a particular <a class="tref internalDFN" title="term" href="#dfn-term">term</a> in the <code>@context</code>:</p>
-
-<div class="example"><div class="example-title"><span>Example 21</span>: Expanded term definition with type coercion</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-  {
-    &quot;modified&quot;:
-    {
-      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;,
-      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
-    }
-  },</span>
-...
-  &quot;@id&quot;: &quot;http://example.com/docs/1&quot;,
-  &quot;modified&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
-...
-}</pre></div>
-
-<p>The <em>modified</em> key's value above is automatically type coerced to a
-  <em>dateTime</em> value because of the information specified in the
-  <code>@context</code>. A JSON-LD processor will interpret the example above
-  as follows:</p>
-
-<table class="example">
-<thead>
-  <tr><th>Subject</th>
-  <th>Property</th>
-  <th>Value</th>
-  <th>Value Type</th>
-</tr></thead>
-<tbody>
-<tr>
-  <td>http://example.com/docs/1</td>
-  <td>http://purl.org/dc/terms/modified</td>
-  <td>2010-05-29T14:17:39+02:00</td>
-  <td>http://www.w3.org/2001/XMLSchema#dateTime</td>
-</tr>
-</tbody>
-</table>
-
-<p>The second example uses the expanded form of setting the type information
-in the body of a JSON-LD document:</p>
-
-<div class="example"><div class="example-title"><span>Example 22</span>: Expanded value with type</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;modified&quot;:
-    {
-      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;
-    }
-  },
-...
-  &quot;modified&quot;:
-  <span class="diff">{
-    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
-    &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
-  }</span>
-...
-}</pre></div>
-
-<p>Both examples above would generate the value
-  <code>2010-05-29T14:17:39+02:00</code> with the type
-  <code>http://www.w3.org/2001/XMLSchema#dateTime</code>. Note that it is
-  also possible to use a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> or a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> to
-  express the value of a type.</p>
-
-<p>The <code>@type</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> is also used to associate a type
-  with a <a class="tref internalDFN" title="node" href="#dfn-node">node</a>. The concept of a <a class="tref internalDFN" title="node-type" href="#dfn-node-type">node type</a> and
-  a <a class="tref internalDFN" title="value-type" href="#dfn-value-type">value type</a> are different.</p>
-
-<p>Generally speaking, a <dfn title="node-type" id="dfn-node-type">node type</dfn> specifies the type of thing
-  that is being described, like a person, place, event, or web page. A
-  <dfn title="value-type" id="dfn-value-type">value type</dfn> specifies the data type of a particular value, such
-  as an integer, a floating point number, or a date.</p>
-
-<div class="example"><div class="example-title"><span>Example 23</span>: Example demonstrating the context-sensitivity for @type</div><pre class="example">{
-...
-  &quot;@id&quot;: &quot;http://example.org/posts#TripToWestVirginia&quot;,
-  <span class="diff">&quot;@type&quot;: &quot;http://schema.org/BlogPosting&quot;</span>,   &lt;- This is a node type
-  &quot;modified&quot;:
-  {
-    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
-    <span class="diff">&quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;</span> &lt;- This is a value type
-  }
-...
-}</pre></div>
-
-<p>The first use of <code>@type</code> associates a <a class="tref internalDFN" title="node-type" href="#dfn-node-type">node type</a>
-  (<code>http://schema.org/BlogPosting</code>) with the <a class="tref internalDFN" title="node" href="#dfn-node">node</a>,
-  which is expressed using the <code>@id</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>.
-  The second use of <code>@type</code> associates a <a class="tref internalDFN" title="value-type" href="#dfn-value-type">value type</a>
-  (<code>http://www.w3.org/2001/XMLSchema#dateTime</code>) with the
-  value expressed using the <code>@value</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. As a
-  general rule, when <code>@value</code> and <code>@type</code> are used in
-  the same <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, the <code>@type</code>
-  <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> is expressing a <a class="tref internalDFN" title="value-type" href="#dfn-value-type">value type</a>.
-  Otherwise, the <code>@type</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> is expressing a
-  <a class="tref internalDFN" title="node-type" href="#dfn-node-type">node type</a>. The example above expresses the following data:</p>
-
-<table class="example">
-<thead>
-  <tr><th>Subject</th>
-  <th>Property</th>
-  <th>Value</th>
-  <th>Value Type</th>
-</tr></thead>
-<tbody>
-<tr>
-  <td>http://example.org/posts#TripToWestVirginia</td>
-  <td>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</td>
-  <td>http://schema.org/BlogPosting</td>
-  <td style="text-align:center;">-</td>
-</tr>
-<tr>
-  <td>http://example.org/posts#TripToWestVirginia</td>
-  <td>http://purl.org/dc/terms/modified</td>
-  <td>2010-05-29T14:17:39+02:00</td>
-  <td>http://www.w3.org/2001/XMLSchema#dateTime</td>
-</tr>
-</tbody>
-</table>
-
-</div>
-
-<div class="informative section" id="type-coercion">
-<h3><span class="secno">6.5 </span>Type Coercion</h3><p><em>This section is non-normative.</em></p>
-
-<p>JSON-LD supports the coercion of values to particular data types.
-Type <dfn title="coercion" id="dfn-coercion">coercion</dfn> allows someone deploying JSON-LD to coerce the incoming or
-outgoing values to the proper data type based on a mapping of data type <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> to
-<a class="tref internalDFN" title="term" href="#dfn-term">terms</a>. Using type coercion, value representation is preserved without requiring
-the data type to be specified with each piece of data.</p>
-
-<p>Type coercion is specified within an <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a>
-  using the <code>@type</code> key. The value of this key expands to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.
-  Alternatively, the <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <code>@id</code> or <code>@vocab</code> may be used
-  as value to indicate that within the body of a JSON-LD document, a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> value of a
-  <a class="tref internalDFN" title="term" href="#dfn-term">term</a> coerced to <code>@id</code> or <code>@vocab</code> is to be interpreted as an
-  <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. The difference between <code>@id</code> and <code>@vocab</code> is how values are expanded
-  to <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>. <code>@vocab</code> first tries to expand the value
-  by interpreting it as <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. If no matching <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is found in the
-  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, it tries to expand it as <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-  if there's a colon in the value; otherwise, it will expand the value using the
-  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a> vocabulary mapping, if present, or by interpreting it
-  as <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Values coerced to <code>@id</code> in contrast are expanded as
-  <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> if a colon is present; otherwise, they are interpreted
-  as <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
-
-<p><a class="tref internalDFN" title="term" href="#dfn-term">Terms</a> or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> used as the value of a
-  <code>@type</code> key may be defined within the same context. This means that one may specify a
-  <a class="tref internalDFN" title="term" href="#dfn-term">term</a> like <code>xsd</code> and then use <code>xsd:integer</code> within the same
-  context definition.</p>
-
-<p>The example below demonstrates how a JSON-LD author can coerce values to
-<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed values</a> and <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.</p>
-
-<div class="example"><div class="example-title"><span>Example 24</span>: Expanded term definition with types</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;age&quot;:
-    <span class="diff">{
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    }</span>,
-    &quot;homepage&quot;:
-    <span class="diff">{
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }</span>
-  },
-  &quot;@id&quot;: &quot;http://example.com/people#john&quot;,
-  &quot;name&quot;: &quot;John Smith&quot;,
-  &quot;age&quot;: <span class="diff">&quot;41&quot;</span>,
-  &quot;homepage&quot;:
-  <span class="diff">[
-    &quot;http://personal.example.org/&quot;,
-    &quot;http://work.example.com/jsmith/&quot;
-  ]</span>
-}</pre></div>
-
-<p>The example shown above would generate the following data.</p>
-
-<table class="example">
-<thead>
-  <tr><th>Subject</th>
-  <th>Property</th>
-  <th>Value</th>
-  <th>Value Type</th>
-</tr></thead>
-<tbody>
-<tr>
-  <td>http://example.com/people#john</td>
-  <td>http://xmlns.com/foaf/0.1/name</td>
-  <td>John Smith</td>
-  <td> </td>
-</tr>
-<tr>
-  <td>http://example.com/people#john</td>
-  <td>http://xmlns.com/foaf/0.1/age</td>
-  <td>41</td>
-  <td>http://www.w3.org/2001/XMLSchema#integer</td>
-</tr>
-<tr>
-  <td rowspan="2">http://example.com/people#john</td>
-  <td rowspan="2">http://xmlns.com/foaf/0.1/homepage</td>
-  <td>http://personal.example.org/</td>
-  <td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a></td>
-</tr>
-<tr>
-  <td>http://work.example.com/jsmith/</td>
-  <td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a></td>
-</tr>
-</tbody>
-</table>
-
-<p>Terms may also be defined using <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>
-  or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>. This allows coercion rules
-  to be applied to keys which are not represented as a simple <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.
-  For example:</p>
-
-<div class="example"><div class="example-title"><span>Example 25</span>: Term definitions using compact and absolute IRIs</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
-    &quot;<span class="diff">foaf:age</span>&quot;:
-    {
-      <span class="diff">&quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;</span>,
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    },
-    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
-    {
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;foaf:name&quot;: &quot;John Smith&quot;,
-  &quot;<span class="diff">foaf:age</span>&quot;: &quot;41&quot;,
-  &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
-  [
-    &quot;http://personal.example.org/&quot;,
-    &quot;http://work.example.com/jsmith/&quot;
-  ]
-}</pre></div>
-
-<p>In this case the <code>@id</code> definition in the term definition is optional.
-  If it does exist, the <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> representing
-  the term will always be expanded to <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> defined by the <code>@id</code>
-  key—regardless of whether a prefix is defined or not.</p>
-
-<p>Type coercion is always performed using the unexpanded value of the key. In the
-  example above, that means that type coercion is done looking for <code>foaf:age</code>
-  in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and not for the corresponding, expanded
-  <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> <code>http://xmlns.com/foaf/0.1/age</code>.</p>
-
-<div class="note"><div class="note-title"><span>Note</span></div><p class="">Keys in the context are treated as <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> for the purpose of
-  expansion and value coercion. At times, this may result in multiple representations for the same expanded <abbr title="Internationalized Resource Identifier">IRI</abbr>.
-  For example, one could specify that <code>dog</code> and <code>cat</code> both expanded to <code>http://example.com/vocab#animal</code>.
-  Doing this could be useful for establishing different type coercion or language specification rules. It also allows a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> (or even an
-  absolute <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>) to be defined as something else entirely. For example, one could specify that
-  the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> <code>http://example.org/zoo</code> should expand to
-  <code>http://example.org/river</code>, but this usage is discouraged because it would lead to a
-  great deal of confusion among developers attempting to understand the JSON-LD document.</p></div>
-
-
-</div>
-
-<div class="informative section" id="embedding">
-  <h3><span class="secno">6.6 </span>Embedding</h3><p><em>This section is non-normative.</em></p>
-
-  <p><dfn title="embedding" id="dfn-embedding">Embedding</dfn> is a JSON-LD feature that allows an author to
-    use <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> as
-    <a class="tref internalDFN" title="property" href="#dfn-property">property</a> values. This is a commonly used mechanism for
-    creating a parent-child relationship between two <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>.</p>
-
-  <p>The example shows two nodes related by a property from the first node:</p>
-
-  <div class="example"><div class="example-title"><span>Example 26</span>: Embedding a node object as property value of another node object</div><pre class="example">{
-...
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;<span class="diff">knows</span>&quot;:
-  {
-    &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">Person</span>&quot;,
-    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">Gregg Kellogg</span>&quot;,
-  }
-...
-}</pre></div>
-
-  <p>
-    A <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>, like the one used above, may be used in
-    any value position in the body of a JSON-LD document.</p>
-</div>
-
-<div class="informative section" id="advanced-context-usage">
-  <h3><span class="secno">6.7 </span>Advanced Context Usage</h3><p><em>This section is non-normative.</em></p>
-
-  <p>Section <a href="#the-context" class="sec-ref"><span class="secno">5.1</span> <span class="sec-title">The Context</span></a> introduced the basics of what makes
-  JSON-LD work. This section expands on the basic principles of the
-  <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and demonstrates how more advanced use cases can
-  be achieved using JSON-LD. </p>
-
-  <p>In general, contexts may be used at any time a
-    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is defined. The only time that one cannot
-    express a context is inside a context definition itself. For example, a
-    <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> may use more than one context at different
-    points in a document:</p>
-
-  <div class="example"><div class="example-title"><span>Example 27</span>: Using multiple contexts</div><pre class="example">[
-  {
-    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/person.jsonld&quot;,</span>
-    &quot;name&quot;: &quot;Manu Sporny&quot;,
-    &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-    &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
-  },
-  {
-    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/place.jsonld&quot;,</span>
-    &quot;name&quot;: &quot;The Empire State Building&quot;,
-    &quot;description&quot;: &quot;The Empire State Building is a 102-story landmark in New York City.&quot;,
-    &quot;geo&quot;: {
-      &quot;latitude&quot;: &quot;40.75&quot;,
-      &quot;longitude&quot;: &quot;73.98&quot;
-    }
-  }
-]</pre></div>
-
-  <p>Duplicate context <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> are overridden using a
-    most-recently-defined-wins mechanism.</p>
-
-  <div class="example"><div class="example-title"><span>Example 28</span>: Scoped contexts within node objects</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-  {
-    &quot;name&quot;: &quot;http://example.com/person#name,
-    &quot;details&quot;: &quot;http://example.com/person#details&quot;
-  }&quot;</span>,
-  &quot;<span class="diff">name</span>&quot;: &quot;Markus Lanthaler&quot;,
-  ...
-  &quot;details&quot;:
-  {
-    <span class="diff">&quot;@context&quot;:
-    {
-      &quot;name&quot;: &quot;http://example.com/organization#name&quot;
-    }</span>,
-    &quot;<span class="diff">name</span>&quot;: &quot;Graz University of Technology&quot;
-  }
-}</pre></div>
-
-  <p>In the example above, the <code>name</code> <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is overridden
-    in the more deeply nested <code>details</code> structure. Note that this is
-    rarely a good authoring practice and is typically used when working with
-    legacy applications that depend on a specific structure of the
-    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. If a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is redefined within a
-    context, all previous rules associated with the previous definition are
-    removed. If a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is redefined to <code>null</code>,
-    the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is effectively removed from the list of
-    <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> defined in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</p>
-
-  <p>Multiple contexts may be combined using an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, which is processed
-    in order. The set of contexts defined within a specific <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> are
-    referred to as <dfn title="local-context" id="dfn-local-context">local contexts</dfn>. The
-    <dfn title="active-context" id="dfn-active-context">active context</dfn> refers to the accumulation of
-    <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local contexts</a> that are in scope at a
-    specific point within the document. Setting a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>
-    to <code>null</code> effectively resets the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>
-    to an empty context. The following example specifies an external context
-    and then layers an embedded context on top of the external context:</p>
-
-  <div class="example"><div class="example-title"><span>Example 29</span>: Combining external and local contexts</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;: [
-    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
-    {
-      &quot;pic&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;
-    }
-  ],</span>
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
-  <span class="diff">&quot;pic&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;</span>
-}</pre></div>
-
-  <div class="note"><div class="note-title"><span>Note</span></div><p class="">When possible, the <a class="tref internalDFN" title="context" href="#dfn-context">context</a> definition should be put
-    at the top of a JSON-LD document. This makes the document easier to read and
-    might make streaming parsers more efficient. Documents that do not have the
-    <a class="tref internalDFN" title="context" href="#dfn-context">context</a> at the top are still conformant JSON-LD.</p></div>
-
-  <div class="note"><div class="note-title"><span>Note</span></div><p class="">To avoid forward-compatibility issues, <a class="tref internalDFN" title="term" href="#dfn-term">terms</a>
-    starting with an <code>@</code> character are to be avoided as they
-    might be used as <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> in future versions
-    of JSON-LD. Terms starting with an <code>@</code> character that are not
-    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">JSON-LD 1.0 keywords</a> are treated as any other term, i.e.,
-    they are ignored unless mapped to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Furthermore, the use of
-    empty <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> (<code>&quot;&quot;</code>) is not allowed as
-    not all programming languages are able to handle empty JSON keys.</p></div>
-</div>
-
-<div class="normative section" id="interpreting-json-as-json-ld">
-  <h3><span class="secno">6.8 </span>Interpreting JSON as JSON-LD</h3>
-
-  <p>Ordinary JSON documents can be interpreted as JSON-LD by referencing a JSON-LD
-    <a class="tref internalDFN" title="context" href="#dfn-context">context</a> document in an HTTP Link Header. Doing so allows JSON to
-    be unambiguously machine-readable without requiring developers to drastically
-    change their documents and provides an upgrade path for existing infrastructure
-    without breaking existing clients that rely on the <code>application/json</code>
-    media type.</p>
-
-  <p>In order to use an external context with an ordinary JSON document, an author
-    <em class="rfc2119" title="MUST">MUST</em> specify an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> to a valid <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> in
-    an HTTP Link Header [<cite><a class="bibref" href="#bib-RFC5988">RFC5988</a></cite>] using the <code>http://www.w3.org/ns/json-ld#context</code>
-    link relation. The referenced document <em class="rfc2119" title="MUST">MUST</em> have a top-level <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.
-    The <code>@context</code> subtree within that object is added to the top-level
-    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> of the referencing document. If an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-    is at the top-level of the referencing document and its items are
-    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a>, the <code>@context</code>
-    subtree is added to all <a class="tref internalDFN" title="array" href="#dfn-array">array</a> items. All extra information located outside
-    of the <code>@context</code> subtree in the referenced document <em class="rfc2119" title="MUST">MUST</em> be
-    discarded. Effectively this means that the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is
-    initialized with the referenced external <a class="tref internalDFN" title="context" href="#dfn-context">context</a>.</p>
-
-  <p>The following example demonstrates the use of an external context with an
-    ordinary JSON document:</p>
-
-  <div class="example"><div class="example-title"><span>Example 30</span>: Referencing a JSON-LD context from a JSON document via an HTTP Link Header</div><pre class="example">GET /ordinary-json-document.json HTTP/1.1
-Host: example.com
-Accept: application/ld+json,application/json,*/*;q=0.1
-
-====================================
-
-HTTP/1.0 200 OK
-...
-Content-Type: <span class="diff">application/json</span>
-<span class="diff">Link: &lt;http://json-ld.org/contexts/person.jsonld&gt;; rel=&quot;http://www.w3.org/ns/json-ld#context&quot;; type=&quot;application/ld+json&quot;</span>
-
-{
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
-  &quot;image&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
-}</pre></div>
-
-  <p>Please note that <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD documents</a>
-    served with the <code>application/ld+json</code>
-    media type <em class="rfc2119" title="MUST">MUST</em> have all context information, including references to external
-    contexts, within the body of the document. Contexts linked via a
-    <code>http://www.w3.org/ns/json-ld#context</code> HTTP Link Header <em class="rfc2119" title="MUST">MUST</em> be
-    ignored for such documents.</p>
-</div>
-
-<div class="informative section" id="string-internationalization">
-  <h3><span class="secno">6.9 </span>String Internationalization</h3><p><em>This section is non-normative.</em></p>
-
-  <p>At times, it is important to annotate a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>
-    with its language. In JSON-LD this is possible in a variety of ways.
-    First, it is possible to define a default language for a JSON-LD document
-    by setting the <code>@language</code> key in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>:</p>
-
-  <div class="example"><div class="example-title"><span>Example 31</span>: Setting the default language of a JSON-LD document</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-  {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-  }</span>,
-  &quot;name&quot;: <span class="diff">&quot;花澄&quot;</span>,
-  &quot;occupation&quot;: <span class="diff">&quot;科学者&quot;</span>
-}</pre></div>
-
-  <p>The example above would associate the <code>ja</code> language
-    code with the two <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> <em>花澄</em> and <em>科学者</em>.
-    Languages codes are defined in [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>]. The default language applies to all
-    <a class="tref internalDFN" title="string" href="#dfn-string">string</a> values that are not <a href="#type-coercion">type coerced</a>.</p>
-
-  <p>To clear the default language for a subtree, <code>@language</code> can
-    be set to <code>null</code> in a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> as follows:</p>
-
-  <div class="example"><div class="example-title"><span>Example 32</span>: Clearing default language</div><pre class="example">{
-  &quot;@context&quot;: {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-  },
-  &quot;name&quot;: &quot;花澄&quot;,
-  &quot;details&quot;: {
-<span class="diff">    &quot;@context&quot;: {
-      &quot;@language&quot;: null
-    }</span>,
-    &quot;occupation&quot;: &quot;Ninja&quot;
-  }
-}</pre></div>
-
-  <p>Second, it is possible to associate a language with a specific <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
-    using an <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a>:</p>
-
-  <div class="example"><div class="example-title"><span>Example 33</span>: Expanded term definition with language</div><pre class="example">{
-  &quot;@context&quot;: {
-    ...
-    &quot;ex&quot;: &quot;http://example.com/vocab/&quot;,
-    &quot;@language&quot;: &quot;ja&quot;,
-    &quot;name&quot;: { &quot;@id&quot;: &quot;ex:name&quot;, <span class="diff">&quot;@language&quot;: null</span> },
-    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot; },
-    &quot;occupation_en&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;en&quot;</span> },
-    &quot;occupation_cs&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;cs&quot;</span> }
-  },
-  <span class="diff">&quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
-  &quot;occupation&quot;: &quot;忍者&quot;,
-  &quot;occupation_en&quot;: &quot;Ninja&quot;,
-  &quot;occupation_cs&quot;: &quot;Nindža&quot;,</span>
-  ...
-}</pre></div>
-
-  <p>The example above would associate <em>忍者</em> with the specified default
-    language code <code>ja</code>, <em>Ninja</em> with the language code
-    <code>en</code>, and <em>Nindža</em> with the language code <code>cs</code>.
-    The value of <code>name</code>, <em>Yagyū Muneyoshi</em> wouldn't be
-    associated with any language code since <code>@language</code> was reset to
-    <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a>.</p>
-
-  <div class="note"><div class="note-title"><span>Note</span></div><p class="">Language associations are only applied to plain
-    <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>. <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">Typed values</a>
-    or values that are subject to <a href="#type-coercion">type coercion</a>
-    are not language tagged.</p></div>
-
-  <p>Just as in the example above, systems often need to express the value of a
-    property in multiple languages. Typically, such systems also try to ensure that
-    developers have a programmatically easy way to navigate the data structures for
-    the language-specific data. In this case, <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language maps</a>
-    may be utilized.</p>
-
-  <div class="example"><div class="example-title"><span>Example 34</span>: Language map expressing a property in three languages</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    ...
-    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@container&quot;: &quot;@language&quot;</span> }
-  },
-  &quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
-  &quot;occupation&quot;:
-  <span class="diff">{
-    &quot;ja&quot;: &quot;忍者&quot;,
-    &quot;en&quot;: &quot;Ninja&quot;,
-    &quot;cs&quot;: &quot;Nindža&quot;
-  }</span>
-  ...
-}</pre></div>
-
-  <p>The example above expresses exactly the same information as the previous
-    example but consolidates all values in a single property. To access the
-    value in a specific language in a programming language supporting dot-notation
-    accessors for object properties, a developer may use the
-    <code>property.language</code> pattern. For example, to access the occupation
-    in English, a developer would use the following code snippet:
-    <code>obj.occupation.en</code>.</p>
-
-  <p>Third, it is possible to override the default language by using a
-    <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>:</p>
-
-  <div class="example"><div class="example-title"><span>Example 35</span>: Overriding default language using an expanded value</div><pre class="example">{
-  &quot;@context&quot;: {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-  },
-  &quot;name&quot;: &quot;花澄&quot;,
-  &quot;occupation&quot;: <span class="diff">{
-    &quot;@value&quot;: &quot;Scientist&quot;,
-    &quot;@language&quot;: &quot;en&quot;
-  }</span>
-}</pre></div>
-
-  <p>This makes it possible to specify a plain string by omitting the
-    <code>@language</code> tag or setting it to <code>null</code> when expressing
-    it using a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>:</p>
-
-  <div class="example"><div class="example-title"><span>Example 36</span>: Removing language information using an expanded value</div><pre class="example">{
-  &quot;@context&quot;: {
-    ...
-    &quot;@language&quot;: &quot;ja&quot;
-  },
-  &quot;name&quot;: <span class="diff">{
-    &quot;@value&quot;: &quot;Frank&quot;
-  }</span>,
-  &quot;occupation&quot;: {
-    &quot;@value&quot;: &quot;Ninja&quot;,
-    &quot;@language&quot;: &quot;en&quot;
-  },
-  &quot;speciality&quot;: &quot;手裏剣&quot;
-}</pre></div>
-
-</div>
-
-<div class="informative section" id="iri-expansion-within-a-context">
-  <h3><span class="secno">6.10 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion within a Context</h3><p><em>This section is non-normative.</em></p>
-  <p>In general, normal <abbr title="Internationalized Resource Identifier">IRI</abbr> expansion rules apply
-    anywhere an <abbr title="Internationalized Resource Identifier">IRI</abbr> is expected (see <a class="sectionRef sec-ref" href="#iris">section 5.2 IRIs</a>). Within
-    a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> definition, this can mean that terms defined
-    within the context may also be used within that context as long as
-    there are no circular dependencies. For example, it is common to use
-    the <code>xsd</code> namespace when defining <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>s:</p>
-
-<div class="example"><div class="example-title"><span>Example 37</span>: IRI expansion within a context</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    <span class="diff">&quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;</span>,
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;age&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
-      &quot;@type&quot;: <span class="diff">&quot;xsd:integer&quot;</span>
-    },
-    &quot;homepage&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  ...
-}</pre></div>
-
-<p>In this example, the <code>xsd</code> <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is defined
-  and used as a <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> for the <code>@type</code> coercion
-  of the <code>age</code> property.</p>
-
-<p><a class="tref internalDFN" title="term" href="#dfn-term">Terms</a> may also be used when defining the <abbr title="Internationalized Resource Identifier">IRI</abbr> of another
-<a class="tref internalDFN" title="term" href="#dfn-term">term</a>:</p>
-
-<div class="example"><div class="example-title"><span>Example 38</span>: Using a term to define the IRI of another term within a context</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    &quot;name&quot;: <span class="diff">&quot;foaf:name&quot;</span>,
-    &quot;age&quot;:
-    {
-      &quot;@id&quot;: <span class="diff">&quot;foaf:age&quot;</span>,
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    },
-    &quot;homepage&quot;:
-    {
-      &quot;@id&quot;: <span class="diff">&quot;foaf:homepage&quot;</span>,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  ...
-}</pre></div>
-
-<p><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">Compact IRIs</a>
-  and <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> may be used on the left-hand side of a
-  <a class="tref internalDFN" title="term" href="#dfn-term">term</a> definition.</p>
-
-<div class="example"><div class="example-title"><span>Example 39</span>: Using a compact IRI as a term</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    &quot;name&quot;: &quot;foaf:name&quot;,
-    &quot;<span class="diff">foaf:age</span>&quot;:
-    {
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    },
-    &quot;<span class="diff">foaf:homepage</span>&quot;:
-    <span class="diff">{
-      &quot;@type&quot;: &quot;@id&quot;
-    }</span>
-  },
-  ...
-}</pre></div>
-
-<p>
-In this example, the <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> form is used in two different
-ways.
-In the first approach, <code>foaf:age</code> declares both the
-<a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> for the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> (using short-form) as well as the
-<code>@type</code> associated with the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. In the second
-approach, only the <code>@type</code> associated with the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is
-specified. The full <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> for
-<code>foaf:homepage</code> is determined by looking up the <code>foaf</code>
-<a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> in the
-<a class="tref internalDFN" title="context" href="#dfn-context">context</a>.
-</p>
-
-<p>
-<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">Absolute IRIs</a> may also be used in the key position in a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>:
-</p>
-
-<div class="example"><div class="example-title"><span>Example 40</span>: Associating context definitions with absolute IRIs</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
-    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
-    &quot;name&quot;: &quot;foaf:name&quot;,
-    &quot;foaf:age&quot;:
-    {
-      &quot;@id&quot;: &quot;foaf:age&quot;,
-      &quot;@type&quot;: &quot;xsd:integer&quot;
-    },
-    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
-    {
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  ...
-}</pre></div>
-
-<p>In order for the <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> to match above, the <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-  needs to be used in the <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a>. Also note that <code>foaf:homepage</code>
-  will not use the <code>{ &quot;@type&quot;: &quot;@id&quot; }</code> declaration because
-  <code>foaf:homepage</code> is not the same as <code>http://xmlns.com/foaf/0.1/homepage</code>.
-  That is, <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> are looked up in a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> using
-  direct string comparison before the <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> lookup mechanism is applied.</p>
-
-<div class="note"><div class="note-title"><span>Note</span></div><p class="">While it is possible to define a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or
-  an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> to expand to some other unrelated <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-  (for example, <code>foaf:name</code> expanding to
-  <code>http://example.org/unrelated#species</code>), such usage is strongly
-  discouraged.</p></div>
-
-<p>The only exception for using terms in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is that
-  circular definitions are not allowed. That is,
-  a definition of <em>term1</em> cannot depend on the
-  definition of <em>term2</em> if <em>term2</em> also depends on
-  <em>term1</em>. For example, the following <a class="tref internalDFN" title="context" href="#dfn-context">context</a> definition
-  is illegal:</p>
-<div class="example"><div class="example-title"><span>Example 41</span>: Illegal circular definition of terms within a context</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    <span class="diff">&quot;term1&quot;: &quot;term2:foo&quot;,
-    &quot;term2&quot;: &quot;term1:bar&quot;</span>
-  },
-  ...
-}</pre></div>
-</div>
-
-<div class="informative section" id="sets-and-lists">
-<h3><span class="secno">6.11 </span>Sets and Lists</h3><p><em>This section is non-normative.</em></p>
-
-<p>A JSON-LD author can express multiple values in a compact way by using
-  <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a>. Since graphs do not describe ordering for links
-  between nodes, arrays in JSON-LD do not provide an ordering of the
-  contained elements by default. This is exactly the opposite from regular JSON
-  arrays, which are ordered by default. For example, consider the following
-  simple document:</p>
-
-<div class="example"><div class="example-title"><span>Example 42</span>: Multiple values with no inherent order</div><pre class="example">{
-...
-  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
-  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;JB&quot; ]</span>,
-...
-}</pre></div>
-
-<p>The example shown above would result in the following data being generated,
-  each relating the node to an individual value, with no inherent order:</p>
-
-<table class="example">
-<thead>
-  <tr><th>Subject</th>
-  <th>Property</th>
-  <th>Value</th>
-</tr></thead>
-<tbody>
-<tr>
-  <td>http://example.org/people#joebob</td>
-  <td>http://xmlns.com/foaf/0.1/nick</td>
-  <td>joe</td>
-</tr>
-<tr>
-  <td>http://example.org/people#joebob</td>
-  <td>http://xmlns.com/foaf/0.1/nick</td>
-  <td>bob</td>
-</tr>
-<tr>
-  <td>http://example.org/people#joebob</td>
-  <td>http://xmlns.com/foaf/0.1/nick</td>
-  <td>JB</td>
-</tr>
-</tbody>
-</table>
-
-<p>Multiple values may also be expressed using the expanded form:</p>
-
-<div class="example"><div class="example-title"><span>Example 43</span>: Using an expanded form to set multiple values</div><pre class="example">{
-  &quot;@id&quot;: &quot;http://example.org/articles/8&quot;,
-  &quot;dc:title&quot;: <span class="diff">
-  [
-    {
-      &quot;@value&quot;: &quot;Das Kapital&quot;,
-      &quot;@language&quot;: &quot;de&quot;
-    },
-    {
-      &quot;@value&quot;: &quot;Capital&quot;,
-      &quot;@language&quot;: &quot;en&quot;
-    }
-  ]</span>
-}</pre></div>
-
-<p>The example shown above would generate the following data, again with
-  no inherent order:</p>
-
-<table class="example">
-<thead>
-  <tr><th>Subject</th>
-  <th>Property</th>
-  <th>Value</th>
-  <th>Language</th>
-</tr></thead>
-<tbody>
-<tr>
-  <td>http://example.org/articles/8</td>
-  <td>http://purl.org/dc/terms/title</td>
-  <td>Das Kapital</td>
-  <td>de</td>
-</tr>
-<tr>
-  <td>http://example.org/articles/8</td>
-  <td>http://purl.org/dc/terms/title</td>
-  <td>Capital</td>
-  <td>en</td>
-</tr>
-</tbody>
-</table>
-
-<p>As the notion of ordered collections is rather important in data
-  modeling, it is useful to have specific language support. In JSON-LD,
-  a list may be represented using the <code>@list</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> as follows:</p>
-<div class="example"><div class="example-title"><span>Example 44</span>: An ordered collection of values in JSON-LD</div><pre class="example">{
-...
-  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
-  &quot;foaf:nick&quot;:
-  <span class="diff">{
-    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
-  }</span>,
-...
-}</pre></div>
-
-<p>This describes the use of this <a class="tref internalDFN" title="array" href="#dfn-array">array</a> as being ordered,
-  and order is maintained when processing a document. If every use of a given multi-valued
-  property is a list, this may be abbreviated by setting <code>@container</code>
-  to <code>@list</code> in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>:</p>
-<div class="example"><div class="example-title"><span>Example 45</span>: Specifying that a collection is ordered in the context</div><pre class="example">{
-  <span class="diff">&quot;@context&quot;:
-  {
-    ...
-    &quot;nick&quot;:
-    {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/nick&quot;,
-      &quot;@container&quot;: &quot;@list&quot;
-    }
-  }</span>,
-...
-  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
-  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]</span>,
-...
-}</pre></div>
-
-<div class="note"><div class="note-title"><span>Note</span></div><p class="">List of lists are not allowed in this version of JSON-LD.
-  This decision was made due to the extreme amount of added complexity when
-  processing lists of lists.</p></div>
-
-<p>While <code>@list</code> is used to describe <em>ordered lists</em>,
-  the <code>@set</code> keyword is used to describe <em>unordered sets</em>.
-  The use of <code>@set</code> in the body of a JSON-LD document
-  is optimized away when processing the document, as it is just syntactic
-  sugar. However, <code>@set</code> is helpful when used within the context
-  of a document.
-  Values of terms associated with a <code>@set</code> or <code>@list</code> container
-  are always represented in the form of an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
-  even if there is just a single value that would otherwise be optimized to
-  a non-array form in compact form (see
-  <a class="sectionRef sec-ref" href="#compact-document-form">section 6.18 Compact Document Form</a>). This makes post-processing of
-  JSON-LD documents easier as the data is always in array form, even if the
-  array only contains a single value.</p>
-
-</div>
-
-<div class="informative section" id="reverse-properties">
-  <h3><span class="secno">6.12 </span>Reverse Properties</h3><p><em>This section is non-normative.</em></p>
-
-  <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 2</span>: Reverse properties</div><div class="atrisk">
-    <p class="atrisk-head">Note: This feature is
-      <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
-      be removed from this specification based on feedback. Please send feedback to
-      <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
-      For the current status see
-      <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
-    <p>Reverse properties might be removed from JSON-LD 1.0 if implementation
-      experience reveals problems with supporting this feature.</p>
-  </div></div>
-
-  <p>JSON-LD serializes directed <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">graphs</a>. That means that
-    every <a class="tref internalDFN" title="property" href="#dfn-property">property</a> points from a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> to another <a class="tref internalDFN" title="node" href="#dfn-node">node</a>
-    or <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">value</a>. However, in some cases, it is desirable
-    to serialize in the reverse direction. Consider for example the case where a person
-    and its children should be described in a document. If the used vocabulary does not
-    provide a <em>children</em> <a class="tref internalDFN" title="property" href="#dfn-property">property</a> but just a <em>parent</em>
-    <a class="tref internalDFN" title="property" href="#dfn-property">property</a>, every <a class="tref internalDFN" title="node" href="#dfn-node">node</a> representing a child would have to
-    be expressed with a <a class="tref internalDFN" title="property" href="#dfn-property">property</a> pointing to the parent as in the following
-    example.</p>
-
-  <div class="example"><div class="example-title"><span>Example 46</span>: A document with children linking to their parent</div><pre class="example">[
-  {
-    <span class="diff">&quot;@id&quot;: &quot;#homer&quot;</span>,
-    &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;
-  },
-  {
-    &quot;@id&quot;: &quot;#bart&quot;,
-    &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;,
-    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span>
-  },
-  {
-    &quot;@id&quot;: &quot;#lisa&quot;,
-    &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;,
-    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span>
-  }
-]</pre></div>
-
-  <p>Expressing such data is much simpler by using JSON-LD's <code>@reverse</code>
-    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>:</p>
-
-  <div class="example"><div class="example-title"><span>Example 47</span>: A person and its children using a reverse property</div><pre class="example">{
-  &quot;@id&quot;: &quot;#homer&quot;,
-  &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;,
-  <span class="diff">&quot;@reverse&quot;</span>: {
-    <span class="diff">&quot;http://example.com/vocab#parent&quot;</span>: [
-      {
-        &quot;@id&quot;: &quot;#bart&quot;,
-        &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;
-      },
-      {
-        &quot;@id&quot;: &quot;#lisa&quot;,
-        &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;
-      }
-    ]
-  }
-}</pre></div>
-
-  <p>The <code>@reverse</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> can also be used in
-    <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definitions</a>
-    to create reverse properties as shown in the following example:</p>
-
-
-  <div class="example"><div class="example-title"><span>Example 48</span>: Using @reverse to define reverse properties</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://example.com/vocab#name&quot;,
-    <span class="diff">&quot;children&quot;: { &quot;@reverse&quot;: &quot;http://example.com/vocab#parent&quot; }</span>
-  },
-  &quot;@id&quot;: &quot;#homer&quot;,
-  &quot;name&quot;: &quot;Homer&quot;,
-  <span class="diff">&quot;children&quot;</span>: [
-    {
-      &quot;@id&quot;: &quot;#bart&quot;,
-      &quot;name&quot;: &quot;Bart&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;#lisa&quot;,
-      &quot;name&quot;: &quot;Lisa&quot;
-    }
-  ]
-}</pre></div>
-</div>
-
-
-<div class="informative section" id="named-graphs">
-  <h3><span class="secno">6.13 </span>Named Graphs</h3><p><em>This section is non-normative.</em></p>
-
-  <p>At times, it is necessary to make statements about a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>
-    itself, rather than just a single <a class="tref internalDFN" title="node" href="#dfn-node">node</a>. This can be done by
-    grouping a set of <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> using the <code>@graph</code>
-    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. A developer may also name data expressed using the
-    <code>@graph</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> by pairing it with an
-    <code>@id</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> as shown in the following example:</p>
-
-  <div class="example"><div class="example-title"><span>Example 49</span>: Identifying and making statements about a graph</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;generatedAt&quot;: {
-      &quot;@id&quot;: &quot;http://www.w3.org/ns/prov#generatedAtTime&quot;,
-      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#date&quot;
-    },
-    &quot;Person&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  <span class="diff">&quot;@id&quot;: &quot;http://example.org/graphs/73&quot;,
-  &quot;generatedAt&quot;: &quot;2012-04-09&quot;,
-  &quot;@graph&quot;:</span>
-  [
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-      &quot;@type&quot;: &quot;Person&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;,
-      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-      &quot;@type&quot;: &quot;Person&quot;,
-      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
-      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
-    }
-  ]
-}</pre></div>
-
-  <p>The example above expresses a <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graph</a> that is identified
-    by the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> <code>http://example.org/graphs/73</code>. That
-    graph is composed of the statements about Manu and Gregg. Metadata about
-    the graph itself is expressed via the <code>generatedAt</code> property,
-    which specifies when the graph was generated. An alternative view of the
-    information above is represented in table form below:</p>
-
-  <table class="example">
-  <thead>
-    <tr><th>Graph</th>
-    <th>Subject</th>
-    <th>Property</th>
-    <th>Value</th>
-    <th>Value Type</th>
-  </tr></thead>
-  <tbody>
-  <tr>
-    <td> </td>
-    <td>http://example.org/graphs/73</td>
-    <td>http://www.w3.org/ns/prov#generatedAtTime</td>
-    <td>2012-04-09</td>
-    <td>http://www.w3.org/2001/XMLSchema#date</td>
-  </tr>
-  <tr>
-    <td>http://example.org/graphs/73</td>
-    <td>http://manu.sporny.org/i/public</td>
-    <td>http://www.w3.org/2001/XMLSchema#type</td>
-    <td>http://xmlns.com/foaf/0.1/Person</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>http://example.org/graphs/73</td>
-    <td>http://manu.sporny.org/i/public</td>
-    <td>http://xmlns.com/foaf/0.1/name</td>
-    <td>Manu Sporny</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>http://example.org/graphs/73</td>
-    <td>http://manu.sporny.org/i/public</td>
-    <td>http://xmlns.com/foaf/0.1/knows</td>
-    <td>http://greggkellogg.net/foaf#me</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>http://example.org/graphs/73</td>
-    <td>http://greggkellogg.net/foaf#me</td>
-    <td>http://www.w3.org/2001/XMLSchema#type</td>
-    <td>http://xmlns.com/foaf/0.1/Person</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>http://example.org/graphs/73</td>
-    <td>http://greggkellogg.net/foaf#me</td>
-    <td>http://xmlns.com/foaf/0.1/name</td>
-    <td>Gregg Kellogg</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>http://example.org/graphs/73</td>
-    <td>http://greggkellogg.net/foaf#me</td>
-    <td>http://xmlns.com/foaf/0.1/knows</td>
-    <td>http://manu.sporny.org/i/public</td>
-    <td></td>
-  </tr>
-  </tbody>
-  </table>
-
-  <p>When a JSON-LD document's top-level structure is an
-    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">object</a> that contains no other
-    <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> than <code>@graph</code> and
-    optionally <code>@context</code> (properties that are not mapped to an
-    <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> are ignored),
-    <code>@graph</code> is considered to express the otherwise implicit
-    <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a>. This mechanism can be useful when a number
-    of <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> exist at the document's top level that
-    share the same <a class="tref internalDFN" title="context" href="#dfn-context">context</a>, which is, e.g., the case when a
-    document is <a href="#flattened-document-form">flattened</a>. The
-    <code>@graph</code> keyword collects such nodes in an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
-    and allows the use of a shared context.</p>
-
-  <div class="example"><div class="example-title"><span>Example 50</span>: Using @graph to explicitly express the default graph</div><pre class="example">{
-  &quot;@context&quot;: ...,
-  &quot;<span class="diff">@graph</span>&quot;:
-  [
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;,
-      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
-      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
-    }
-  ]
-}</pre></div>
-
-  <p>In this case, embedding doesn't work as each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>
-    references the other. This is equivalent to using multiple
-    <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> in array and defining
-    the <code>@context</code> within each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>:</p>
-
-  <div class="example"><div class="example-title"><span>Example 51</span>: Context needs to be duplicated if @graph is not used</div><pre class="example">[
-  {
-    <span class="diff">&quot;@context&quot;: ...,</span>
-    &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-    &quot;@type&quot;: &quot;foaf:Person&quot;,
-    &quot;name&quot;: &quot;Manu Sporny&quot;,
-    &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
-  },
-  {
-    <span class="diff">&quot;@context&quot;: ...,</span>
-    &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
-    &quot;@type&quot;: &quot;foaf:Person&quot;,
-    &quot;name&quot;: &quot;Gregg Kellogg&quot;,
-    &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
-  }
-]</pre></div>
-
-</div>
-
-<div class="informative section" id="identifying-blank-nodes">
-  <h3><span class="secno">6.14 </span>Identifying Blank Nodes</h3><p><em>This section is non-normative.</em></p>
-
-  <p>At times, it becomes necessary to be able to express information without
-    being able to uniquely identify the <a class="tref internalDFN" title="node" href="#dfn-node">node</a> with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.
-    This type of node is called a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>. JSON-LD does not require
-    all nodes to be identified using <code>@id</code>. However, some graph topologies
-    may require identifiers to be serializable. Graphs containing loops, e.g., cannot
-    be serialized using embedding alone, <code>@id</code> must be used to connect the nodes.
-    In these situations, one can use <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>,
-    which look like <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> using an underscore (<code>_</code>)
-    as scheme. This allows one to reference the node locally within the document, but
-    makes it impossible to reference the node from an external document. The
-    <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> is scoped  to the document in which it is used.</p>
-
-  <div class="example"><div class="example-title"><span>Example 52</span>: Specifying a local blank node identifier</div><pre class="example">{
-   ...
-   &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot;,
-   &quot;name&quot;: &quot;Secret Agent 1&quot;,
-   &quot;knows&quot;:
-     {
-       &quot;name&quot;: &quot;Secret Agent 2&quot;,
-       &quot;knows&quot;: { &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot; }
-     }
-}</pre></div>
-
-  <p>The example above contains information about to secrete agents that cannot be identified
-    with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. While expressing that <em>agent 1</em> knows <em>agent 2</em> is possible
-    without using <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>, it is
-    necessary assign <em>agent 1</em> an identifier so that it can be referenced from
-    <em>agent 2</em>.</p>
-  <p>It is worth nothing that blank node identifiers may be relabeled during processing.
-    If a developer finds that they refer to the <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> more than once,
-    they should consider naming the node using a dereferenceable <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> so that
-    it can also be referenced from other documents.</p>
-</div>
-
-<div class="informative section" id="aliasing-keywords">
-  <h3><span class="secno">6.15 </span>Aliasing Keywords</h3><p><em>This section is non-normative.</em></p>
-
-  <p>Each of the JSON-LD <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>,
-    except for <code>@context</code>, may be aliased to application-specific
-    keywords. This feature allows legacy JSON content to be utilized
-    by JSON-LD by re-using JSON keys that already exist in legacy documents.
-    This feature also allows developers to design domain-specific implementations
-    using only the JSON-LD <a class="tref internalDFN" title="context" href="#dfn-context">context</a>.</p>
-
-  <div class="example"><div class="example-title"><span>Example 53</span>: Aliasing keywords</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-     <span class="diff">&quot;url&quot;: &quot;@id&quot;</span>,
-     <span class="diff">&quot;a&quot;: &quot;@type&quot;</span>,
-     &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;
-  },
-  &quot;<span class="diff">url</span>&quot;: &quot;http://example.com/about#gregg&quot;,
-  &quot;<span class="diff">a</span>&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
-  &quot;name&quot;: &quot;Gregg Kellogg&quot;
-}</pre></div>
-
-  <p>In the example above, the <code>@id</code> and <code>@type</code>
-    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> have been given the aliases
-    <strong>url</strong> and <strong>a</strong>, respectively.</p>
-
-  <p>Since keywords cannot be redefined, they can also not be aliased to
-    other keywords.</p>
-</div>
-
-<div class="informative section" id="data-indexing">
-  <h3><span class="secno">6.16 </span>Data Indexing</h3><p><em>This section is non-normative.</em></p>
-
-  <p>Databases are typically used to make access to
-    data more efficient. Developers often extend this sort of functionality into
-    their application data to deliver similar performance gains. Often this
-    data does not have any meaning from a Linked Data standpoint, but is
-    still useful for an application.</p>
-
-  <p>JSON-LD introduces the notion of <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index maps</a>
-    that can be used to structure data into a form that is
-    more efficient to access. The data indexing feature allows an author to
-    structure data using a simple key-value map where the keys do not map
-    to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>. This enables direct access to data
-    instead of having to scan an array in search of a specific item.
-    In JSON-LD such data can be specified by associating the
-    <code>@index</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> with a
-    <code>@container</code> declaration in the context:</p>
-
-  <div class="example"><div class="example-title"><span>Example 54</span>: Indexing data in JSON-LD</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-     &quot;schema&quot;: &quot;http://schema.org/&quot;,
-     &quot;name&quot;: &quot;schema:name&quot;,
-     &quot;body&quot;: &quot;schema:articleBody&quot;,
-     &quot;words&quot;: &quot;schema:wordCount&quot;,
-     &quot;post&quot;: {
-       &quot;@id&quot;: &quot;schema:blogPost&quot;,
-       <span class="diff">&quot;@container&quot;: &quot;@index&quot;</span>
-     }
-  },
-  &quot;@id&quot;: &quot;http://example.com/&quot;,
-  &quot;@type&quot;: &quot;schema:Blog&quot;,
-  &quot;name&quot;: &quot;World Financial News&quot;,
-  <span class="diff">&quot;post&quot;: {
-     &quot;en&quot;: {
-       &quot;@id&quot;: &quot;http://example.com/posts/1/en&quot;,
-       &quot;body&quot;: &quot;World commodities were up today with heavy trading of crude oil...&quot;,
-       &quot;words&quot;: 1539
-     },
-     &quot;de&quot;: {
-       &quot;@id&quot;: &quot;http://example.com/posts/1/de&quot;,
-       &quot;body&quot;: &quot;Die Werte an Warenbörsen stiegen im Sog eines starken Handels von Rohöl...&quot;,
-       &quot;words&quot;: 1204
-     }</span>
-  }
-}</pre></div>
-
-  <p>In the example above, the <strong>blogPost</strong> <a class="tref internalDFN" title="term" href="#dfn-term">term</a> has
-    been marked as an <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a>. The <strong>en</strong>,
-    <strong>de</strong>, and <strong>ja</strong> keys will be ignored
-    semantically, but preserved syntactically, by the JSON-LD Processor.
-    This allows a developer to access the German version
-    of the <strong>blogPost</strong> using the following code snippet:
-    <code>obj.blogPost.de</code>.</p>
-
-  <p>The interpretation of the data above is expressed in
-    the table below. Note how the index keys do not appear in the Linked Data
-    below, but would continue to exist if the document were compacted or
-    expanded (see <a class="sectionRef sec-ref" href="#compact-document-form">section 6.18 Compact Document Form</a> and
-    <a class="sectionRef sec-ref" href="#expanded-document-form">section 6.17 Expanded Document Form</a>) using a JSON-LD processor:</p>
-
-  <table class="example">
-    <thead>
-      <tr><th>Subject</th>
-      <th>Property</th>
-      <th>Value</th>
-    </tr></thead>
-    <tbody>
-      <tr>
-        <td>http://example.com/</td>
-        <td>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</td>
-        <td>http://schema.org/Blog</td>
-      </tr>
-      <tr>
-        <td>http://example.com/</td>
-        <td>http://schema.org/name</td>
-        <td>World Financial News</td>
-      </tr>
-      <tr>
-        <td>http://example.com/</td>
-        <td>http://schema.org/blogPost</td>
-        <td>http://example.com/posts/1/en</td>
-      </tr>
-      <tr>
-        <td>http://example.com/</td>
-        <td>http://schema.org/blogPost</td>
-        <td>http://example.com/posts/1/de</td>
-      </tr>
-      <tr>
-        <td>http://example.com/posts/1/en</td>
-        <td>http://schema.org/articleBody</td>
-        <td>World commodities were up today with heavy trading of crude oil...</td>
-      </tr>
-      <tr>
-        <td>http://example.com/posts/1/en</td>
-        <td>http://schema.org/wordCount</td>
-        <td>1539</td>
-      </tr>
-      <tr>
-        <td>http://example.com/posts/1/de</td>
-        <td>http://schema.org/articleBody</td>
-        <td>Die Werte an Warenbörsen stiegen im Sog eines starken Handels von Rohöl...</td>
-      </tr>
-      <tr>
-        <td>http://example.com/posts/1/de</td>
-        <td>http://schema.org/wordCount</td>
-        <td>1204</td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<div class="informative section" id="expanded-document-form">
-  <h3><span class="secno">6.17 </span>Expanded Document Form</h3><p><em>This section is non-normative.</em></p>
-
-  <p>The JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>]
-    defines a method for <em>expanding</em> a JSON-LD document.
-    Expansion is the process of taking a JSON-LD document and applying a
-    <code>@context</code> such that all IRIs, types, and values
-    are expanded so that the <code>@context</code> is no longer necessary.</p>
-
-  <p>For example, assume the following JSON-LD input document:</p>
-
-  <div class="example"><div class="example-title"><span>Example 55</span>: Sample JSON-LD document</div><pre class="example">{
-   &quot;@context&quot;:
-   {
-      &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-      &quot;homepage&quot;: {
-        &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-        &quot;@type&quot;: &quot;@id&quot;
-      }
-   },
-   &quot;name&quot;: &quot;Manu Sporny&quot;,
-   &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-}</pre></div>
-
-  <p>Running the JSON-LD Expansion algorithm against the JSON-LD input document
-    provided above would result in the following output:</p>
-
-  <div class="example"><div class="example-title"><span>Example 56</span>: Expanded form for the previous example</div><pre class="example">[
-  {
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
-      { &quot;@value&quot;: &quot;Manu Sporny&quot; }
-    ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
-    ]
-  }
-]</pre></div>
-</div>
-
-<div class="informative section" id="compact-document-form">
-  <h3><span class="secno">6.18 </span>Compact Document Form</h3><p><em>This section is non-normative.</em></p>
-
-  <p>The JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>] defines
-    a method for <em>compacting</em> a JSON-LD document. Compaction is the process
-    of applying a developer-supplied context to shorten <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
-    to <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>
-    and JSON-LD values expressed in expanded form to simple values such as
-    <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> or <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>.
-    Often this makes it simpler to work with document as the data is expressed in
-    application-specific terms. Compacted documents are also typically easier to read
-    for humans.</p>
-
-  <p>For example, assume the following JSON-LD input document:</p>
-
-  <div class="example"><div class="example-title"><span>Example 57</span>: Sample expanded JSON-LD document</div><pre class="example">[
-  {
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: [ &quot;Manu Sporny&quot; ],
-    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
-      {
-       &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
-      }
-    ]
-  }
-]</pre></div>
-
-  <p>Additionally, assume the following developer-supplied JSON-LD context:</p>
-
-  <div class="example"><div class="example-title"><span>Example 58</span>: Sample context</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  }
-}</pre></div>
-
-  <p>Running the JSON-LD Compaction algorithm given the context supplied above
-    against the JSON-LD input document provided above would result in the following
-    output:</p>
-
-  <div class="example"><div class="example-title"><span>Example 59</span>: Compact form of the sample document once sample context has been applied</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;homepage&quot;: {
-      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    }
-  },
-  &quot;name&quot;: &quot;Manu Sporny&quot;,
-  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
-}</pre></div>
-</div>
-
-<div class="informative section" id="flattened-document-form">
-  <h3><span class="secno">6.19 </span>Flattened Document Form</h3><p><em>This section is non-normative.</em></p>
-
-  <p>The JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>] defines
-    a method for <em>flattening</em> a JSON-LD document. Flattening collects all
-    properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in a single <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> and labels
-    all <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> with
-    <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>.
-    This ensures a shape of the data and consequently may drastically simplify the code
-    required to process JSON-LD in certain applications.</p>
-
-  <p>For example, assume the following JSON-LD input document:</p>
-
-  <div class="example"><div class="example-title"><span>Example 60</span>: Sample JSON-LD document</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;knows&quot;: [
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;
-    },
-    {
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    }
-  ]
-}</pre></div>
-
-  <p>Running the JSON-LD Flattening algorithm against the JSON-LD input document in
-    the example above and using the same context would result in the following
-    output:</p>
-
-  <div class="example"><div class="example-title"><span>Example 61</span>: Flattened and compacted form for the previous example</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@graph&quot;: [
-    {
-      &quot;@id&quot;: &quot;_:b0&quot;,
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;
-    },
-    {
-      &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-      &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-      &quot;knows&quot;: [
-        { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
-        { &quot;@id&quot;: &quot;_:b0&quot; }
-      ]
-    }
-  ]
-}</pre></div>
-</div>
-
-<div class="informative section" id="embedding-json-ld-in-html-documents">
-  <h3><span class="secno">6.20 </span>Embedding JSON-LD in HTML Documents</h3><p><em>This section is non-normative.</em></p>
-
-  <p>HTML script tags can be used to embed blocks of data in documents.
-    This way, JSON-LD content can be easily embedded in HTML by placing
-    it in a script element with the <code>type</code> attribute set to
-    <code>application/ld+json</code>.</p>
-
-  <div class="example"><div class="example-title"><span>Example 62</span>: Embedding JSON-LD in HTML</div><pre class="example"><span class="diff">&lt;script type=&quot;application/ld+json&quot;&gt;</span>
-{
-  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,
-  &quot;@id&quot;: &quot;http://dbpedia.org/resource/John_Lennon&quot;,
-  &quot;name&quot;: &quot;John Lennon&quot;,
-  &quot;born&quot;: &quot;1940-10-09&quot;,
-  &quot;spouse&quot;: &quot;http://dbpedia.org/resource/Cynthia_Lennon&quot;
-}
-<span class="diff">&lt;/script&gt;</span></pre></div>
-
-  <p>Depending on how the HTML document is served, certain strings may need
-    to be escaped.</p>
-
-  <p>Defining how such data may be used is beyond the scope of this specification.
-    The embedded JSON-LD document might be extracted as is or, e.g., be converted
-    to RDF.</p>
-
-  <p>If JSON-LD content is extracted as RDF [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>], it should be expanded into an
-    <a class="tref externalDFN" title="rdf-dataset" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset">RDF dataset</a> using the
-    <cite><a href="../json-ld-api/#convert-to-rdf-algorithm">Convert to RDF Algorithm</a></cite>
-    [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>].</p>
-</div>
-
-</div>
-
-<div class="appendix normative section" id="data-model">
-
-<!--OddPage-->
-<h2><span class="secno">A. </span>Data Model</h2>
-
-  <p>JSON-LD is a serialization format for <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> based on JSON.
-    It is therefore important to distinguish between the syntax, which is defined
-    by JSON in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>], and <dfn title="json-ld-data-model" id="dfn-json-ld-data-model">JSON-LD's data model</dfn>
-    which is defined as follows:</p>
-
-  <ul>
-    <li>A <dfn title="json-ld-document" id="dfn-json-ld-document">JSON-LD document</dfn> serializes a collection of
-      <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graphs</a> and comprises exactly one
-      <dfn title="default-graph" id="dfn-default-graph">default graph</dfn> and zero or more <dfn title="named-graph" id="dfn-named-graph">named graphs</dfn>.</li>
-    <li>The <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> does not have a name and <em class="rfc2119" title="MAY">MAY</em> be empty.</li>
-    <li>Each <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graph</a> is a pair consisting of an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
-      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> (the <dfn title="graph-name" id="dfn-graph-name">graph name</dfn>) and a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>.
-      Whenever practical, the <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> <em class="rfc2119" title="SHOULD">SHOULD</em> be an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
-    <li>A <dfn title="json-ld-graph" id="dfn-json-ld-graph">JSON-LD graph</dfn> is a labeled directed graph, i.e., a set of
-      <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> connected by <a class="tref internalDFN" title="edge" href="#dfn-edge">edges</a>.</li>
-    <li>Every <dfn title="edge" id="dfn-edge">edge</dfn> has a direction associated with it and is labeled with
-      an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. Within the JSON-LD syntax
-      these edge labels are called <dfn title="property" id="dfn-property">properties</dfn>. Whenever practical, an
-      <a class="tref internalDFN" title="edge" href="#dfn-edge">edge</a> <em class="rfc2119" title="SHOULD">SHOULD</em> be labeled with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
-    <li>Every <dfn title="node" id="dfn-node">node</dfn> is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>,
-      a <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a>, or a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>.</li>
-    <li>A <a class="tref internalDFN" title="node" href="#dfn-node">node</a> having an outgoing edge <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a
-      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>.</li>
-    <li>A <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em> contain unconnected <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>,
-      i.e., nodes which are not connected by an <a class="tref internalDFN" title="edge" href="#dfn-edge">edge</a> to any other <a class="tref internalDFN" title="node" href="#dfn-node">node</a>.</li>
-    <li>An <dfn title="iri" id="dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></dfn>
-      (Internationalized Resource Identifier) is a string that conforms to the syntax
-      defined in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>]. <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> used within a
-      <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> <em class="rfc2119" title="SHOULD">SHOULD</em> return a <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> document describing
-      the resource denoted by that <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> when being dereferenced.</li>
-    <li>A <dfn title="blank-node" id="dfn-blank-node">blank node</dfn> is a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> which is neither an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-      nor a <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a>, nor a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>. A blank node <em class="rfc2119" title="MAY">MAY</em> be identified
-      using a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
-    <li>A <dfn title="blank-node-identifier" id="dfn-blank-node-identifier">blank node identifier</dfn> is a string that can be used as an identifier
-      for a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> within the scope of a <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a>.
-      Blank node identifiers begin with <code>_:</code>.</li>
-    <li>A <dfn title="json-ld-value" id="dfn-json-ld-value">JSON-LD value</dfn> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, a <a class="tref internalDFN" title="number" href="#dfn-number">number</a>,
-      <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, a <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>, or a
-      <a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged string</a>.</li>
-    <li>A <dfn title="typed-value" id="dfn-typed-value">typed value</dfn> consists of a value, which is a string, and a type, which is an
-      <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
-    <li>A <dfn title="language-tagged-string" id="dfn-language-tagged-string">language-tagged string</dfn> consists of a string and a non-empty language
-      tag as defined by [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>]. The language tag <em class="rfc2119" title="MUST">MUST</em> be well-formed according to section
-      <a href="http://tools.ietf.org/html/bcp47#section-2.2.9">2.2.9 Classes of Conformance</a>
-      of [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>].</li>
-    <li>A <dfn title="list" id="dfn-list">list</dfn> is an ordered sequence of zero or more
-      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
-      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>, and
-      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a>.</li>
-  </ul>
-
-  <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 3</span>: Allow blank nodes to be used as graph name or property</div><div class="atrisk">
-    <p class="atrisk-head">Note: This feature is
-      <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
-      be removed from this specification based on feedback. Please send feedback to
-      <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
-      For the current status see
-      <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
-    <p>RDF does not currently allow a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> to be
-      used as <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> or <a class="tref internalDFN" title="property" href="#dfn-property">property</a>, while JSON-LD
-      does. JSON-LD to RDF converters can work around this restriction, when converting
-      JSON-LD to RDF, by converting such <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> to
-      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, minting new &quot;Skolem IRIs&quot; as per
-      <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">Replacing Blank Nodes with IRIs</a></cite>
-      of [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>]. Based on feedback from implementors the
-      Working Group may decide to disallow blank nodes as graph names and
-      properties in JSON-LD. If this change would affect you, be sure to
-      send in a comment.</p>
-  </div></div>
-
-  <p><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD documents</a> <em class="rfc2119" title="MAY">MAY</em> contain data that cannot be
-    represented by the <a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model">data model</a> defined above.
-    Unless otherwise specified, such data is ignored when a <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a>
-    is being processed. This means, e.g., that properties which are not mapped to an
-    <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> will be ignored.</p>
-
-  <p style="text-align: center"><img src="linked-data-graph.png" title="An illustration of JSON-LD's data model" alt="An illustration of JSON-LD's data model" /></p>
-  <p style="text-align: center">Figure 1: An illustration of JSON-LD's data model.</p>
-</div>
-
-<div class="appendix normative section" id="json-ld-grammar">
-
-<!--OddPage-->
-<h2><span class="secno">B. </span>JSON-LD Grammar</h2>
-
-  <p>This appendix restates the syntactic conventions described in the
-    previous sections more formally.</p>
-
-  <p>A <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> <em class="rfc2119" title="MUST">MUST</em> be a valid JSON document as described
-    in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>].</p>
-
-  <p>A <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> <em class="rfc2119" title="MUST">MUST</em> be a single <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>
-    or an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> whose elements are each
-    <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> at the top level.</p>
-
-  <p>In contrast to JSON, in JSON-LD the keys in <a class="tref internalDFN" title="json-object" href="#dfn-json-object">objects</a>
-    <em class="rfc2119" title="MUST">MUST</em> be unique.</p>
-
-  <div class="note"><div class="note-title"><span>Note</span></div><p class="">JSON-LD allows <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> to be aliased
-    (see <a class="sectionRef sec-ref" href="#aliasing-keywords">section 6.15 Aliasing Keywords</a> for details). Whenever a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> is
-    discussed in this grammar, the statements also apply to an alias for
-    that <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. For example, if the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>
-    defines the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> <code>id</code> as an alias for <code>@id</code>,
-    that alias may be legitimately used as a substitution for <code>@id</code>.
-    Note that <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> aliases are not expanded during context
-    processing.</p></div>
-
-  <div class="normative section" id="terms">
-    <h3><span class="secno">B.1 </span>Terms</h3>
-
-    <p>A <dfn title="term" id="dfn-term">term</dfn> is a short-hand <a class="tref internalDFN" title="string" href="#dfn-string">string</a> that expands
-      to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</p>
-
-    <p>A <a class="tref internalDFN" title="term" href="#dfn-term">term</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em> equal any of the JSON-LD
-      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>.</p>
-
-    <p>To avoid forward-compatibility issues, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> start
-      with an <code>@</code> character as future versions of JSON-LD may introduce
-      additional <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>. Furthermore, the term <em class="rfc2119" title="MUST NOT">MUST NOT</em>
-      be an empty <a class="tref internalDFN" title="string" href="#dfn-string">string</a> (<code>&quot;&quot;</code>) as not all programming languages
-      are able to handle empty JSON keys.</p>
-
-    <p>See <a class="sectionRef sec-ref" href="#the-context">section 5.1 The Context</a> and
-      <a class="sectionRef sec-ref" href="#iris">section 5.2 IRIs</a> for further discussion
-      on mapping <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.</p>
-  </div>
-
-  <div class="normative section" id="node-objects">
-    <h3><span class="secno">B.2 </span>Node Objects</h3>
-
-    <p>A <dfn title="node-object" id="dfn-node-object">node object</dfn> represents zero or more properties of a
-      <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in the <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> serialized by the
-      <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a>. A <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is a
-      <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> if it exists outside of a JSON-LD
-      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and:</p>
-
-    <ul>
-      <li>it does not contain the <code>@value</code>, <code>@list</code>,
-        or <code>@set</code> keywords, and</li>
-      <li>it is not the top-most <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> in the JSON-LD document
-        consisting of no other members than <code>@graph</code> and
-        <code>@context</code>.</li>
-    </ul>
-
-    <p>The <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in
-      a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> may be spread among different
-      <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> within a document. When
-      that happens, the keys of the different
-      <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> need to be merged to create the
-      properties of the resulting <a class="tref internalDFN" title="node" href="#dfn-node">node</a>.</p>
-
-    <p>A <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. All keys
-      which are not <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
-      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>, <a class="tref internalDFN" title="term" href="#dfn-term">terms</a>
-      valid in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, or one of the following
-      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <em class="rfc2119" title="MUST">MUST</em> be ignored when processed:</p>
-
-    <ul>
-      <li><code>@context</code>,</li>
-      <li><code>@id</code>,</li>
-      <li><code>@graph</code>,</li>
-      <li><code>@type</code>,</li>
-      <li><code>@reverse</code>, or</li>
-      <li><code>@index</code></li>
-    </ul>
-
-    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@context</code>
-      key, its value <em class="rfc2119" title="MUST">MUST</em> be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-      a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a>, or
-      an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> composed of any of these.</p>
-
-    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@id</code> key,
-      its value <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-      or a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> (including
-      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>).
-      See <a class="sectionRef sec-ref" href="#node-identifiers">section 5.3 Node Identifiers</a>,
-      <a class="sectionRef sec-ref" href="#compact-iris">section 6.3 Compact IRIs</a>, and
-      <a class="sectionRef sec-ref" href="#identifying-blank-nodes">section 6.14 Identifying Blank Nodes</a> for further discussion on
-      <code>@id</code> values.</p>
-
-    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@graph</code>
-      key, its value <em class="rfc2119" title="MUST">MUST</em> be
-      a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> or
-      an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a>.
-      If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains an <code>@id</code> keyword,
-      its value is used as the label of a named graph.
-      See <a class="sectionRef sec-ref" href="#named-graphs">section 6.13 Named Graphs</a> for further discussion on
-      <code>@graph</code> values. As a special case, if a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
-      contains no keys other than <code>@graph</code> and <code>@context</code>, and the
-      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is the root of the JSON-LD document, the
-      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is not treated as a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>; this
-      is used as a way of defining <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node
-      definitions</a> that may not form a connected graph. This allows a
-      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> to be defined which is shared by all of the constituent
-      <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a>.</p>
-
-    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@type</code>
-      key, its value <em class="rfc2119" title="MUST">MUST</em> be either an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a
-      <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-      (including <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>),
-      a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> defined in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> expanding into an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or
-      an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of any of these.
-      See <a class="sectionRef sec-ref" href="#specifying-the-type">section 5.4 Specifying the Type</a> for further discussion on
-      <code>@type</code> values.</p>
-
-    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@reverse</code> key,
-      its value <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing members representing reverse
-      properties. Each value of such a reverse property <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-      a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>,
-      a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> or an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing a combination of these.</p>
-
-    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@index</code> key,
-      its value <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>. See
-      <a class="sectionRef sec-ref" href="#data-indexing">section 6.16 Data Indexing</a> for further discussion
-      on <code>@index</code> values.</p>
-
-    <p>Keys in a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> that are not
-      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <em class="rfc2119" title="MAY">MAY</em> expand to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
-      using the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. The values associated with keys that expand
-      to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> <em class="rfc2119" title="MUST">MUST</em> be one of the following:</p>
-
-    <ul>
-      <li><a class="tref internalDFN" title="string" href="#dfn-string">string</a>,</li>
-      <li><a class="tref internalDFN" title="number" href="#dfn-number">number</a>,</li>
-      <li><a class="tref internalDFN" title="true" href="#dfn-true">true</a>,</li>
-      <li><a class="tref internalDFN" title="false" href="#dfn-false">false</a>,</li>
-      <li><a class="tref internalDFN" title="null" href="#dfn-null">null</a>,</li>
-      <li><a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>,</li>
-      <li><a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>,</li>
-      <li><a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>,</li>
-      <li><a class="tref internalDFN" title="set-object" href="#dfn-set-object">set object</a>,</li>
-      <li>an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more of the possibilities above,</li>
-      <li>a <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language map</a>, or </li>
-      <li>an <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a></li>
-    </ul>
-  </div>
-
-  <div class="normative section" id="value-objects">
-    <h3><span class="secno">B.3 </span>Value Objects</h3>
-
-    <p>A <dfn title="value-object" id="dfn-value-object">value object</dfn> is used to explicitly associate a type or a
-      language with a value to create a <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a> or a <a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged
-      string</a>.</p>
-
-    <p>A <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing the
-      <code>@value</code> key. It <em class="rfc2119" title="MAY">MAY</em> also contain a <code>@type</code>,
-      a <code>@language</code>, an <code>@index</code>, or an <code>@context</code> key but <em class="rfc2119" title="MUST NOT">MUST NOT</em> contain
-      both a <code>@type</code> and a <code>@language</code> key at the same time.
-      A <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em> contain any other keys that expand to an
-      <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>.</p>
-
-    <p>The value associated with the <code>@value</code> key <em class="rfc2119" title="MUST">MUST</em> be either a
-      <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, a <a class="tref internalDFN" title="number" href="#dfn-number">number</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
-      <a class="tref internalDFN" title="false" href="#dfn-false">false</a> or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-    <p>The value associated with the <code>@type</code> key <em class="rfc2119" title="MUST">MUST</em> be a
-      <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-      an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-    <p>The value associated with the <code>@language</code> key <em class="rfc2119" title="MUST">MUST</em> have the
-      lexical form described in [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>], or be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-    <p>The value associated with the <code>@index</code> key <em class="rfc2119" title="MUST">MUST</em> be a
-      <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.</p>
-
-    <p>See <a class="sectionRef sec-ref" href="#typed-values">section 6.4 Typed Values</a> and
-      <a class="sectionRef sec-ref" href="#string-internationalization">section 6.9 String Internationalization</a>
-      for more information on <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value objects</a>.</p>
-  </div>
-
-  <div class="normative section" id="lists-and-sets">
-    <h3><span class="secno">B.4 </span>Lists and Sets</h3>
-
-    <p>A <a class="tref internalDFN" title="list" href="#dfn-list">list</a> represents an <em>ordered</em> set of values. A set
-      represents an <em>unordered</em> set of values. Unless otherwise specified,
-      <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a> are unordered in JSON-LD. As such, the
-      <code>@set</code> keyword, when used in the body of a JSON-LD document,
-      represents just syntactic sugar which is optimized away when processing the document.
-      However, it is very helpful when used within the context of a document. Values
-      of terms associated with a <code>@set</code> or <code>@list</code> container
-      will always be represented in the form of an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> when a document
-      is processed—even if there is just a single value that would otherwise be optimized to
-      a non-array form in <a href="#compact-document-form">compact document form</a>.
-      This simplifies post-processing of the data as the data is always in a
-      deterministic form.</p>
-
-    <p>A <dfn title="list-object" id="dfn-list-object">list object</dfn> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that contains no
-      keys that expand to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> other
-      than <code>@list</code>, <code>@context</code>, and <code>@index</code>.</p>
-
-    <p>A <dfn title="set-object" id="dfn-set-object">set object</dfn> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that contains no
-      keys that expand to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> other
-      than <code>@list</code>, <code>@context</code>, and <code>@index</code>.
-      Please note that the <code>@index</code> key will be ignored when being processed.</p>
-
-    <p>In both cases, the value associated with the keys <code>@list</code> and <code>@set</code>
-      <em class="rfc2119" title="MUST">MUST</em> be one of the following types:</p>
-    <ul>
-      <li><a class="tref internalDFN" title="string" href="#dfn-string">string</a>,</li>
-      <li><a class="tref internalDFN" title="number" href="#dfn-number">number</a>,</li>
-      <li><a class="tref internalDFN" title="true" href="#dfn-true">true</a>,</li>
-      <li><a class="tref internalDFN" title="false" href="#dfn-false">false</a>,</li>
-      <li><a class="tref internalDFN" title="null" href="#dfn-null">null</a>,</li>
-      <li><a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>,</li>
-      <li><a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>, or</li>
-      <li>an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more of the above possibilities</li>
-    </ul>
-
-    <p>See <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a> for further discussion on sets and lists.</p>
-  </div>
-
-  <div class="normative section" id="language-maps">
-    <h3><span class="secno">B.5 </span>Language Maps</h3>
-
-    <p>A <dfn title="language-map" id="dfn-language-map">language map</dfn> is used to associate a language with a value in a
-      way that allows easy programmatic access. A <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language map</a> may be
-      used as a term value within a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> if the term is defined
-      with <code>@container</code> set to <code>@language</code>. The keys of a
-      <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language map</a> <em class="rfc2119" title="MUST">MUST</em> be <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> representing
-      [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>] language codes with and the values <em class="rfc2119" title="MUST">MUST</em> be any of the following types:</p>
-
-    <ul>
-      <li><a class="tref internalDFN" title="null" href="#dfn-null">null</a>,</li>
-      <li><a class="tref internalDFN" title="string" href="#dfn-string">string</a>, or</li>
-      <li>an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more of the above possibilities</li>
-    </ul>
-
-    <p>See <a class="sectionRef sec-ref" href="#string-internationalization">section 6.9 String Internationalization</a> for further discussion
-      on language maps.</p>
-  </div>
-
-  <div class="normative section" id="index-maps">
-    <h3><span class="secno">B.6 </span>Index Maps</h3>
-
-    <p>An <dfn title="index-map" id="dfn-index-map">index map</dfn> allows keys that have no semantic meaning,
-      but should be preserved regardless, to be used in JSON-LD documents.
-      An <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a> may
-      be used as a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> value within a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> if the
-      term is defined with <code>@container</code> set to <code>@index</code>.
-      The values of the members of an <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a> <em class="rfc2119" title="MUST">MUST</em> be one
-      of the following types:</p>
-
-    <ul>
-      <li><a class="tref internalDFN" title="string" href="#dfn-string">string</a>,</li>
-      <li><a class="tref internalDFN" title="number" href="#dfn-number">number</a>,</li>
-      <li><a class="tref internalDFN" title="true" href="#dfn-true">true</a>,</li>
-      <li><a class="tref internalDFN" title="false" href="#dfn-false">false</a>,</li>
-      <li><a class="tref internalDFN" title="null" href="#dfn-null">null</a>,</li>
-      <li><a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>,</li>
-      <li><a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>,</li>
-      <li><a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>,</li>
-      <li><a class="tref internalDFN" title="set-object" href="#dfn-set-object">set object</a>,</li>
-      <li>an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more of the above possibilities</li>
-    </ul>
-
-    <p>See <a class="sectionRef sec-ref" href="#data-indexing">section 6.16 Data Indexing</a> for further information on this topic.</p>
-  </div>
-
-<div class="normative section" id="context-definitions">
-  <h3><span class="secno">B.7 </span>Context Definitions</h3>
-
-  <p>A <dfn title="context-definition" id="dfn-context-definition">context definition</dfn> defines a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> in a
-    <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</p>
-
-  <p>A <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> whose
-    keys <em class="rfc2119" title="MUST">MUST</em> either be <a class="tref internalDFN" title="term" href="#dfn-term">terms</a>,
-    <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>, <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>,
-    or the <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <code>@language</code>, <code>@base</code>,
-    and <code>@vocab</code>.</p>
-
-  <p>If the <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a> has a <code>@language</code> key,
-    its value <em class="rfc2119" title="MUST">MUST</em> have the lexical form described in [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>] or be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-  <p>If the <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a> has a <code>@base</code> key,
-    its value <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-  <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 1</span>: @base keyword</div><div class="atrisk">
-    <p class="atrisk-head">Note: This feature is
-      <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
-      be removed from this specification based on feedback. Please send feedback to
-      <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
-      For the current status see
-      <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
-    <p>This feature is at risk as the fact that a document may have multiple base
-      IRIs is potentially confusing for developers. It is also being discussed whether
-      relative IRIs are allowed as values of <code>@base</code> or whether the
-      empty string should be used to explicitly specify that there isn't a base <abbr title="Internationalized Resource Identifier">IRI</abbr>,
-      which could be used to ensure that relative IRIs remain relative when expanding.</p>
-  </div></div>
-
-  <p>If the <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a> has a <code>@vocab</code> key,
-    its value <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-    a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-  <p>The value of keys that are not <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <em class="rfc2119" title="MUST">MUST</em> be either an
-    <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>,
-    a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>, <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
-    or an <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a>.</p>
-
-  <p>An <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> is used to describe the mapping
-    between a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> and its expanded identifier, as well as other
-    properties of the value associated with the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> when it is
-    used as key in a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</p>
-
-  <p>An <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
-    composed of zero or more keys from <code>@id</code>, <code>@reverse</code>,
-    <code>@type</code>, <code>@language</code> or <code>@container</code>. An
-    <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> contain any other keys.</p>
-
-  <p>If an <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> has an <code>@reverse</code> member,
-    <code>@id</code>, <code>@type</code>, and <code>@language</code> are not allowed.
-    If an <code>@container</code> member exists, its value <em class="rfc2119" title="MUST">MUST</em> be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>
-    or <code>@index</code>.</p>
-
-  <p>If the term being defined is not a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
-    <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> and the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> does not have an
-    <code>@vocab</code> mapping, the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> <em class="rfc2119" title="MUST">MUST</em>
-    include the <code>@id</code> key.</p>
-
-  <p>If the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> contains the <code>@id</code>
-    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>, its value <em class="rfc2119" title="MUST">MUST</em> be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
-    a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</p>
-
-  <p>If the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> contains the <code>@type</code>
-    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>, its value <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a
-    <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> or
-    the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, or the one of the
-    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <code>@id</code> or <code>@vocab</code>.</p>
-
-  <p>If the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> contains the <code>@language</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>,
-    its value <em class="rfc2119" title="MUST">MUST</em> have the lexical form described in [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>] or be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
-
-  <p>If the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> contains the <code>@container</code>
-    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>, its value <em class="rfc2119" title="MUST">MUST</em> be either <code>@list</code>, <code>@set</code>,
-    <code>@language</code>, <code>@index</code>, or be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. If the value
-    is <code>@language</code>, when the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is used outside of the
-    <code>@context</code>, the associated value <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language map</a>.
-    If the value is <code>@index</code>, when the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is used outside of
-    the <code>@context</code>, the associated value <em class="rfc2119" title="MUST">MUST</em> be an
-    <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a>.</p>
-
-  <p><a class="tref internalDFN" title="term" href="#dfn-term">Terms</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em> be used in a circular manner. That is,
-    the definition of a term cannot depend on the definition of another term if that other
-    term also depends on the first term.</p>
-
-  <p>See <a class="sectionRef sec-ref" href="#the-context">section 5.1 The Context</a> for further discussion on contexts.</p>
-</div>
-
-</div>
-
-<div class="appendix normative section" id="relationship-to-rdf">
-
-<!--OddPage-->
-<h2><span class="secno">C. </span>Relationship to RDF</h2>
-
-  <p>The RDF data model, as outlined in [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>], is an abstract syntax for
-    representing a directed graph of information. It is a subset of
-    <a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model">JSON-LD's data model</a> with a few
-    additional constraints. The differences between the two data models are:</p>
-
-  <ul>
-    <li>In JSON-LD <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph names</a> can be
-      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> or <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>
-      whereas in RDF graph names have to be <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.</li>
-    <li>In JSON-LD <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> can be
-      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> or <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>
-      whereas in RDF properties (predicates) have to be
-      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.</li>
-    <li>In JSON-LD lists are part of the data model whereas in RDF they are part of
-      a vocabulary, namely [<cite><a class="bibref" href="#bib-RDF-SCHEMA">RDF-SCHEMA</a></cite>].</li>
-    <li>RDF values are either typed <em>literals</em>
-      (<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed values</a>) or <em>language-tagged strings</em>
-      (<a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged strings</a>) whereas
-      JSON-LD also supports JSON's native data types, i.e., <a class="tref internalDFN" title="number" href="#dfn-number">number</a>,
-      <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>, and the boolean values <a class="tref internalDFN" title="true" href="#dfn-true">true</a>
-      and <a class="tref internalDFN" title="false" href="#dfn-false">false</a>. The JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>]
-      defines the conversion rules between JSON's native data types and RDF's counterparts to
-      allow full round-tripping.</li>
-
-  </ul>
-
-  <p>Summarized these differences mean that JSON-LD is capable of serializing any RDF
-    graph or dataset and most, but not all, JSON-LD documents can be directly
-    transformed to RDF. It is possible to work around this restriction, when
-    converting JSON-LD to RDF, by converting <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>
-    used as <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph names</a> or
-    <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
-    minting new &quot;Skolem IRIs&quot; as per
-    <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">Replacing Blank Nodes with IRIs</a></cite>
-    of [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>]. A complete description of the algorithms to convert
-    from RDF to JSON-LD and from JSON-LD to RDF is included in the JSON-LD
-    Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>].</p>
-
-  <p>Even though JSON-LD serializes RDF datasets, it can also be used as a RDF graph source.
-    In that case, a consumer <em class="rfc2119" title="MUST">MUST</em> only use the default graph and ignore all named graphs.
-    This allows servers to expose data in, e.g., both Turtle and JSON-LD using content
-    negotiation.</p>
-
-  <div class="note"><div class="note-title"><span>Note</span></div><p class="">Publishers supporting both dataset and graph syntaxes have to ensure that
-    the primary data is stored in the default graph to enable consumers that do not support
-    datasets to process the information.</p></div>
-
-  <div class="informative section" id="transformation-from-json-ld-to-rdf">
-    <h3><span class="secno">C.1 </span>Transformation from JSON-LD to RDF</h3><p><em>This section is non-normative.</em></p>
-
-    <p>The process of turning a JSON-LD document depends on executing the
-      algorithms defined in
-      <cite><a href="../json-ld-api/#rdf-conversion-algorithms">RDF Conversion Algorithms</a></cite>
-      in the JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>].
-      It is beyond the scope of this document to detail these algorithms any further,
-      but a summary of the necessary operations is provided to illustrate the process.</p>
-
-    <p>The procedure involves the following steps:</p>
-
-    <ol>
-      <li>Expand the JSON-LD document, removing any context; this ensures
-        that properties, types, and values are given their full representation
-        as <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> and expanded values. Expansion
-        is discussed further in <a class="sectionRef sec-ref" href="#expanded-document-form">section 6.17 Expanded Document Form</a>.</li>
-      <li>Flatten the document, which turns the document into an array of
-        <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a>. Flattening is discussed
-        further in <a class="sectionRef sec-ref" href="#flattened-document-form">section 6.19 Flattened Document Form</a>.</li>
-      <li>Turn each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> into a series of
-        <a class="tref externalDFN" title="rdf-triples" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">RDF triples</a>.</li>
-    </ol>
-
-    <p>For example, consider the following JSON-LD document in compact form:</p>
-
-    <div class="example"><div class="example-title"><span>Example 63</span>: Sample JSON-LD document</div><pre class="example">{
-  &quot;@context&quot;: {
-    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
-    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
-  },
-  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
-  &quot;knows&quot;: [
-    {
-      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
-      &quot;name&quot;: &quot;Manu Sporny&quot;
-    },
-    {
-      &quot;name&quot;: &quot;Dave Longley&quot;
-    }
-  ]
-}</pre></div>
-
-    <p>Running the JSON-LD Expansion and Flattening algorithms against the
-      JSON-LD input document in the example above would result in the
-      following output:</p>
-
-    <div class="example"><div class="example-title"><span>Example 64</span>: Flattened and expanded form for the previous example</div><pre class="example">[
-  {
-    &quot;@id&quot;: &quot;_:b0&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Dave Longley&quot;
-  },
-  {
-    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Manu Sporny&quot;
-  },
-  {
-    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
-    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Markus Lanthaler&quot;,
-    &quot;http://xmlns.com/foaf/0.1/knows&quot;: [
-      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
-      { &quot;@id&quot;: &quot;_:b0&quot; }
-    ]
-  }
-]</pre></div>
-
-    <p>Transforming this to RDF now is a straightforward process of turning
-      each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> into one or more RDF triples. This can be
-      expressed in Turtle as follows:</p>
-
-    <div class="example"><div class="example-title"><span>Example 65</span>: Turtle representation of expanded/flattend document</div><pre class="example">_:b0 &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Dave Longley&quot; .
-
-&lt;http://manu.sporny.org/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Manu Sporny&quot; .
-
-&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Markus Lanthaler&quot; ;
-    &lt;http://xmlns.com/foaf/0.1/knows&gt; &lt;http://manu.sporny.org/&gt;, _:b0 .</pre></div>
-
-    <p>The process of turning RDF into JSON-LD can be thought of as the
-      inverse of this last step, creating an expanded JSON-LD document closely
-      matching the triples from RDF, using a single <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>
-      for all triples having a common subject, and a single <a class="tref internalDFN" title="property" href="#dfn-property">property</a>
-      for those triples also having a common predicate.</p>
-  </div>
-</div>
-
-<div class="appendix informative section" id="relationship-to-other-linked-data-formats">
-
-<!--OddPage-->
-<h2><span class="secno">D. </span>Relationship to Other Linked Data Formats</h2><p><em>This section is non-normative.</em></p>
-
-  <p>The JSON-LD examples below demonstrate how JSON-LD can be used to
-    express semantic data marked up in other linked data formats such as Turtle,
-    RDFa, Microformats, and Microdata. These sections are merely provided as
-    evidence that JSON-LD is very flexible in what it can express across different
-    <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> approaches.</p>
-
-  <div class="informative section" id="turtle">
-    <h3><span class="secno">D.1 </span>Turtle</h3><p><em>This section is non-normative.</em></p>
-
-    <p>The following are examples of converting RDF expressed in Turtle [<cite><a class="bibref" href="#bib-TURTLE">TURTLE</a></cite>]
-      into JSON-LD.</p>
-
-    <div class="section">
-      <h4 id="prefix-definitions">Prefix definitions</h4><p><em>This section is non-normative.</em></p>
-
-      <p>The JSON-LD context has direct equivalents for the Turtle
-        <code>@prefix</code> declaration:</p>
-
-      <div class="example"><div class="example-title"><span>Example 66</span>: A set of statements serialized in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
-
-&lt;http://manu.sporny.org/i/public&gt; a foaf:Person;
-  foaf:name &quot;Manu Sporny&quot;;
-  foaf:homepage &lt;http://manu.sporny.org/&gt; .</pre></div>
-
-      <div class="example"><div class="example-title"><span>Example 67</span>: The same set of statements serialized in JSON-LD</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-  },
-  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
-  &quot;foaf:homepage&quot;: { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
-}</pre></div>
-    </div>
-
-    <div class="section">
-      <h4 id="embedding-1">Embedding</h4>
-
-      <p>Both Turtle and JSON-LD allow embedding, although Turtle only allows embedding of
-        <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>.</p>
-
-      <div class="example"><div class="example-title"><span>Example 68</span>: Embedding in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
-
-&lt;http://manu.sporny.org/i/public&gt;
-  a foaf:Person;
-  foaf:name &quot;Manu Sporny&quot;;
-  foaf:knows [ a foaf:Person; foaf:name &quot;Gregg Kellogg&quot; ] .</pre></div>
-
-      <div class="example"><div class="example-title"><span>Example 69</span>: Same embedding example in JSON-LD</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-  },
-  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
-  &quot;foaf:knows&quot;:
-  {
-    &quot;@type&quot;: &quot;foaf:Person&quot;,
-    &quot;foaf:name&quot;: &quot;Gregg Kellogg&quot;
-  }
-}</pre></div>
-    </div>
-
-    <div class="section">
-      <h4 id="conversion-of-native-data-types">Conversion of native data types</h4>
-
-      <p>In JSON-LD numbers and boolean values are native data types. While Turtle
-        has a shorthand syntax to express such values, RDF's abstract syntax requires
-        that numbers and boolean values are represented as typed literals. Thus,
-        to allow full round-tripping, the JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>]
-        defines conversion rules between JSON-LD's native data types and RDF's
-        counterparts. <a class="tref internalDFN" title="number" href="#dfn-number">Numbers</a> without fractions are
-        converted to <code>xsd:integer</code>-typed literals, numbers with fractions
-        to <code>xsd:double</code>-typed literals and the two boolean values
-        <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and <a class="tref internalDFN" title="false" href="#dfn-false">false</a> to a <code>xsd:boolean</code>-typed
-        literal. All typed literals are in canonical lexical form.</p>
-
-      <div class="example"><div class="example-title"><span>Example 70</span>: JSON-LD using native data types for numbers and boolean values</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;ex&quot;: &quot;http://example.com/vocab#&quot;
-  },
-  &quot;@id&quot;: &quot;http://example.com/&quot;,
-  &quot;ex:numbers&quot;: [ 14, 2.78 ],
-  &quot;ex:booleans&quot;: [ true, false ]
-}</pre></div>
-
-      <div class="example"><div class="example-title"><span>Example 71</span>: Same example in Turtle using typed literals</div><pre class="example">@prefix ex: &lt;http://example.com/vocab#&gt; .
-@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
-
-&lt;http://example.com/&gt;
-  ex:numbers &quot;14&quot;^^xsd:integer, &quot;2.78E0&quot;^^xsd:double ;
-  ex:booleans &quot;true&quot;^^xsd:boolean, &quot;false&quot;^^xsd:boolean .</pre></div>
-
-    </div>
-
-    <div class="section">
-      <h4 id="lists">Lists</h4>
-      <p>Both JSON-LD and Turtle can represent sequential lists of values.</p>
-
-      <div class="example"><div class="example-title"><span>Example 72</span>: A list of values in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
-
-&lt;http://example.org/people#joebob&gt; a foaf:Person;
-  foaf:name &quot;Joe Bob&quot;;
-  foaf:nick ( &quot;joe&quot; &quot;bob&quot; &quot;jaybee&quot; ) .</pre></div>
-
-      <div class="example"><div class="example-title"><span>Example 73</span>: Same example with a list of values in JSON-LD</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-  },
-  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
-  &quot;@type&quot;: &quot;foaf:Person&quot;,
-  &quot;foaf:name&quot;: &quot;Joe Bob&quot;,
-  &quot;foaf:nick&quot;:
-  {
-    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
-  }
-}</pre></div>
-    </div>
-  </div>
-
-  <div class="informative section" id="rdfa">
-    <h3><span class="secno">D.2 </span>RDFa</h3><p><em>This section is non-normative.</em></p>
-
-    <p>The following example describes three people with their respective names and
-      homepages in RDFa [<cite><a class="bibref" href="#bib-RDFA-CORE">RDFA-CORE</a></cite>].</p>
-
-    <div class="example"><div class="example-title"><span>Example 74</span>: RDFa fragment that describes three people</div><pre class="example">&lt;div <span class="diff">prefix=&quot;foaf: http://xmlns.com/foaf/0.1/&quot;</span>&gt;
-   &lt;ul&gt;
-      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
-        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/bob/&quot; property=&quot;foaf:name&quot;</span>&gt;Bob&lt;/a&gt;
-      &lt;/li&gt;
-      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
-        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/eve/&quot; property=&quot;foaf:name&quot;</span>&gt;Eve&lt;/a&gt;
-      &lt;/li&gt;
-      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
-        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/manu/&quot; property=&quot;foaf:name&quot;</span>&gt;Manu&lt;/a&gt;
-      &lt;/li&gt;
-   &lt;/ul&gt;
-&lt;/div&gt;</pre></div>
-
-    <p>An example JSON-LD implementation using a single <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is
-      described below.</p>
-
-    <div class="example"><div class="example-title"><span>Example 75</span>: Same description in JSON-LD (context shared among node objects)</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
-  },
-  &quot;@graph&quot;:
-  [
-    {
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;foaf:homepage&quot;: &quot;http://example.com/bob/&quot;,
-      &quot;foaf:name&quot;: &quot;Bob&quot;
-    },
-    {
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;foaf:homepage&quot;: &quot;http://example.com/eve/&quot;,
-      &quot;foaf:name&quot;: &quot;Eve&quot;
-    },
-    {
-      &quot;@type&quot;: &quot;foaf:Person&quot;,
-      &quot;foaf:homepage&quot;: &quot;http://example.com/manu/&quot;,
-      &quot;foaf:name&quot;: &quot;Manu&quot;
-    }
-  ]
-}</pre></div>
-  </div>
-
-  <div class="informative section" id="microformats">
-    <h3><span class="secno">D.3 </span>Microformats</h3><p><em>This section is non-normative.</em></p>
-
-    <p>The following example uses a simple Microformats hCard example to express
-      how Microformats [<cite><a class="bibref" href="#bib-MICROFORMATS">MICROFORMATS</a></cite>] are represented in JSON-LD.</p>
-
-    <div class="example"><div class="example-title"><span>Example 76</span>: HTML fragment with a simple Microformats hCard</div><pre class="example">&lt;div class=&quot;vcard&quot;&gt;
- &lt;a class=&quot;url fn&quot; href=&quot;http://tantek.com/&quot;&gt;Tantek Çelik&lt;/a&gt;
-&lt;/div&gt;</pre></div>
-
-    <p>The representation of the hCard expresses the Microformat terms in the
-      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and uses them directly for the <code>url</code> and <code>fn</code>
-      properties. Also note that the Microformat to JSON-LD processor has
-      generated the proper URL type for <code>http://tantek.com/</code>.</p>
-
-    <div class="example"><div class="example-title"><span>Example 77</span>: Same hCard representation in JSON-LD</div><pre class="example">{
-  &quot;@context&quot;:
-  {
-    &quot;vcard&quot;: &quot;http://microformats.org/profile/hcard#vcard&quot;,
-    &quot;url&quot;:
-    {
-      &quot;@id&quot;: &quot;http://microformats.org/profile/hcard#url&quot;,
-      &quot;@type&quot;: &quot;@id&quot;
-    },
-    &quot;fn&quot;: &quot;http://microformats.org/profile/hcard#fn&quot;
-  },
-  &quot;@type&quot;: &quot;vcard&quot;,
-  &quot;url&quot;: &quot;http://tantek.com/&quot;,
-  &quot;fn&quot;: &quot;Tantek Çelik&quot;
-}</pre></div>
-  </div>
-
-  <div class="informative section" id="microdata">
-    <h3><span class="secno">D.4 </span>Microdata</h3><p><em>This section is non-normative.</em></p>
-
-    <p>The HTML Microdata [<cite><a class="bibref" href="#bib-MICRODATA">MICRODATA</a></cite>] example below expresses book information as
-      a Microdata Work item.</p>
-
-    <div class="example"><div class="example-title"><span>Example 78</span>: HTML fragments that describes a book using microdata</div><pre class="example">&lt;dl itemscope
-    itemtype=&quot;http://purl.org/vocab/frbr/core#Work&quot;
-    itemid=&quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;&gt;
- &lt;dt&gt;Title&lt;/dt&gt;
- &lt;dd&gt;&lt;cite itemprop=&quot;http://purl.org/dc/terms/title&quot;&gt;Just a Geek&lt;/cite&gt;&lt;/dd&gt;
- &lt;dt&gt;By&lt;/dt&gt;
- &lt;dd&gt;&lt;span itemprop=&quot;http://purl.org/dc/terms/creator&quot;&gt;Wil Wheaton&lt;/span&gt;&lt;/dd&gt;
- &lt;dt&gt;Format&lt;/dt&gt;
- &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
-     itemscope
-     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
-     itemid=&quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;&gt;
-  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/BOOK&quot;&gt;
-  Print
- &lt;/dd&gt;
- &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
-     itemscope
-     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
-     itemid=&quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;&gt;
-  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/EBOOK&quot;&gt;
-  Ebook
- &lt;/dd&gt;
-&lt;/dl&gt;</pre></div>
-
-    <p>Note that the JSON-LD representation of the Microdata information stays
-      true to the desires of the Microdata community to avoid contexts and
-      instead refer to items by their full <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
-
-    <div class="example"><div class="example-title"><span>Example 79</span>: Same book description in JSON-LD (avoiding contexts)</div><pre class="example">[
-  {
-    &quot;@id&quot;: &quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;,
-    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Work&quot;,
-    &quot;http://purl.org/dc/terms/title&quot;: &quot;Just a Geek&quot;,
-    &quot;http://purl.org/dc/terms/creator&quot;: &quot;Whil Wheaton&quot;,
-    &quot;http://purl.org/vocab/frbr/core#realization&quot;:
-    [
-      &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
-      &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;
-    ]
-  },
-  {
-    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
-    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
-    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/BOOK&quot;
-  },
-  {
-    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;,
-    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
-    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/EBOOK&quot;
-  }
-]</pre></div>
-  </div>
-</div>
-
-<div class="appendix normative section" id="iana-considerations">
-
-<!--OddPage-->
-<h2><span class="secno">E. </span>IANA Considerations</h2>
-
-  <p>This section is included for community review and will be submitted to the
-    Internet Engineering Steering Group (IESG) as part of the Last Call announcement
-    for this specification.</p>
-
-  <h2 id="application-ld-json">application/ld+json</h2>
-  <dl>
-    <dt>Type name:</dt>
-    <dd>application</dd>
-    <dt>Subtype name:</dt>
-    <dd>ld+json</dd>
-    <dt>Required parameters:</dt>
-    <dd>None</dd>
-    <dt>Optional parameters:</dt>
-    <dd>
-      <dl>
-        <dt><code>profile</code></dt>
-        <dd>
-          <p>A a non-empty list of space-separated URI-encoded URIs identifying specific
-            constraints or conventions that apply to a JSON-LD document according [<cite><a class="bibref" href="#bib-RFC6906">RFC6906</a></cite>].
-            A profile does not change the semantics of the resource representation
-            when processed without profile knowledge, so that clients both with
-            and without knowledge of a profiled resource can safely use the same
-            representation. The <code>profile</code> parameter may be used by
-            clients to express their preferences in the content negotiation process.
-            It is <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em> that profile URIs are dereferenceable and provide
-            useful documentation at that URI. For more information and background
-            please refer to [<cite><a class="bibref" href="#bib-RFC6906">RFC6906</a></cite>].</p>
-          <p>This specification defines three values for the <code>profile</code> parameter.
-            To request or specify Expanded JSON-LD document form, the URI
-            <code>http://www.w3.org/ns/json-ld#expanded</code> <em class="rfc2119" title="SHOULD">SHOULD</em> be used.
-            To request or specify Compacted JSON-LD document form, the URI
-            <code>http://www.w3.org/ns/json-ld#compacted</code> <em class="rfc2119" title="SHOULD">SHOULD</em> be used.
-            To request or specify Flattened JSON-LD document form, the URI
-            <code>http://www.w3.org/ns/json-ld#flattened</code> <em class="rfc2119" title="SHOULD">SHOULD</em> be used.
-            Please note that, according [<cite><a class="bibref" href="#bib-HTTP11">HTTP11</a></cite>], the value of the <code>profile</code>
-            parameter has to be enclosed in quotes (<code>&quot;</code>) because it contains
-            special characters and, if multiple profiles are combined, whitespace.</p>
-          <p>When processing the &quot;profile&quot; media type parameter, it is important to
-            apply URI-decoding before processing the URI (such as comparing it to
-            known profiles).
-        </p></dd>
-      </dl>
-    </dd>
-    <dt>Encoding considerations:</dt>
-    <dd>See RFC 6839, section 3.1.</dd>
-    <dt>Security considerations:</dt>
-    <dd>Since JSON-LD is intended to be a pure data exchange format for
-      directed graphs, the serialization <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> be passed through a
-      code execution mechanism such as JavaScript's <code>eval()</code>
-      function to be parsed.<br />
-      JSON-LD contexts that are loaded from the Web over non-secure connections,
-      such as HTTP, run the risk of modifying the JSON-LD
-      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> in a way that could compromise security. It
-      is advised that any application that depends on a remote context for mission
-      critical purposes vet and cache the remote context before allowing the
-      system to use it.<br />
-      Given that JSON-LD allows the substitution of long IRIs with short terms,
-      JSON-LD documents may expand considerably when processed and, in the worst case,
-      the resulting data might consume all of the recipient's resources. Applications
-      should treat any data with due skepticism.
-    </dd>
-    <dt>Interoperability considerations:</dt>
-    <dd>Not Applicable</dd>
-    <dt>Published specification:</dt>
-    <dd>http://www.w3.org/TR/json-ld</dd>
-    <dt>Applications that use this media type:</dt>
-    <dd>Any programming environment that requires the exchange of
-      directed graphs. Implementations of JSON-LD have been created for
-      JavaScript, Python, Ruby, PHP, and C++.
-    </dd>
-    <dt>Additional information:</dt>
-    <dd>
-      <dl>
-        <dt>Magic number(s):</dt>
-        <dd>Not Applicable</dd>
-        <dt>File extension(s):</dt>
-        <dd>.jsonld</dd>
-        <dt>Macintosh file type code(s):</dt>
-        <dd>TEXT</dd>
-      </dl>
-    </dd>
-    <dt>Person &amp; email address to contact for further information:</dt>
-    <dd>Manu Sporny &lt;msporny@digitalbazaar.com&gt;</dd>
-    <dt>Intended usage:</dt>
-    <dd>Common</dd>
-    <dt>Restrictions on usage:</dt>
-    <dd>None</dd>
-    <dt>Author(s):</dt>
-    <dd>Manu Sporny, Dave Longley, Gregg Kellogg, Markus Lanthaler, Niklas Lindström</dd>
-    <dt>Change controller:</dt>
-    <dd><abbr title="World Wide Web Consortium">W3C</abbr></dd>
-  </dl>
-
-  <p>Fragment identifiers used with <a href="#application-ld-json">application/ld+json</a>
-    are treated as in RDF syntaxes, as per
-    <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-fragID">RDF 1.1 Concepts and Abstract Syntax</a></cite>
-    [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</p>
-</div>
-
-<div class="appendix informative section" id="acknowledgements">
-
-<!--OddPage-->
-<h2><span class="secno">F. </span>Acknowledgements</h2><p><em>This section is non-normative.</em></p>
-
-  <p>The authors would like to extend a deep appreciation and the most sincere
-    thanks to Mark Birbeck, who contributed foundational concepts
-    to JSON-LD via his work on RDFj. JSON-LD uses a number of core concepts
-    introduced in RDFj, such as the context as a mechanism to provide an
-    environment for interpreting JSON data. Mark had also been very involved in
-    the work on RDFa as well. RDFj built upon that work. JSON-LD exists
-    because of the work and ideas he started nearly a decade ago in 2004.</p>
-
-  <p>A large amount of thanks goes out to the JSON-LD Community Group
-    participants who worked through many of the technical issues on the mailing
-    list and the weekly telecons - of special mention are François Daoust,
-    Stéphane Corlosquet, Lin Clark, and Zdenko 'Denny' Vrandečić.</p>
-
-  <p>The work of David I. Lehn and Mike Johnson are appreciated for
-    reviewing, and performing several early implementations
-    of the specification. Thanks also to Ian Davis for this work on RDF/JSON.</p>
-
-  <p>Thanks to the following individuals, in order of their first name, for
-    their input on the specification: Adrian Walker, Alexandre Passant,
-    Andy Seaborne, Ben Adida, Blaine Cook, Bradley Allen, Brian Peterson,
-    Bryan Thompson, Conal Tuohy, Dan Brickley, Danny Ayers, Daniel Leja,
-    Dave Reynolds, David I. Lehn, David Wood, Dean Landolt, Ed Summers, elf Pavlik,
-    Eric Prud'hommeaux, Erik Wilde, Fabian Christ, Jon A. Frost, Gavin Carothers,
-    Glenn McDonald, Guus Schreiber, Henri Bergius, Jose María Alvarez Rodríguez,
-    Ivan Herman, Jack Moffitt, Josh Mandel, KANZAKI Masahide, Kingsley Idehen,
-    Kuno Woudt, Larry Garfield, Mark Baker, Mark MacGillivray, Marko Rodriguez,
-    Melvin Carvalho, Nathan Rixham, Olivier Grisel, Paolo Ciccarese, Pat Hayes,
-    Patrick Logan, Paul Kuykendall, Pelle Braendgaard, Peter Williams, Pierre-Antoine Champin,
-    Richard Cyganiak, Roy T. Fielding, Sandro Hawke, Srecko Joksimovic,
-    Stephane Fellah, Steve Harris, Ted Thibodeau Jr., Thomas Steiner, Tim Bray,
-    Tom Morris, Tristan King, Sergio Fernández, Werner Wilms, and William Waites.</p>
-</div>
-
-
-
-<div id="references" class="appendix section" typeof="bibo:Chapter" resource="#references" rel="bibo:chapter">
-<!--OddPage-->
-<h2><span class="secno">G. </span>References</h2><div class="section" id="normative-references" typeof="bibo:Chapter" resource="#normative-references" rel="bibo:chapter"><h3><span class="secno">G.1 </span>Normative references</h3><dl class="bibliography" about=""><dt id="bib-BCP47">[BCP47]</dt><dd rel="dcterms:requires">A. Phillips; M. Davis. <a href="http://tools.ietf.org/html/bcp47"><cite>Tags for Identifying Languages</cite></a>. September 2009. IETF Best Current Practice. URL: <a href="http://tools.ietf.org/html/bcp47">http://tools.ietf.org/html/bcp47</a>
-</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd rel="dcterms:requires">S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119.  URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
-</dd><dt id="bib-RFC3987">[RFC3987]</dt><dd rel="dcterms:requires">M. Dürst; M. Suignard. <a href="http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized Resource Identifiers (IRIs) (RFC 3987)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3987.txt">http://www.ietf.org/rfc/rfc3987.txt</a>
-</dd><dt id="bib-RFC4627">[RFC4627]</dt><dd rel="dcterms:requires">D. Crockford. <a href="http://www.ietf.org/rfc/rfc4627.txt"><cite>The application/json Media Type for JavaScript Object Notation (JSON) (RFC 4627)</cite></a>. July 2006. RFC. URL: <a href="http://www.ietf.org/rfc/rfc4627.txt">http://www.ietf.org/rfc/rfc4627.txt</a>
-</dd><dt id="bib-RFC5988">[RFC5988]</dt><dd rel="dcterms:requires">M. Nottingham. <cite><a href="http://www.ietf.org/rfc/rfc5988.txt">Web Linking</a>.</cite> October 2010. Internet RFC 5988. URL: <a href="http://www.ietf.org/rfc/rfc5988.txt">http://www.ietf.org/rfc/rfc5988.txt</a>
-</dd></dl></div><div class="section" id="informative-references" typeof="bibo:Chapter" resource="#informative-references" rel="bibo:chapter"><h3><span class="secno">G.2 </span>Informative references</h3><dl class="bibliography" about=""><dt id="bib-HTTP11">[HTTP11]</dt><dd rel="dcterms:references">R. Fielding et al. <a href="http://www.ietf.org/rfc/rfc2616.txt"><cite>Hypertext Transfer Protocol - HTTP/1.1</cite></a>. June 1999. RFC 2616. URL: <a href="http://www.ietf.org/rfc/rfc2616.txt">http://www.ietf.org/rfc/rfc2616.txt</a>
-</dd><dt id="bib-JSON-LD-API">[JSON-LD-API]</dt><dd rel="dcterms:references">Markus Lanthaler, Gregg Kellogg, Manu Sporny, Editors. <cite><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/">JSON-LD 1.0 Processing Algorithms and API</a>.</cite> W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/">http://www.w3.org/TR/2013/WD-json-ld-api-20130411/</a>. The latest edition is available at <a href="http://www.w3.org/TR/json-ld-api/">http://www.w3.org/TR/json-ld-api/</a>
-</dd><dt id="bib-JSON-LD-TESTS">[JSON-LD-TESTS]</dt><dd rel="dcterms:references"><cite><a href="http://www.w3.org/2013/json-ld-tests/">JSON-LD 1.0 Test Suite</a></cite>. W3C Test Suite (work in progress). URL: <a href="http://www.w3.org/2013/json-ld-tests/">http://www.w3.org/2013/json-ld-tests/</a>
-</dd><dt id="bib-MICRODATA">[MICRODATA]</dt><dd rel="dcterms:references">Ian Hickson, Editor. <cite><a href="http://www.w3.org/TR/2012/WD-microdata-20121025/">HTML Microdata</a>.</cite> 25 October 2012. W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2012/WD-microdata-20121025/">http://www.w3.org/TR/2012/WD-microdata-20121025/</a>. The latest edition is available at <a href="http://www.w3.org/TR/microdata/">http://www.w3.org/TR/microdata/</a>
-</dd><dt id="bib-MICROFORMATS">[MICROFORMATS]</dt><dd rel="dcterms:references"><a href="http://microformats.org"><cite>Microformats</cite></a>. URL: <a href="http://microformats.org">http://microformats.org</a>
-</dd><dt id="bib-RDF-SCHEMA">[RDF-SCHEMA]</dt><dd rel="dcterms:references">Dan Brickley; Ramanathan V. Guha. <a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210"><cite>RDF Vocabulary Description Language 1.0: RDF Schema</cite></a>. 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210">http://www.w3.org/TR/2004/REC-rdf-schema-20040210</a>
-</dd><dt id="bib-RDF11-CONCEPTS">[RDF11-CONCEPTS]</dt><dd rel="dcterms:references">Richard Cyganiak, David Wood, Editors. <cite><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">RDF 1.1 Concepts and Abstract Syntax.</a></cite> 15 January 2013. W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/</a>. The latest edition is available at <a href="http://www.w3.org/TR/rdf11-concepts/">http://www.w3.org/TR/rdf11-concepts/</a>
-</dd><dt id="bib-RDFA-CORE">[RDFA-CORE]</dt><dd rel="dcterms:references">Shane McCarron et al. <a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/"><cite>RDFa Core 1.1: Syntax and processing rules for embedding RDF through attributes</cite></a>. 7 June 2012. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/">http://www.w3.org/TR/2012/REC-rdfa-core-20120607/</a>
-</dd><dt id="bib-RFC3986">[RFC3986]</dt><dd rel="dcterms:references">T. Berners-Lee; R. Fielding; L. Masinter. <a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource Identifier (URI): Generic Syntax (RFC 3986)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
-</dd><dt id="bib-RFC6906">[RFC6906]</dt><dd rel="dcterms:references">Erik Wilde. <cite><a href="http://www.ietf.org/rfc/rfc6906.txt">The 'profile' Link Relation Type</a>.</cite> March 2013. Internet RFC 6906. URL: <a href="http://www.ietf.org/rfc/rfc6906.txt">http://www.ietf.org/rfc/rfc6906.txt</a>
-</dd><dt id="bib-TURTLE">[TURTLE]</dt><dd rel="dcterms:references">Eric Prud'hommeaux, Gavin Carothers, Editors. <cite><a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">Turtle: Terse RDF Triple Language.</a></cite> 19 February 2013. W3C Candidate Recommendation (work in progress). URL: <a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">http://www.w3.org/TR/2013/CR-turtle-20130219/</a>. The latest edition is available at <a href="http://www.w3.org/TR/turtle/">http://www.w3.org/TR/turtle/</a>
-</dd></dl></div></div></body></html>
Binary file spec/WD/20130411/json-ld/linked-data-graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spec/WD/json-ld-api/20130411/diff-20120712.html	Tue Apr 09 11:49:05 2013 -0400
@@ -0,0 +1,42008 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
+<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" prefix='bibo: http://purl.org/ontology/bibo/' typeof="bibo:Document">
+<head>
+<title>JSON-LD 1.0 Processing Algorithms and API</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<style type="text/css">
+  .diff {
+    font-weight:bold; color:#0a3;
+  }
+  .error a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+  }
+  .atrisk-head {
+    font-style: italic;
+  }
+</style>
+<style>
+/* --- INLINES --- */
+em.rfc2119 {
+    text-transform:     lowercase;
+    font-variant:       small-caps;
+    font-style:         normal;
+    color:              #900;
+}
+
+h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
+h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
+    border: none;
+}
+
+dfn {
+    font-weight:    bold;
+}
+
+a.internalDFN {
+    color:  inherit;
+    border-bottom:  1px solid #99c;
+    text-decoration:    none;
+}
+
+a.externalDFN {
+    color:  inherit;
+    border-bottom:  1px dotted #ccc;
+    text-decoration:    none;
+}
+
+a.bibref {
+    text-decoration:    none;
+}
+
+cite .bibref {
+    font-style: normal;
+}
+
+code {
+    color:  #ff4500;
+}
+
+
+/* --- --- */
+ol.algorithm { counter-reset:numsection; list-style-type: none; }
+ol.algorithm li { margin: 0.5em 0; }
+ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
+
+/* --- TOC --- */
+.toc a, .tof a {
+    text-decoration:    none;
+}
+
+a .secno, a .figno {
+    color:  #000;
+}
+
+ul.tof, ol.tof {
+    list-style: none outside none;
+}
+
+.caption {
+    margin-top: 0.5em;
+    font-style:   italic;
+}
+
+/* --- TABLE --- */
+table.simple {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    border-bottom:  3px solid #005a9c;
+}
+
+.simple th {
+    background: #005a9c;
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+}
+
+.simple th[scope="row"] {
+    background: inherit;
+    color:  inherit;
+    border-top: 1px solid #ddd;
+}
+
+.simple td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+    background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd > p:first-child {
+    margin-top: 0;
+}
+
+.section dd > p:last-child {
+    margin-bottom: 0;
+}
+
+.section dd {
+    margin-bottom:  1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+    margin-bottom:  0;
+}
+</style><style>/* --- EXAMPLES --- */
+div.example-title {
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.example-title span {
+    text-transform: uppercase;
+}
+aside.example, div.example, div.illegal-example {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+div.illegal-example { color: red }
+div.illegal-example p { color: black }
+aside.example, div.example {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+    border-color: #e0cb52;
+    background: #fcfaee;
+}
+
+aside.example div.example {
+    border-left-width: .1em;
+    border-color: #999;
+    background: #fff;
+}
+aside.example div.example div.example-title {
+    color: #999;
+}
+</style><style>/* --- ISSUES/NOTES --- */
+div.issue-title, div.note-title {
+    padding-right:  1em;
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.issue-title { color: #e05252; }
+div.note-title { color: #52e052; }
+div.issue-title span, div.note-title span {
+    text-transform: uppercase;
+}
+div.note, div.issue {
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+.note > p:first-child, .issue > p:first-child { margin-top: 0 }
+.issue, .note {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+}
+div.issue, div.note {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+span.note, span.issue { padding: .1em .5em .15em; }
+
+.issue {
+    border-color: #e05252;
+    background: #fbe9e9;
+}
+.note {
+    border-color: #52e052;
+    background: #e9fbe9;
+}
+
+
+</style><style>/* --- WEB IDL --- */
+pre.idl {
+    border-top: 1px solid #90b8de;
+    border-bottom: 1px solid #90b8de;
+    padding:    1em;
+    line-height:    120%;
+}
+
+pre.idl::before {
+    content:    "WebIDL";
+    display:    block;
+    width:      150px;
+    background: #90b8de;
+    color:  #fff;
+    font-family:    initial;
+    padding:    3px;
+    font-weight:    bold;
+    margin: -1em 0 1em -1em;
+}
+
+.idlType {
+    color:  #ff4500;
+    font-weight:    bold;
+    text-decoration:    none;
+}
+
+/*.idlModule*/
+/*.idlModuleID*/
+/*.idlInterface*/
+.idlInterfaceID, .idlDictionaryID, .idlCallbackID, .idlEnumID {
+    font-weight:    bold;
+    color:  #005a9c;
+}
+a.idlEnumItem {
+    color:  #000;
+    border-bottom:  1px dotted #ccc;
+    text-decoration: none;
+}
+
+.idlSuperclass {
+    font-style: italic;
+    color:  #005a9c;
+}
+
+/*.idlAttribute*/
+.idlAttrType, .idlFieldType, .idlMemberType {
+    color:  #005a9c;
+}
+.idlAttrName, .idlFieldName, .idlMemberName {
+    color:  #ff4500;
+}
+.idlAttrName a, .idlFieldName a, .idlMemberName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlMethod*/
+.idlMethType, .idlCallbackType {
+    color:  #005a9c;
+}
+.idlMethName {
+    color:  #ff4500;
+}
+.idlMethName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlCtor*/
+.idlCtorName {
+    color:  #ff4500;
+}
+.idlCtorName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlParam*/
+.idlParamType {
+    color:  #005a9c;
+}
+.idlParamName, .idlDefaultValue {
+    font-style: italic;
+}
+
+.extAttr {
+    color:  #666;
+}
+
+/*.idlSectionComment*/
+.idlSectionComment {
+    color: gray;
+}
+
+/*.idlConst*/
+.idlConstType {
+    color:  #005a9c;
+}
+.idlConstName {
+    color:  #ff4500;
+}
+.idlConstName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlException*/
+.idlExceptionID {
+    font-weight:    bold;
+    color:  #c00;
+}
+
+.idlTypedefID, .idlTypedefType {
+    color:  #005a9c;
+}
+
+.idlRaises, .idlRaises a.idlType, .idlRaises a.idlType code, .excName a, .excName a code {
+    color:  #c00;
+    font-weight:    normal;
+}
+
+.excName a {
+    font-family:    monospace;
+}
+
+.idlRaises a.idlType, .excName a.idlType {
+    border-bottom:  1px dotted #c00;
+}
+
+.excGetSetTrue, .excGetSetFalse, .prmNullTrue, .prmNullFalse, .prmOptTrue, .prmOptFalse {
+    width:  45px;
+    text-align: center;
+}
+.excGetSetTrue, .prmNullTrue, .prmOptTrue { color:  #0c0; }
+.excGetSetFalse, .prmNullFalse, .prmOptFalse { color:  #c00; }
+
+.idlImplements a {
+    font-weight:    bold;
+}
+
+dl.attributes, dl.methods, dl.constants, dl.constructors, dl.fields, dl.dictionary-members {
+    margin-left:    2em;
+}
+
+.attributes dt, .methods dt, .constants dt, .constructors dt, .fields dt, .dictionary-members dt {
+    font-weight:    normal;
+}
+
+.attributes dt code, .methods dt code, .constants dt code, .constructors dt code, .fields dt code, .dictionary-members dt code {
+    font-weight:    bold;
+    color:  #000;
+    font-family:    monospace;
+}
+
+.attributes dt code, .fields dt code, .dictionary-members dt code {
+    background:  #ffffd2;
+}
+
+.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
+    color:  #005a9c;
+    background:  transparent;
+    font-family:    inherit;
+    font-weight:    normal;
+    font-style: italic;
+}
+
+.methods dt code {
+    background:  #d9e6f8;
+}
+
+.constants dt code {
+    background:  #ddffd2;
+}
+
+.constructors dt code {
+    background:  #cfc;
+}
+
+.attributes dd, .methods dd, .constants dd, .constructors dd, .fields dd, .dictionary-members dd {
+    margin-bottom:  1em;
+}
+
+table.parameters, table.exceptions {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    margin: 0.5em 0;
+    width:  100%;
+}
+table.parameters { border-bottom:  1px solid #90b8de; }
+table.exceptions { border-bottom:  1px solid #deb890; }
+
+.parameters th, .exceptions th {
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+    font-family:    initial;
+    font-weight:    normal;
+    text-shadow:    #666 1px 1px 0;
+}
+.parameters th { background: #90b8de; }
+.exceptions th { background: #deb890; }
+
+.parameters td, .exceptions td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+    vertical-align: top;
+}
+
+.parameters tr:first-child td, .exceptions tr:first-child td {
+    border-top: none;
+}
+
+.parameters td.prmName, .exceptions td.excName, .exceptions td.excCodeName {
+    width:  100px;
+}
+
+.parameters td.prmType {
+    width:  120px;
+}
+
+table.exceptions table {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    width:  100%;
+}
+</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
+<!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
+
+<!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
+<style type='text/css'>
+.diff-old-a {
+  font-size: smaller;
+  color: red;
+}
+
+.diff-new { background-color: yellow; }
+.diff-chg { background-color: lime; }
+.diff-new:before,
+.diff-new:after
+    { content: "\2191" }
+.diff-chg:before, .diff-chg:after
+    { content: "\2195" }
+.diff-old { text-decoration: line-through; background-color: #FBB; }
+.diff-old:before,
+.diff-old:after
+    { content: "\2193" }
+:focus { border: thin red solid}
+</style>
+</head>
+
+<body><div class="head">
+<p>
+<a href="http://www.w3.org/">
+<img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" />
+</a>
+</p>
+<h1 class="title" id="title">
+JSON-LD
+<del class="diff-old">API
+</del>
+1.0
+<ins class="diff-new">Processing
+Algorithms
+and
+API
+</ins>
+</h1>
+<del class="diff-old">An
+Application
+Programming
+Interface
+for
+the
+JSON-LD
+Syntax
+</del>
+<h2 id="w3c-last-call-working-draft-11-april-2013">
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+<ins class="diff-chg">Last
+Call
+</ins>
+Working
+Draft
+<del class="diff-old">12
+July
+2012
+</del>
+<ins class="diff-chg">11
+April
+2013
+</ins>
+</h2>
+<dl>
+<dt>
+This
+version:
+</dt>
+<dd>
+<del class="diff-old">http://www.w3.org/TR/2012/WD-json-ld-api-20120712/
+</del>
+<a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/">
+<ins class="diff-chg">http://www.w3.org/TR/2013/WD-json-ld-api-20130411/
+</ins>
+</a>
+</dd>
+<dt>
+Latest
+published
+version:
+</dt>
+<dd>
+<a href="http://www.w3.org/TR/json-ld-api/">
+http://www.w3.org/TR/json-ld-api/
+</a>
+</dd>
+<dt>
+Latest
+editor's
+draft:
+</dt>
+<dd>
+<del class="diff-old">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld-api/index.html
+</del>
+<a href="http://json-ld.org/spec/latest/json-ld-api/index.html">
+<ins class="diff-chg">http://json-ld.org/spec/latest/json-ld-api/index.html
+</ins></a></dd><dt><ins class="diff-chg">
+Test
+suite:
+</ins></dt><dd><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-chg">
+http://www.w3.org/2013/json-ld-tests/
+</ins></a></dd><dt><ins class="diff-chg">
+Previous
+version:
+</ins></dt><dd><a href="http://www.w3.org/TR/2012/WD-json-ld-api-20120712/"><ins class="diff-chg">
+http://www.w3.org/TR/2012/WD-json-ld-api-20120712/
+</ins>
+</a>
+</dd>
+<dt>
+Editors:
+</dt>
+<dd rel="bibo:editor" inlist="">
+<span typeof="foaf:Person">
+<del class="diff-old">Manu
+Sporny
+</del>
+<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
+<ins class="diff-chg">Markus
+Lanthaler
+</ins>
+</a>,
+<del class="diff-old">Digital
+Bazaar
+</del>
+<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
+<ins class="diff-chg">Graz
+University
+of
+Technology
+</ins>
+</a>
+</span>
+</dd>
+<dd rel="bibo:editor" inlist="">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
+Gregg
+Kellogg
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
+Kellogg
+Associates
+</a>
+</span>
+</dd>
+<dd rel="bibo:editor" inlist="">
+<span typeof="foaf:Person">
+<del class="diff-old">Dave
+Longley
+</del>
+<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://manu.sporny.org/">
+<ins class="diff-chg">Manu
+Sporny
+</ins>
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
+Digital
+Bazaar
+</a>
+</span>
+</dd>
+<del class="diff-old">Markus
+Lanthaler
+,
+Graz
+University
+of
+Technology
+</del>
+<dt>
+Authors:
+</dt>
+<dd rel="dcterms:contributor">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Dave Longley" href="http://digitalbazaar.com/">
+Dave
+Longley
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
+Digital
+Bazaar
+</a>
+</span>
+</dd>
+<dd rel="dcterms:contributor">
+<span typeof="foaf:Person">
+<del class="diff-old">Manu
+Sporny
+,
+Digital
+Bazaar
+</del>
+<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
+Gregg
+Kellogg
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
+Kellogg
+Associates
+</a>
+</span>
+</dd>
+<dd rel="dcterms:contributor">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
+Markus
+Lanthaler
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
+Graz
+University
+of
+Technology
+</a>
+</span>
+</dd>
+<dd rel="dcterms:contributor">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://digitalbazaar.com/">
+<ins class="diff-new">Manu
+Sporny
+</ins></a>,<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/"><ins class="diff-new">
+Digital
+Bazaar
+</ins></a></span></dd>
+</dl>
+<p>
+This
+document
+is
+also
+available
+in
+this
+non-normative
+format:
+<a rel="alternate" href="diff-20120712.html">
+diff
+to
+previous
+version
+</a>
+</p>
+<p class="copyright">
+<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+Copyright
+</a>

+<del class="diff-old">2010-2012
+</del>
+<ins class="diff-chg">2010-2013
+</ins>
+<a href="http://www.w3.org/">
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+</a>
+<sup>

+</sup>
+(
+<a href="http://www.csail.mit.edu/">
+<abbr title="Massachusetts Institute of Technology">
+MIT
+</abbr>
+</a>,
+<a href="http://www.ercim.eu/">
+<abbr title="European Research Consortium for Informatics and Mathematics">
+ERCIM
+</abbr>
+</a>,
+<a href="http://www.keio.ac.jp/">
+Keio
+</a>,
+<a href="http://ev.buaa.edu.cn/">
+<ins class="diff-new">Beihang
+</ins>
+</a>
+),
+All
+Rights
+Reserved.
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">
+liability
+</a>,
+<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
+trademark
+</a>
+and
+<a href="http://www.w3.org/Consortium/Legal/copyright-documents">
+document
+use
+</a>
+rules
+apply.
+</p>
+<hr />
+</div>
+<section id="abstract" class="introductory" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:chapter">
+<h2>
+Abstract
+</h2>
+<p>
+<del class="diff-old">JSON
+[
+RFC4627
+]
+has
+proven
+to
+be
+a
+highly
+useful
+object
+serialization
+and
+messaging
+format.
+JSON-LD
+[
+JSON-LD
+]
+harmonizes
+the
+representation
+of
+Linked
+Data
+in
+JSON
+by
+outlining
+a
+common
+JSON
+representation
+format
+for
+expressing
+directed
+graphs;
+mixing
+both
+Linked
+Data
+and
+non-Linked
+Data
+in
+a
+single
+document.
+</del>
+This
+<del class="diff-old">document
+outlines
+</del>
+<ins class="diff-chg">specification
+defines
+</ins>
+an
+Application
+Programming
+Interface
+<ins class="diff-new">(API)
+</ins>
+and
+a
+set
+of
+algorithms
+for
+<del class="diff-old">programmatically
+transforming
+</del>
+<ins class="diff-chg">programmatic
+transformations
+of
+</ins>
+JSON-LD
+<del class="diff-old">documents
+in
+order
+to
+make
+them
+easier
+to
+work
+with
+in
+programming
+environments
+like
+JavaScript,
+Python,
+and
+Ruby.
+</del>
+<ins class="diff-chg">documents.
+Restructuring
+data
+according
+the
+defined
+transformations
+often
+dramatically
+simplifies
+its
+usage.
+</ins>
+</p>
+</section>
+<section id="sotd" class="introductory" typeof="bibo:Chapter" resource="#sotd" rel="bibo:chapter">
+<h2>
+Status
+of
+This
+Document
+</h2>
+<p>
+<em>
+This
+section
+describes
+the
+status
+of
+this
+document
+at
+the
+time
+of
+its
+publication.
+Other
+documents
+may
+supersede
+this
+document.
+A
+list
+of
+current
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+publications
+and
+the
+latest
+revision
+of
+this
+technical
+report
+can
+be
+found
+in
+the
+<a href="http://www.w3.org/TR/">
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+technical
+reports
+index
+</a>
+at
+http://www.w3.org/TR/.
+</em>
+</p>
+<p>
+This
+document
+has
+been
+under
+development
+for
+over
+<del class="diff-old">18
+</del>
+<ins class="diff-chg">25
+</ins>
+months
+in
+the
+JSON
+for
+Linking
+Data
+Community
+Group.
+The
+document
+has
+recently
+been
+transferred
+to
+the
+RDF
+Working
+Group
+for
+review,
+improvement,
+and
+publication
+along
+the
+Recommendation
+track.
+<del class="diff-old">While
+this
+is
+a
+First
+Public
+Working
+Draft
+publication,
+the
+</del>
+<ins class="diff-chg">The
+</ins>
+specification
+has
+undergone
+significant
+development,
+review,
+and
+changes
+during
+the
+course
+of
+the
+last
+<del class="diff-old">18
+months
+and
+is
+more
+mature
+than
+the
+First
+Public
+Working
+Draft
+status
+implies.
+</del>
+<ins class="diff-chg">25
+months.
+</ins>
+There
+are
+<del class="diff-old">currently
+</del>
+<ins class="diff-chg">several
+independent
+</ins>
+<a href="http://json-ld.org/#impl">
+<del class="diff-old">five
+</del>
+interoperable
+implementations
+</a>
+of
+this
+<del class="diff-old">specification.
+There
+is
+</del>
+<ins class="diff-chg">specification
+and
+</ins>
+a
+fairly
+complete
+test
+suite
+<del class="diff-old">and
+a
+live
+JSON-LD
+editor
+that
+is
+capable
+of
+demonstrating
+the
+features
+described
+in
+this
+document.
+While
+development
+on
+implementations,
+the
+test
+suite
+and
+the
+live
+editor
+will
+continue,
+they
+are
+believed
+to
+be
+mature
+enough
+to
+be
+integrated
+into
+a
+non-production
+system
+at
+this
+point
+in
+time
+with
+the
+expectation
+that
+they
+could
+be
+used
+in
+a
+production
+system
+within
+the
+next
+year.
+Issue
+1
+</del>
+<ins class="diff-chg">[
+</ins><cite>
+<a class="bibref" href="#bib-JSON-LD-TESTS">
+<ins class="diff-chg">JSON-LD-TESTS
+</ins></a>
+<del class="diff-old">It
+is
+important
+for
+readers
+to
+understand
+that
+the
+scope
+of
+this
+document
+is
+currently
+under
+debate
+and
+new
+features
+may
+be
+added
+to
+the
+specification.
+Existing
+features
+may
+be
+modified
+heavily
+or
+removed
+entirely
+from
+the
+specification
+upon
+further
+review
+and
+feedback
+from
+the
+broader
+community.
+This
+is
+a
+work
+in
+progress
+and
+publication
+as
+a
+First
+Public
+Working
+Draft
+does
+not
+require
+that
+all
+Working
+Group
+members
+agree
+on
+the
+content
+of
+the
+document.
+</del>
+</cite>
+<ins class="diff-chg">].
+</ins>
+</p>
+<p>
+This
+document
+was
+published
+by
+the
+<a href="http://www.w3.org/2011/rdf-wg/">
+RDF
+Working
+Group
+</a>
+as
+a
+<del class="diff-old">First
+Public
+</del>
+<ins class="diff-chg">Last
+Call
+</ins>
+Working
+Draft.
+This
+document
+is
+intended
+to
+become
+a
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+Recommendation.
+If
+you
+wish
+to
+make
+comments
+regarding
+this
+document,
+please
+send
+them
+to
+<a href="mailto:public-rdf-comments@w3.org">
+public-rdf-comments@w3.org
+</a>
+(
+<a href="mailto:public-rdf-comments-request@w3.org?subject=subscribe">
+subscribe
+</a>,
+<a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">
+archives
+</a>
+).
+<ins class="diff-new">The
+Last
+Call
+period
+ends
+11
+May
+2013.
+</ins>
+All
+<del class="diff-old">feedback
+is
+</del>
+<ins class="diff-chg">comments
+are
+</ins>
+welcome.
+</p>
+<div style="padding: 1em; margin: 1em; border: 1px solid red;">
+<p>
+<ins class="diff-new">The
+Working
+Group
+welcomes
+reports
+of
+implementations,
+sent
+to
+the
+comments
+address.
+If
+we
+gather
+sufficient
+evidence
+of
+interoperable
+implementations,
+the
+group
+may
+request
+to
+skip
+Call
+for
+Implementations
+(Candidate
+Recommendation)
+drafts
+and
+have
+the
+next
+round
+of
+publications
+be
+Proposed
+Recommendations.
+</ins></p></div>
+<p>
+Publication
+as
+a
+<ins class="diff-new">Last
+Call
+</ins>
+Working
+Draft
+does
+not
+imply
+endorsement
+by
+the
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+Membership.
+This
+is
+a
+draft
+document
+and
+may
+be
+updated,
+replaced
+or
+obsoleted
+by
+other
+documents
+at
+any
+time.
+It
+is
+inappropriate
+to
+cite
+this
+document
+as
+other
+than
+work
+in
+progress.
+</p>
+<p>
+This
+<ins class="diff-new">is
+a
+Last
+Call
+Working
+Draft
+and
+thus
+the
+Working
+Group
+has
+determined
+that
+this
+document
+has
+satisfied
+the
+relevant
+technical
+requirements
+and
+is
+sufficiently
+stable
+to
+advance
+through
+the
+Technical
+Recommendation
+process.
+</ins></p><p><ins class="diff-new">
+This
+</ins>
+document
+was
+produced
+by
+a
+group
+operating
+under
+the
+<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">
+5
+February
+2004
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+Patent
+Policy
+</a>.
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+maintains
+a
+<a href="http://www.w3.org/2004/01/pp-impl/46168/status" rel="disclosure">
+public
+list
+of
+any
+patent
+disclosures
+</a>
+made
+in
+connection
+with
+the
+deliverables
+of
+the
+group;
+that
+page
+also
+includes
+instructions
+for
+disclosing
+a
+patent.
+An
+individual
+who
+has
+actual
+knowledge
+of
+a
+patent
+which
+the
+individual
+believes
+contains
+<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">
+Essential
+Claim(s)
+</a>
+must
+disclose
+the
+information
+in
+accordance
+with
+<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">
+section
+6
+of
+the
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+Patent
+Policy
+</a>.
+</p>
+</section>
+<section id="toc">
+<h2 class="introductory">
+Table
+of
+Contents
+</h2>
+<ul class="toc">
+<li class="tocline">
+<a href="#introduction" class="tocxref">
+<span class="secno">
+1.
+</span>
+<del class="diff-old">Preface
+1.1
+Contributing
+</del>
+<ins class="diff-chg">Introduction
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#features" class="tocxref">
+<span class="secno">
+2.
+</span>
+<del class="diff-old">Introduction
+</del>
+<ins class="diff-chg">Features
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#expansion" class="tocxref">
+<span class="secno">
+2.1
+</span>
+Expansion
+</a>
+</li>
+<li class="tocline">
+<a href="#compaction" class="tocxref">
+<span class="secno">
+2.2
+</span>
+Compaction
+</a>
+</li>
+<li class="tocline">
+<a href="#flattening" class="tocxref">
+<span class="secno">
+2.3
+</span>
+<del class="diff-old">Conversion
+to
+and
+from
+RDF
+</del>
+<ins class="diff-chg">Flattening
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#rdf-conversion" class="tocxref">
+<span class="secno">
+2.4
+</span>
+<del class="diff-old">Framing
+and
+Normalization
+</del>
+<ins class="diff-chg">RDF
+Conversion
+</ins>
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#conformance" class="tocxref">
+<span class="secno">
+3.
+</span>
+<del class="diff-old">The
+Application
+Programming
+Interface
+</del>
+<ins class="diff-chg">Conformance
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#general-terminology" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.1
+</del>
+<ins class="diff-chg">4.
+</ins>
+</span>
+General
+Terminology
+</a>
+</li>
+<li class="tocline">
+<del class="diff-old">3.2
+JsonLdProcessor
+</del>
+<a href="#algorithm-terms" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.2.1
+</del>
+<ins class="diff-chg">5.
+</ins>
+</span>
+<del class="diff-old">Methods
+</del>
+<ins class="diff-chg">Algorithm
+Terms
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#context-processing-algorithms" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.3
+</del>
+<ins class="diff-chg">6.
+</ins>
+</span>
+<del class="diff-old">Callbacks
+</del>
+<ins class="diff-chg">Context
+Processing
+Algorithms
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#context-processing-algorithm" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.3.1
+</del>
+<ins class="diff-chg">6.1
+</ins>
+</span>
+<del class="diff-old">JsonLdCallback
+</del>
+<ins class="diff-chg">Context
+Processing
+Algorithm
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#create-term-definition" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.3.1.1
+</del>
+<ins class="diff-chg">6.2
+</ins>
+</span>
+<del class="diff-old">Methods
+</del>
+<ins class="diff-chg">Create
+Term
+Definition
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#iri-expansion" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.3.2
+</del>
+<ins class="diff-chg">6.3
+</ins>
+</span>
+<del class="diff-old">QuadCallback
+</del>
+<del class="diff-old">3.3.2.1
+Methods
+</del>
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr><ins class="diff-chg">
+Expansion
+</ins>
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#expansion-algorithms" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4
+</del>
+<ins class="diff-chg">7.
+</ins>
+</span>
+<del class="diff-old">Data
+Structures
+</del>
+<ins class="diff-chg">Expansion
+Algorithms
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#expansion-algorithm" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4.1
+</del>
+<ins class="diff-chg">7.1
+</ins>
+</span>
+<del class="diff-old">URL
+</del>
+<ins class="diff-chg">Expansion
+Algorithm
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#value-expansion" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4.2
+</del>
+<ins class="diff-chg">7.2
+</ins>
+</span>
+<del class="diff-old">JsonLdOptions
+</del>
+<ins class="diff-chg">Value
+Expansion
+</ins>
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#compaction-algorithms" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4.3
+</del>
+<ins class="diff-chg">8.
+</ins>
+</span>
+<del class="diff-old">Quad
+</del>
+<ins class="diff-chg">Compaction
+Algorithms
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#compaction-algorithm" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4.3.1
+</del>
+<ins class="diff-chg">8.1
+</ins>
+</span>
+<del class="diff-old">Attributes
+</del>
+<ins class="diff-chg">Compaction
+Algorithm
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#inverse-context-creation" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4.4
+</del>
+<ins class="diff-chg">8.2
+</ins>
+</span>
+<del class="diff-old">Node
+</del>
+<ins class="diff-chg">Inverse
+Context
+Creation
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#iri-compaction" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4.5
+</del>
+<ins class="diff-chg">8.3
+</ins>
+</span>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">3.4.5.1
+Attributes
+</del>
+<ins class="diff-chg">Compaction
+</ins>
+</a>
+</li>
+<del class="diff-old">3.4.6
+Blank
+Node
+</del>
+<li class="tocline">
+<a href="#term-selection" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4.6.1
+</del>
+<ins class="diff-chg">8.4
+</ins>
+</span>
+<del class="diff-old">Attributes
+</del>
+<ins class="diff-chg">Term
+Selection
+</ins>
+</a>
+</li>
+<li class="tocline">
+<del class="diff-old">3.4.7
+Literal
+</del>
+<a href="#value-compaction" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4.7.1
+</del>
+<ins class="diff-chg">8.5
+</ins>
+</span>
+<del class="diff-old">Attributes
+</del>
+<ins class="diff-chg">Value
+Compaction
+</ins>
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#flattening-algorithms" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.
+</del>
+<ins class="diff-chg">9.
+</ins>
+</span>
+<ins class="diff-new">Flattening
+</ins>
+Algorithms
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#flattening-algorithm" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.1
+</del>
+<ins class="diff-chg">9.1
+</ins>
+</span>
+<ins class="diff-new">Flattening
+</ins>
+Algorithm
+<del class="diff-old">Terms
+</del>
+</a>
+</li>
+<li class="tocline">
+<a href="#node-map-generation" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.2
+</del>
+<ins class="diff-chg">9.2
+</ins>
+</span>
+<del class="diff-old">Context
+Processing
+</del>
+<ins class="diff-chg">Node
+Map
+Generation
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#generate-blank-node-identifier" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.3
+</del>
+<ins class="diff-chg">9.3
+</ins>
+</span>
+<del class="diff-old">IRI
+Expansion
+</del>
+<ins class="diff-chg">Generate
+Blank
+Node
+Identifier
+</ins>
+</a>
+</li>
+<del class="diff-old">4.4
+IRI
+Compaction
+</del>
+</ul>
+</li>
+<li class="tocline">
+<a href="#rdf-conversion-algorithms" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.4.1
+</del>
+<ins class="diff-chg">10.
+</ins>
+</span>
+<del class="diff-old">IRI
+Compaction
+Algorithm
+</del>
+<ins class="diff-chg">RDF
+Conversion
+Algorithms
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#convert-to-rdf-algorithm" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.4.2
+</del>
+<ins class="diff-chg">10.1
+</ins>
+</span>
+<del class="diff-old">Term
+Rank
+</del>
+<ins class="diff-chg">Convert
+to
+RDF
+</ins>
+Algorithm
+</a>
+</li>
+<li class="tocline">
+<a href="#object-to-rdf-conversion" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.5
+</del>
+<ins class="diff-chg">10.2
+</ins>
+</span>
+<del class="diff-old">Value
+Expansion
+</del>
+<ins class="diff-chg">Object
+to
+RDF
+Conversion
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#list-to-rdf-conversion" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.6
+</del>
+<ins class="diff-chg">10.3
+</ins>
+</span>
+<del class="diff-old">Value
+Compaction
+</del>
+<ins class="diff-chg">List
+to
+RDF
+Conversion
+</ins>
+</a>
+</li>
+<li class="tocline">
+<del class="diff-old">4.7
+Expansion
+</del>
+<a href="#convert-from-rdf-algorithm" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.7.1
+</del>
+<ins class="diff-chg">10.4
+</ins>
+</span>
+<del class="diff-old">Expansion
+</del>
+<ins class="diff-chg">Convert
+from
+RDF
+</ins>
+Algorithm
+</a>
+</li>
+<li class="tocline">
+<a href="#rdf-to-object-conversion" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.8
+</del>
+<ins class="diff-chg">10.5
+</ins>
+</span>
+<del class="diff-old">Compaction
+</del>
+<ins class="diff-chg">RDF
+to
+Object
+Conversion
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#data-round-tripping" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.8.1
+</del>
+<ins class="diff-chg">10.6
+</ins>
+</span>
+<del class="diff-old">Compaction
+Algorithm
+</del>
+<ins class="diff-chg">Data
+Round
+Tripping
+</ins>
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#the-application-programming-interface" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.9
+</del>
+<ins class="diff-chg">11.
+</ins>
+</span>
+<del class="diff-old">RDF
+Conversion
+</del>
+<ins class="diff-chg">The
+Application
+Programming
+Interface
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<del class="diff-old">4.9.1
+Overview
+4.9.2
+Parsing
+Examples
+</del>
+<a href="#the-jsonldprocessor-interface" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.9.3
+</del>
+<ins class="diff-chg">11.1
+</ins>
+</span>
+<del class="diff-old">Convert
+to
+RDF
+Algorithm
+</del>
+<ins class="diff-chg">The
+</ins><span class="formerLink">
+<code>
+<ins class="diff-chg">JsonLdProcessor
+</ins></code>
+<del class="diff-old">4.9.4
+</del>
+</span>
+<del class="diff-old">List
+Conversion
+</del>
+<ins class="diff-chg">Interface
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#callbacks" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.9.5
+</del>
+<ins class="diff-chg">11.2
+</ins>
+</span>
+<del class="diff-old">Convert
+from
+RDF
+Algorithm
+</del>
+<ins class="diff-chg">Callbacks
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#data-structures" class="tocxref">
+<span class="secno">
+<del class="diff-old">5.
+</del>
+<ins class="diff-chg">11.3
+</ins>
+</span>
+Data
+<del class="diff-old">Round
+Tripping
+</del>
+<ins class="diff-chg">Structures
+</ins>
+</a>
+</li>
+<del class="diff-old">A.
+Initial
+Context
+</del>
+</ul>
+</li>
+<li class="tocline">
+<a href="#acknowledgements" class="tocxref">
+<span class="secno">
+<del class="diff-old">B.
+</del>
+<ins class="diff-chg">A.
+</ins>
+</span>
+Acknowledgements
+</a>
+</li>
+<li class="tocline">
+<a href="#references" class="tocxref">
+<span class="secno">
+<del class="diff-old">C.
+</del>
+<ins class="diff-chg">B.
+</ins>
+</span>
+References
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#normative-references" class="tocxref">
+<span class="secno">
+<del class="diff-old">C.1
+</del>
+<ins class="diff-chg">B.1
+</ins>
+</span>
+Normative
+references
+</a>
+</li>
+<li class="tocline">
+<a href="#informative-references" class="tocxref">
+<span class="secno">
+<del class="diff-old">C.2
+</del>
+<ins class="diff-chg">B.2
+</ins>
+</span>
+Informative
+references
+</a>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section class="informative" id="introduction">
+<h2>
+<span class="secno">
+1.
+</span>
+<del class="diff-old">Preface
+</del>
+<ins class="diff-chg">Introduction
+</ins>
+</h2>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+This
+document
+is
+a
+detailed
+specification
+for
+an
+Application
+Programming
+Interface
+for
+the
+JSON-LD
+<del class="diff-old">Syntax.
+</del>
+<ins class="diff-chg">syntax.
+</ins>
+The
+document
+is
+primarily
+intended
+for
+the
+following
+audiences:
+</p>
+<ul>
+<li>
+<ins class="diff-new">Developers
+who
+want
+an
+overview
+of
+the
+JSON-LD
+API.
+</ins></li><li>
+Web
+authors
+and
+developers
+<del class="diff-old">that
+</del>
+<ins class="diff-chg">who
+</ins>
+want
+a
+very
+detailed
+view
+of
+how
+a
+<a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">
+<ins class="diff-new">JSON-LD
+Processor
+</ins></a><ins class="diff-new">
+or
+a
+</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">
+JSON-LD
+<del class="diff-old">processor
+and
+the
+</del>
+API
+<ins class="diff-new">Implementation
+</ins></a>
+operates.
+</li>
+<li>
+Software
+developers
+<del class="diff-old">that
+</del>
+<ins class="diff-chg">who
+</ins>
+want
+to
+implement
+<del class="diff-old">processors
+and
+APIs
+for
+JSON-LD.
+</del>
+<ins class="diff-chg">the
+algorithms
+to
+transform
+JSON-LD
+documents.
+</ins>
+</li>
+</ul>
+<p>
+To
+understand
+the
+basics
+in
+this
+specification
+you
+must
+first
+be
+familiar
+with
+JSON,
+which
+is
+detailed
+in
+[
+<cite>
+<a class="bibref" href="#bib-RFC4627">
+RFC4627
+</a>
+</cite>
+].
+You
+must
+also
+understand
+the
+JSON-LD
+<del class="diff-old">Syntax
+</del>
+<ins class="diff-chg">syntax
+defined
+in
+</ins>
+[
+<cite>
+<a class="bibref" href="#bib-JSON-LD">
+JSON-LD
+</a>
+</cite>
+],
+which
+is
+the
+base
+syntax
+used
+by
+all
+of
+the
+algorithms
+in
+this
+document.
+To
+understand
+the
+API
+and
+how
+it
+is
+intended
+to
+operate
+in
+a
+programming
+environment,
+it
+is
+useful
+to
+have
+working
+knowledge
+of
+the
+JavaScript
+programming
+language
+[
+<cite>
+<a class="bibref" href="#bib-ECMA-262">
+ECMA-262
+</a>
+</cite>
+]
+and
+WebIDL
+[
+<cite>
+<a class="bibref" href="#bib-WEBIDL">
+WEBIDL
+</a>
+</cite>
+].
+To
+understand
+how
+JSON-LD
+maps
+to
+RDF,
+it
+is
+helpful
+to
+be
+familiar
+with
+the
+basic
+RDF
+concepts
+[
+<cite>
+<del class="diff-old">RDF-CONCEPTS
+</del>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-chg">RDF11-CONCEPTS
+</ins>
+</a>
+</cite>
+].
+</p>
+</section>
+<section class="informative" id="features">
+<h2>
+<span class="secno">
+<del class="diff-old">1.1
+</del>
+<ins class="diff-chg">2.
+</ins>
+</span>
+<del class="diff-old">Contributing
+There
+are
+a
+number
+of
+ways
+that
+one
+may
+participate
+in
+the
+development
+of
+this
+specification:
+If
+you
+want
+to
+make
+sure
+that
+your
+feedback
+is
+formally
+addressed
+by
+the
+RDF
+Working
+Group,
+you
+should
+send
+it
+to
+public-rdf-comments:
+public-rdf-comments@w3.org
+Ad-hoc
+technical
+discussion
+primarily
+occurs
+on
+the
+public
+community
+mailing
+list:
+public-linked-json@w3.org
+</del>
+<ins class="diff-chg">Features
+</ins></h2>
+<del class="diff-old">Public
+JSON-LD
+Community
+Group
+teleconferences
+are
+held
+on
+Tuesdays
+at
+1500UTC
+every
+week.
+RDF
+Working
+Group
+teleconferences
+are
+held
+on
+Wednesdays
+at
+1500UTC
+every
+week.
+Participation
+is
+limited
+to
+RDF
+Working
+Group
+members.
+Specification
+bugs
+and
+issues
+should
+be
+reported
+in
+the
+issue
+tracker
+if
+you
+do
+not
+want
+to
+send
+an
+e-mail
+to
+the
+public-rdf-comments
+mailing
+list.
+</del>
+<p>
+<del class="diff-old">Source
+code
+for
+the
+specification
+can
+be
+found
+on
+Github.
+The
+#json-ld
+IRC
+channel
+</del>
+<em>
+<ins class="diff-chg">This
+section
+</ins>
+is
+<del class="diff-old">available
+for
+real-time
+discussion
+on
+irc.freenode.net.
+</del>
+<ins class="diff-chg">non-normative.
+</ins></em>
+<del class="diff-old">2.
+Introduction
+</del>
+</p>
+<p>
+The
+JSON-LD
+Syntax
+specification
+[
+<cite>
+<a class="bibref" href="#bib-JSON-LD">
+JSON-LD
+</a>
+</cite>
+]
+<del class="diff-old">outlines
+</del>
+<ins class="diff-chg">defines
+</ins>
+a
+<del class="diff-old">language
+that
+may
+be
+used
+</del>
+<ins class="diff-chg">syntax
+</ins>
+to
+express
+Linked
+Data
+in
+JSON.
+<del class="diff-old">Often,
+</del>
+<ins class="diff-chg">Because
+there
+is
+more
+than
+one
+way
+to
+express
+Linked
+Data
+using
+this
+syntax,
+</ins>
+it
+is
+<ins class="diff-new">often
+</ins>
+useful
+to
+be
+able
+to
+transform
+JSON-LD
+documents
+so
+that
+they
+may
+be
+<ins class="diff-new">more
+</ins>
+easily
+<del class="diff-old">processed
+</del>
+<ins class="diff-chg">consumed
+by
+specific
+applications.
+</ins></p><p><ins class="diff-chg">
+JSON-LD
+uses
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+contexts
+</ins></a><ins class="diff-chg">
+to
+allow
+Linked
+Data
+to
+be
+expressed
+</ins>
+in
+a
+<del class="diff-old">programming
+environment
+like
+JavaScript,
+Python
+</del>
+<ins class="diff-chg">way
+that
+is
+specifically
+tailored
+to
+a
+particular
+person
+</ins>
+or
+<del class="diff-old">Ruby.
+</del>
+<ins class="diff-chg">application.
+By
+providing
+a
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>,<ins class="diff-chg">
+JSON
+data
+can
+be
+expressed
+in
+a
+way
+that
+is
+a
+natural
+fit
+for
+a
+particular
+person
+or
+application
+whilst
+also
+indicating
+how
+the
+data
+should
+be
+understood
+at
+a
+global
+scale.
+In
+order
+for
+people
+or
+applications
+to
+share
+data
+that
+was
+created
+using
+a
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+that
+is
+different
+from
+their
+own,
+a
+JSON-LD
+processor
+must
+be
+able
+to
+transform
+a
+document
+from
+one
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+to
+another.
+Instead
+of
+requiring
+JSON-LD
+processors
+to
+write
+specific
+code
+for
+every
+imaginable
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+switching
+scenario,
+it
+is
+much
+easier
+to
+specify
+a
+single
+algorithm
+that
+can
+remove
+any
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>.<ins class="diff-chg">
+Similarly,
+another
+algorithm
+can
+be
+specified
+to
+subsequently
+apply
+any
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>.<ins class="diff-chg">
+These
+two
+algorithms
+represent
+the
+most
+basic
+transformations
+of
+JSON-LD
+documents.
+They
+are
+referred
+to
+as
+</ins><a class="tref internalDFN" title="expansion" href="#dfn-expansion"><ins class="diff-chg">
+expansion
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
+compaction
+</ins></a>,<ins class="diff-chg">
+respectively.
+</ins>
+</p>
+<p>
+There
+are
+<del class="diff-old">three
+</del>
+<ins class="diff-chg">four
+</ins>
+major
+types
+of
+transformation
+that
+are
+discussed
+in
+this
+<del class="diff-old">document;
+compaction,
+</del>
+<ins class="diff-chg">document:
+</ins>
+expansion,
+<ins class="diff-new">compaction,
+flattening,
+</ins>
+and
+RDF
+conversion.
+</p>
+<section class="informative" id="expansion">
+<h3>
+<span class="secno">
+2.1
+</span>
+Expansion
+</h3>
+<p>
+<del class="diff-old">Software
+algorithms
+are
+easiest
+to
+write
+when
+the
+data
+</del>
+<em>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+The
+algorithm
+</ins>
+that
+<del class="diff-old">they
+are
+processing
+have
+</del>
+<ins class="diff-chg">removes
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+is
+called
+</ins><dfn title="expansion" id="dfn-expansion"><ins class="diff-chg">
+expansion
+</ins></dfn>.<ins class="diff-chg">
+Before
+performing
+any
+other
+transformations
+on
+</ins>
+a
+<del class="diff-old">regular
+form.
+Since
+information
+can
+be
+represented
+by
+</del>
+JSON-LD
+<del class="diff-old">in
+a
+variety
+of
+different
+ways,
+transforming
+all
+</del>
+<ins class="diff-chg">document,
+it
+is
+easiest
+to
+remove
+any
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+from
+it
+and
+to
+make
+data
+structures
+more
+regular.
+</ins></p><p><ins class="diff-chg">
+To
+get
+an
+idea
+</ins>
+of
+<del class="diff-old">these
+methods
+into
+a
+uniform
+structure
+allows
+</del>
+<ins class="diff-chg">how
+context
+and
+data
+structuring
+affects
+</ins>
+the
+<del class="diff-old">developer
+to
+simplify
+their
+processing
+code.
+For
+example,
+note
+</del>
+<ins class="diff-chg">same
+data,
+here
+is
+an
+example
+of
+JSON-LD
+</ins>
+that
+<del class="diff-old">the
+following
+input
+</del>
+uses
+only
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">terms
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+and
+is
+fairly
+compact:
+</p>
+<del class="diff-old">  var input1 = {
+  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+</del>
+    <div class="example"><div class="example-title"><span>Example 1</span>: Sample JSON-LD document</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;
+</ins>
+}
+</pre>
+</div>
+<p>
+The
+next
+input
+example
+uses
+one
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+to
+express
+a
+<del class="diff-old">property,
+</del>
+<ins class="diff-chg">property
+and
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+to
+encapsulate
+another,
+</ins>
+but
+leaves
+the
+rest
+of
+the
+information
+untouched.
+</p>
+<del class="diff-old">  var input2 = {
+  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;
+  &quot;&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+</del>
+    <div class="example"><div class="example-title"><span>Example 2</span>: Sample JSON-LD document using an IRI instead of a term to express a property</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;: {
+</ins>    <span class="diff">&quot;website&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;</span><ins class="diff-chg">
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;<span class="diff">http://xmlns.com/foaf/0.1/name</span>&quot;: &quot;Markus Lanthaler&quot;,
+</ins>  <span class="diff">&quot;website&quot;</span>: <span class="diff">{ &quot;@id&quot;:</span> &quot;http://www.markus-lanthaler.com/&quot; <span class="diff">}</span>
+}
+</pre>
+</div>
+<p>
+<del class="diff-old">While
+</del>
+<ins class="diff-chg">Note
+that
+</ins>
+both
+inputs
+are
+valid
+<del class="diff-old">JSON-LD,
+writing
+a
+program
+to
+handle
+every
+permutation
+of
+possible
+inputs
+can
+be
+difficult,
+especially
+when
+</del>
+<ins class="diff-chg">JSON-LD
+and
+both
+represent
+</ins>
+the
+<del class="diff-old">incoming
+</del>
+<ins class="diff-chg">same
+information.
+The
+difference
+is
+in
+their
+</ins><a class="tref internalDFN" title="context" href="#dfn-context">
+context
+<del class="diff-old">could
+change
+as
+well.
+To
+</del>
+</a>
+<ins class="diff-chg">information
+and
+in
+the
+data
+structures
+used.
+A
+JSON-LD
+processor
+can
+remove
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+and
+</ins>
+ensure
+that
+the
+data
+<del class="diff-old">can
+be
+given
+a
+</del>
+<ins class="diff-chg">is
+</ins>
+more
+<del class="diff-old">uniform
+structure,
+JSON-LD
+introduces
+the
+notion
+of
+expansion.
+</del>
+<ins class="diff-chg">regular
+by
+employing
+</ins><a class="tref internalDFN" title="expansion" href="#dfn-expansion"><ins class="diff-chg">
+expansion
+</ins></a>.</p><p><a class="tref internalDFN" title="expansion" href="#dfn-expansion">
+Expansion
+<del class="diff-old">performs
+</del>
+</a>
+<ins class="diff-chg">has
+</ins>
+two
+important
+<del class="diff-old">operations.
+The
+first
+is
+to
+expand
+</del>
+<ins class="diff-chg">goals:
+removing
+any
+contextual
+information
+from
+the
+document,
+and
+ensuring
+</ins>
+all
+values
+<del class="diff-old">that
+</del>
+are
+<del class="diff-old">IRI
+s
+to
+their
+fully
+expanded
+</del>
+<ins class="diff-chg">represented
+in
+a
+regular
+</ins>
+form.
+<del class="diff-old">The
+second
+is
+</del>
+<ins class="diff-chg">These
+goals
+are
+accomplished
+by
+expanding
+all
+properties
+</ins>
+to
+<del class="diff-old">express
+</del>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+IRIs
+</ins></a><ins class="diff-chg">
+and
+by
+expressing
+</ins>
+all
+values
+in
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">arrays
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">
+expanded
+form
+<del class="diff-old">.
+To
+transform
+both
+inputs
+above
+to
+</del>
+</a>.
+<a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">
+<ins class="diff-chg">Expanded
+form
+</ins></a><ins class="diff-chg">
+is
+</ins>
+the
+<del class="diff-old">same
+representation,
+</del>
+<ins class="diff-chg">most
+verbose
+and
+regular
+way
+of
+expressing
+of
+values
+in
+JSON-LD;
+all
+contextual
+information
+from
+</ins>
+the
+<del class="diff-old">developer
+could
+do
+</del>
+<ins class="diff-chg">document
+is
+instead
+stored
+locally
+with
+each
+value.
+Running
+</ins>
+the
+<del class="diff-old">following:
+  function expansionCallback(output) {
+   console.log(output);
+}
+</del>
+<a href="#expansion-algorithm">
+<ins class="diff-chg">Expansion
+algorithm
+</ins></a><ins class="diff-chg">
+(
+</ins><code class="idlMemberName">
+<del class="diff-old">// the second parameter is 'null' because the developer does not wish to
+// inject another context value
+jsonld.expand(input1, null, expansionCallback);
+jsonld.expand(input2,
+null,
+expansionCallback);
+</del>
+<a href="#widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">
+<ins class="diff-chg">expand
+</ins></a>
+<del class="diff-old">The
+output
+for
+both
+calls
+</del>
+</code>
+<ins class="diff-chg">operation)
+against
+the
+</ins>
+above
+<del class="diff-old">will
+be:
+</del>
+<ins class="diff-chg">examples
+results
+in
+the
+following
+output:
+</ins>
+</p>
+<del class="diff-old">  [{
+  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{
+    &quot;@value&quot;: &quot;Manu Sporny&quot;
+  }],
+  &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [{
+    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
+  }]
+}]
+</del>
+    <div class="example"><div class="example-title"><span>Example 3</span>: Expanded sample document</div><pre class="example">[
+<ins class="diff-chg">  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
+    ]
+  }
+]
+</ins>
+</pre>
+</div>
+<p>
+Note
+that
+in
+the
+<del class="diff-old">example
+above;
+</del>
+<ins class="diff-chg">output
+above
+</ins>
+all
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+definitions
+have
+been
+removed,
+all
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">terms
+</ins>
+</a>
+and
+<del class="diff-old">prefixes
+</del>
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+<ins class="diff-chg">compact
+IRIs
+</ins></a>
+have
+been
+expanded
+to
+<del class="diff-old">full
+IRIs,
+</del>
+<ins class="diff-chg">absolute
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>,
+and
+all
+<del class="diff-old">literal
+</del>
+<a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">
+<ins class="diff-chg">JSON-LD
+values
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+are
+expressed
+in
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">arrays
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">
+expanded
+form
+</a>.
+While
+the
+output
+is
+more
+<ins class="diff-new">verbose
+and
+</ins>
+difficult
+for
+a
+human
+to
+read,
+it
+<del class="diff-old">is
+easier
+for
+</del>
+<ins class="diff-chg">establishes
+</ins>
+a
+<del class="diff-old">software
+program
+to
+process
+</del>
+<ins class="diff-chg">baseline
+that
+makes
+JSON-LD
+processing
+easier
+</ins>
+because
+of
+its
+very
+regular
+structure.
+</p>
+</section>
+<section class="informative" id="compaction">
+<h3>
+<span class="secno">
+2.2
+</span>
+Compaction
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+While
+<a class="tref internalDFN" title="expansion" href="#dfn-expansion">
+expansion
+<del class="diff-old">expands
+</del>
+</a>
+<ins class="diff-chg">removes
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+from
+</ins>
+a
+given
+<del class="diff-old">input
+as
+much
+as
+possible,
+compaction
+performs
+</del>
+<ins class="diff-chg">input,
+</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
+compaction's
+</ins></a><ins class="diff-chg">
+primary
+function
+is
+to
+perform
+</ins>
+the
+opposite
+<del class="diff-old">operation
+-
+expressing
+</del>
+<ins class="diff-chg">operation:
+to
+express
+</ins>
+a
+given
+input
+<del class="diff-old">as
+succinctly
+as
+possible.
+While
+expansion
+is
+meant
+</del>
+<ins class="diff-chg">according
+</ins>
+to
+<del class="diff-old">produce
+something
+</del>
+<ins class="diff-chg">a
+particular
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>.<dfn title="compaction" id="dfn-compaction"><ins class="diff-chg">
+Compaction
+</ins></dfn><ins class="diff-chg">
+applies
+a
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>
+that
+<ins class="diff-new">specifically
+tailors
+the
+way
+information
+</ins>
+is
+<del class="diff-old">easy
+to
+process
+by
+software
+programs,
+compaction
+is
+meant
+to
+produce
+something
+</del>
+<ins class="diff-chg">expressed
+for
+a
+particular
+person
+or
+application.
+This
+simplifies
+applications
+</ins>
+that
+<del class="diff-old">is
+easy
+</del>
+<ins class="diff-chg">consume
+JSON
+or
+JSON-LD
+by
+expressing
+the
+data
+in
+application-specific
+terms,
+and
+it
+makes
+the
+data
+easier
+</ins>
+to
+<del class="diff-old">ready
+</del>
+<ins class="diff-chg">read
+</ins>
+by
+<del class="diff-old">software
+developers.
+</del>
+<ins class="diff-chg">humans.
+</ins></p><p><a class="tref internalDFN" title="compaction" href="#dfn-compaction">
+Compaction
+</a>
+uses
+a
+developer-supplied
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+to
+<del class="diff-old">compresses
+all
+</del>
+<ins class="diff-chg">shorten
+</ins>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<del class="diff-old">IRI
+</del>
+<ins class="diff-chg">IRIs
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+to
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">terms
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+or
+<del class="diff-old">prefix
+</del>
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+<ins class="diff-chg">compact
+IRIs
+</ins>
+</a>
+<del class="diff-old">es,
+</del>
+and
+<del class="diff-old">compacts
+all
+literal
+</del>
+<a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">
+<ins class="diff-chg">JSON-LD
+values
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+expressed
+in
+<a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">
+expanded
+form
+</a>
+<ins class="diff-new">to
+simple
+values
+such
+</ins>
+as
+<del class="diff-old">much
+as
+possible.
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">strings
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+numbers
+</ins></a>.
+</p>
+<p>
+<del class="diff-old">The
+</del>
+<ins class="diff-chg">For
+example,
+assume
+the
+</ins>
+following
+<del class="diff-old">example
+expresses
+</del>
+<ins class="diff-chg">expanded
+JSON-LD
+</ins>
+input
+<del class="diff-old">that
+has
+already
+been
+fully
+expanded:
+</del>
+<ins class="diff-chg">document:
+</ins>
+</p>
+<del class="diff-old">  var expandedInput = [{
+  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{
+    &quot;@value&quot;: &quot;Manu Sporny&quot;
+  }],
+  &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [{
+    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
+  }]
+}]
+</del>
+    <div class="example"><div class="example-title"><span>Example 4</span>: Expanded sample document</div><pre class="example">[
+<ins class="diff-chg">  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
+    ]
+  }
+]
+</ins>
+</pre>
+</div>
+<p>
+<del class="diff-old">A
+developer
+that
+wants
+to
+transform
+the
+data
+above
+into
+a
+more
+human-readable
+form,
+could
+do
+</del>
+<ins class="diff-chg">Additionally,
+assume
+</ins>
+the
+following
+<del class="diff-old">using
+the
+</del>
+<ins class="diff-chg">developer-supplied
+</ins>
+JSON-LD
+<del class="diff-old">API:
+</del>
+<a class="tref internalDFN" title="context" href="#dfn-context">
+<ins class="diff-chg">context
+</ins></a>:
+</p>
+<del class="diff-old">  function compactionCallback(output) {
+   console.log(output);
+</del>
+    <div class="example"><div class="example-title"><span>Example 5</span>: JSON-LD context</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  }
+</ins>
+}
+<del class="diff-old">jsonld.compact(expandedInput,
+&quot;http://json-ld.org/contexts/person.jsonld&quot;,
+compactionCallback);
+</del>
+</pre>
+</div>
+<p>
+<del class="diff-old">The
+following
+would
+be
+</del>
+<ins class="diff-chg">Running
+the
+</ins><a href="#compaction-algorithm"><ins class="diff-chg">
+Compaction
+Algorithm
+</ins></a><ins class="diff-chg">
+(
+</ins><code class="idlMemberName"><a href="#widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><ins class="diff-chg">
+compact
+</ins></a></code><ins class="diff-chg">
+operation)
+given
+</ins>
+the
+<ins class="diff-new">context
+supplied
+above
+against
+the
+JSON-LD
+input
+document
+provided
+above
+would
+</ins>
+result
+<del class="diff-old">of
+</del>
+<ins class="diff-chg">in
+</ins>
+the
+<del class="diff-old">call
+above:
+</del>
+<ins class="diff-chg">following
+output:
+</ins>
+</p>
+<del class="diff-old">  {
+  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+</del>
+    <div class="example"><div class="example-title"><span>Example 6</span>: Compacted sample document</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;
+</ins>
+}
+</pre>
+</div>
+<p>
+Note
+that
+all
+<del class="diff-old">of
+the
+term
+</del>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<ins class="diff-chg">IRIs
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+have
+been
+<del class="diff-old">compressed
+and
+</del>
+<ins class="diff-chg">compacted
+to
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a><ins class="diff-chg">
+as
+specified
+in
+</ins>
+the
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>,
+<ins class="diff-chg">which
+</ins>
+has
+been
+injected
+into
+the
+output.
+While
+compacted
+output
+is
+<del class="diff-old">most
+</del>
+useful
+to
+humans,
+it
+<del class="diff-old">can
+</del>
+<ins class="diff-chg">is
+</ins>
+also
+<del class="diff-old">be
+carefully
+</del>
+used
+to
+generate
+structures
+that
+are
+easy
+to
+<del class="diff-old">use
+for
+</del>
+<ins class="diff-chg">program
+against.
+Compaction
+enables
+</ins>
+developers
+to
+<del class="diff-old">program
+against
+as
+well.
+</del>
+<ins class="diff-chg">map
+any
+expanded
+document
+into
+an
+application-specific
+compacted
+document.
+While
+the
+context
+provided
+above
+mapped
+</ins><code><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/name
+</ins></code><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+name
+</ins></code>,<ins class="diff-chg">
+it
+could
+also
+have
+been
+mapped
+to
+any
+other
+term
+provided
+by
+the
+developer.
+</ins>
+</p>
+</section>
+<section class="informative" id="flattening">
+<h3>
+<span class="secno">
+2.3
+</span>
+<del class="diff-old">Conversion
+</del>
+<ins class="diff-chg">Flattening
+</ins></h3><p><em><ins class="diff-chg">
+This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+While
+expansion
+ensures
+that
+a
+document
+is
+in
+a
+uniform
+structure,
+flattening
+goes
+a
+step
+further
+</ins>
+to
+<ins class="diff-new">ensure
+that
+the
+shape
+of
+the
+data
+is
+deterministic.
+In
+expanded
+documents,
+the
+properties
+of
+a
+single
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
+node
+</ins></a><ins class="diff-new">
+may
+be
+spread
+across
+a
+number
+of
+different
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+objects
+</ins></a>.<ins class="diff-new">
+By
+flattening
+a
+document,
+all
+properties
+of
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
+node
+</ins></a><ins class="diff-new">
+are
+collected
+in
+a
+single
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a>
+and
+<del class="diff-old">from
+</del>
+<ins class="diff-chg">all
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a><ins class="diff-chg">
+are
+labeled
+with
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>.<ins class="diff-chg">
+This
+may
+drastically
+simplify
+the
+code
+required
+to
+process
+JSON-LD
+data
+in
+certain
+applications.
+</ins></p><p><ins class="diff-chg">
+For
+example,
+assume
+the
+following
+JSON-LD
+input
+document:
+</ins></p>    <div class="example"><div class="example-title"><span>Example 7</span>: Sample JSON-LD document</div><pre class="example">{<ins class="diff-chg">
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;knows&quot;: [
+    {
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    }
+  ]
+}
+</ins></pre></div><p><ins class="diff-chg">
+Running
+the
+</ins><a href="#flattening-algorithm"><ins class="diff-chg">
+Flattening
+algorithm
+</ins></a><ins class="diff-chg">
+(
+</ins><code class="idlMemberName"><a href="#widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><ins class="diff-chg">
+flatten
+</ins></a></code><ins class="diff-chg">
+operation)
+with
+a
+context
+set
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+to
+prevent
+compaction
+returns
+the
+following
+document:
+</ins></p>    <div class="example"><div class="example-title"><span>Example 8</span>: Flattened sample document in expanded form</div><pre class="example">[<ins class="diff-chg">
+  {
+    &quot;@id&quot;: &quot;_:t0&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Dave Longley&quot; }
+    ]
+  },
+  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/knows&quot;: [
+      { &quot;@id&quot;: &quot;_:t0&quot; }
+    ]
+  }
+]
+</ins></pre></div><p><ins class="diff-chg">
+Note
+how
+in
+the
+output
+above
+all
+properties
+of
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a><ins class="diff-chg">
+are
+collected
+in
+a
+single
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+and
+how
+the
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+node
+</ins></a><ins class="diff-chg">
+representing
+&quot;Dave
+Longley&quot;
+has
+been
+assigned
+the
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a><code><ins class="diff-chg">
+_:t0
+</ins></code>.</p><p><ins class="diff-chg">
+To
+make
+it
+easier
+for
+humans
+to
+read
+or
+for
+certain
+applications
+to
+process
+it,
+a
+flattened
+document
+can
+be
+compacted
+by
+passing
+a
+context.
+Using
+the
+same
+context
+as
+the
+input
+document,
+the
+flattened
+and
+compacted
+document
+looks
+as
+follows:
+</ins></p>    <div class="example"><div class="example-title"><span>Example 9</span>: Flattened and compacted sample document</div><pre class="example">{<ins class="diff-chg">
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@graph&quot;: [
+    {
+      &quot;@id&quot;: &quot;_:t0&quot;,
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+      &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+      &quot;knows&quot;: { &quot;@id&quot;: &quot;_:t0&quot; }
+    }
+  ]
+}
+</ins></pre></div><p><ins class="diff-chg">
+Please
+note
+that
+the
+result
+of
+flattening
+and
+compacting
+a
+document
+is
+always
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+which
+contains
+an
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+member
+that
+represents
+the
+</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
+default
+graph
+</ins></a>.</p></section><section class="informative" id="rdf-conversion"><h3><span class="secno"><ins class="diff-chg">
+2.4
+</ins></span>
+RDF
+<ins class="diff-new">Conversion
+</ins>
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+JSON-LD
+can
+be
+used
+to
+<del class="diff-old">losslessly
+express
+the
+RDF
+</del>
+<ins class="diff-chg">serialize
+</ins>
+data
+<del class="diff-old">model
+</del>
+<ins class="diff-chg">expressed
+in
+RDF
+</ins>
+as
+described
+in
+<del class="diff-old">the
+RDF
+Concepts
+document
+</del>
+[
+<cite>
+<del class="diff-old">RDF-CONCEPTS
+</del>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-chg">RDF11-CONCEPTS
+</ins>
+</a>
+</cite>
+].
+This
+ensures
+that
+data
+can
+be
+round-tripped
+<ins class="diff-new">to
+and
+</ins>
+from
+any
+RDF
+<del class="diff-old">syntax,
+like
+N-Triples
+or
+TURTLE,
+</del>
+<ins class="diff-chg">syntax
+</ins>
+without
+any
+loss
+in
+<del class="diff-old">the
+fidelity
+of
+the
+data.
+Assume
+</del>
+<ins class="diff-chg">fidelity.
+</ins></p><p><ins class="diff-chg">
+For
+example,
+assume
+</ins>
+the
+following
+RDF
+input
+<ins class="diff-new">serialized
+</ins>
+in
+<del class="diff-old">N-Triples
+format:
+</del>
+<ins class="diff-chg">Turtle
+[
+</ins><cite><a class="bibref" href="#bib-TURTLE"><ins class="diff-chg">
+TURTLE
+</ins></a></cite><ins class="diff-chg">
+]:
+</ins>
+</p>
+<del class="diff-old">  var data = &quot;
+&lt;http://manu.sporny.org/about/#manu&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; \&quot;Manu Sporny\&quot; .\n
+&lt;http://manu.sporny.org/about/#manu&gt;
+</del>
+    <div class="example"><div class="example-title"><span>Example 10</span>: Sample Turtle document</div><pre class="example">&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Markus Lanthaler&quot; .
+<ins class="diff-chg">&lt;http://me.markus-lanthaler.com/&gt;
+</ins>
+&lt;http://xmlns.com/foaf/0.1/homepage&gt;
+<del class="diff-old">&lt;http://manu.sporny.org/&gt;
+.&quot;;
+</del>
+<ins class="diff-chg">&lt;http://www.markus-lanthaler.com/&gt;
+.
+</ins>
+</pre>
+</div>
+<p>
+<del class="diff-old">A
+developer
+can
+use
+</del>
+<ins class="diff-chg">Using
+</ins>
+the
+<del class="diff-old">JSON-LD
+API
+to
+</del>
+<a href="#convert-from-rdf-algorithm">
+<ins class="diff-chg">Convert
+from
+RDF
+algorithm
+</ins></a><ins class="diff-chg">
+a
+developer
+could
+</ins>
+transform
+<del class="diff-old">the
+markup
+above
+</del>
+<ins class="diff-chg">this
+document
+</ins>
+into
+<del class="diff-old">a
+JSON-LD
+document:
+  function conversionCallback(result)
+{
+  console.log(&quot;JSON-LD Document: &quot;, result);
+};
+jsonld.fromRDF(data,
+conversionCallback,
+{&quot;format&quot;:
+&quot;ntriples&quot;});
+The
+following
+</del>
+expanded
+<del class="diff-old">output
+would
+be
+the
+result
+of
+the
+call
+above:
+</del>
+<ins class="diff-chg">JSON-LD:
+</ins>
+</p>
+<del class="diff-old">  [{
+  &quot;@id&quot;: &quot;http://manu.sporny.org/about/#manu&quot;,
+  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{
+    &quot;@value&quot;: &quot;Manu Sporny&quot;
+  }],
+  &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [{
+    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
+  }]
+}]
+</del>
+    <div class="example"><div class="example-title"><span>Example 11</span>: Sample Turtle document converted to JSON-LD</div><pre class="example">[
+<ins class="diff-chg">  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
+    ]
+  }
+]
+</ins>
+</pre>
+</div>
+<p>
+Note
+that
+the
+output
+<del class="diff-old">above,
+</del>
+<ins class="diff-chg">above
+</ins>
+could
+easily
+be
+compacted
+<del class="diff-old">to
+produce
+the
+following
+</del>
+using
+the
+technique
+outlined
+in
+the
+previous
+<del class="diff-old">section:
+  {
+  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,
+  &quot;@id&quot;: &quot;http://manu.sporny.org/about/#manu&quot;,
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+}
+Transforming
+</del>
+<ins class="diff-chg">section.
+It
+is
+also
+possible
+to
+transform
+</ins>
+the
+<del class="diff-old">object
+above
+</del>
+<ins class="diff-chg">JSON-LD
+document
+</ins>
+back
+to
+RDF
+<del class="diff-old">is
+as
+simple
+as
+calling
+</del>
+<ins class="diff-chg">using
+</ins>
+the
+<del class="diff-old">toRDF()
+method:
+</del>
+<a href="#convert-to-rdf-algorithm">
+<ins class="diff-chg">Convert
+to
+RDF
+algorithm
+</ins></a>.
+</p>
+<del class="diff-old">  var jsonldDocument = ...; // assign the JSON-LD document here
+function rdfCallback(quads)
+{
+  console.log(&quot;RDF Data: &quot;, quads);
+};
+jsonld.toRDF(jsonldDocument,
+rdfCallback);
+</del>
+</section>
+</section>
+<section id="conformance">
+<h2>
+<span class="secno">
+<del class="diff-old">2.4
+</del>
+<ins class="diff-chg">3.
+</ins>
+</span>
+<del class="diff-old">Framing
+</del>
+<ins class="diff-chg">Conformance
+</ins></h2><p><ins class="diff-chg">
+All
+examples
+</ins>
+and
+<del class="diff-old">Normalization
+Issue
+2
+</del>
+<ins class="diff-chg">notes
+as
+well
+as
+sections
+marked
+as
+non-normative
+in
+this
+specification
+are
+non-normative.
+Everything
+else
+in
+this
+specification
+is
+normative.
+</ins></p><p><ins class="diff-chg">
+The
+keywords
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em>,<em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em>,<em class="rfc2119" title="REQUIRED"><ins class="diff-chg">
+REQUIRED
+</ins></em>,<em class="rfc2119" title="SHOULD"><ins class="diff-chg">
+SHOULD
+</ins></em>,<em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
+SHOULD
+NOT
+</ins></em>,<em class="rfc2119" title="RECOMMENDED"><ins class="diff-chg">
+RECOMMENDED
+</ins></em>,<em class="rfc2119" title="MAY"><ins class="diff-chg">
+MAY
+</ins></em>,<ins class="diff-chg">
+and
+</ins><em class="rfc2119" title="OPTIONAL"><ins class="diff-chg">
+OPTIONAL
+</ins></em><ins class="diff-chg">
+in
+this
+specification
+are
+to
+be
+interpreted
+as
+described
+in
+[
+</ins><cite>
+<a class="bibref" href="#bib-RFC2119">
+<ins class="diff-chg">RFC2119
+</ins></a>
+</cite>
+<ins class="diff-chg">].
+</ins></p><p>
+There
+are
+<del class="diff-old">currently
+two
+other
+API
+methods
+</del>
+<ins class="diff-chg">three
+classes
+of
+products
+</ins>
+that
+<del class="diff-old">are
+in
+active
+development
+and
+were
+not
+ready
+for
+publication
+at
+the
+time
+this
+document
+was
+published.
+Framing
+allows
+a
+developer
+</del>
+<ins class="diff-chg">can
+claim
+conformance
+</ins>
+to
+<del class="diff-old">force
+a
+different
+layout
+for
+the
+data
+</del>
+<ins class="diff-chg">this
+specification:
+</ins><a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor"><ins class="diff-chg">
+JSON-LD
+Processors
+</ins></a>,<a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation"><ins class="diff-chg">
+JSON-LD
+API
+Implementations
+</ins></a>,
+and
+<del class="diff-old">effectively
+perform
+query-by-example
+on
+</del>
+<a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter">
+<ins class="diff-chg">JSON-LD-RDF
+Converters
+</ins></a>.</p><p><ins class="diff-chg">
+A
+conforming
+</ins><dfn title="json-ld-processor" id="dfn-json-ld-processor">
+JSON-LD
+<del class="diff-old">documents
+-
+this
+</del>
+<ins class="diff-chg">Processor
+</ins></dfn>
+is
+<del class="diff-old">most
+useful
+when
+</del>
+a
+<del class="diff-old">JSON-LD-based
+REST
+API
+does
+not
+know
+the
+exact
+form
+of
+</del>
+<ins class="diff-chg">system
+which
+can
+perform
+</ins>
+the
+<del class="diff-old">data
+it
+is
+getting
+in,
+but
+still
+wants
+to
+operate
+upon
+it
+if
+some
+bare
+essentials
+are
+found
+</del>
+<a href="#expansion-algorithm">
+<ins class="diff-chg">Expansion
+</ins></a>,<a href="#compaction-algorithm"><ins class="diff-chg">
+Compaction
+</ins></a>,<ins class="diff-chg">
+and
+</ins><a href="#flattening-algorithm"><ins class="diff-chg">
+Flattening
+</ins></a><ins class="diff-chg">
+operations
+defined
+</ins>
+in
+<del class="diff-old">the
+data.
+</del>
+<ins class="diff-chg">this
+specification.
+</ins></p><p><ins class="diff-chg">
+A
+conforming
+</ins><dfn title="json-ld-api-implementation" id="dfn-json-ld-api-implementation">
+JSON-LD
+<del class="diff-old">normalization
+allows
+</del>
+<ins class="diff-chg">API
+Implementation
+</ins></dfn><ins class="diff-chg">
+is
+a
+conforming
+</ins><a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">
+JSON-LD
+<del class="diff-old">documents
+to
+be
+deterministically
+serialized
+such
+</del>
+<ins class="diff-chg">Processor
+</ins></a>
+that
+<del class="diff-old">they
+can
+be
+digitally
+signed
+or
+be
+used
+to
+find
+</del>
+<ins class="diff-chg">exposes
+</ins>
+the
+<del class="diff-old">differences
+between
+two
+linked
+data
+graph
+</del>
+<a href="#the-application-programming-interface">
+<ins class="diff-chg">Application
+Programming
+Interface
+(API)
+</ins>
+</a>
+<del class="diff-old">s.
+</del>
+<ins class="diff-chg">defined
+in
+this
+specification.
+</ins>
+It
+<del class="diff-old">is
+expected
+that
+framing
+will
+be
+a
+part
+of
+</del>
+<em class="rfc2119" title="MUST">
+<ins class="diff-chg">MUST
+</ins></em><ins class="diff-chg">
+implement
+</ins>
+the
+<del class="diff-old">final
+API.
+It
+is
+expected
+that
+normalization
+will
+be
+an
+optional
+feature
+that
+JSON-LD
+processors
+may
+implement.
+</del>
+<code>
+<ins class="diff-chg">json-ld-1.0
+</ins></code><ins class="diff-chg">
+processing
+mode
+(for
+further
+details,
+see
+the
+</ins><code class="idlMemberName">
+<a href="#widl-JsonLdOptions-processingMode">
+<ins class="diff-chg">processingMode
+</ins></a>
+<del class="diff-old">3.
+The
+Application
+Programming
+Interface
+</del>
+</code>
+<ins class="diff-chg">option
+of
+</ins><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-chg">
+JsonLdOptions
+</ins></code></a><ins class="diff-chg">
+).
+</ins></p>
+<p>
+<del class="diff-old">This
+</del>
+<a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">
+<ins class="diff-chg">JSON-LD
+Processors
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">
+API
+<del class="diff-old">provides
+a
+clean
+mechanism
+that
+enables
+developers
+</del>
+<ins class="diff-chg">Implementations
+</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em><ins class="diff-chg">
+attempt
+</ins>
+to
+<del class="diff-old">convert
+JSON-LD
+data
+into
+a
+</del>
+<ins class="diff-chg">correct
+malformed
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+or
+language
+tags;
+however,
+they
+</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
+MAY
+</ins></em><ins class="diff-chg">
+issue
+validation
+warnings.
+IRIs
+are
+not
+modified
+other
+than
+converted
+between
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
+relative
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+IRIs
+</ins></a>.</p><p><ins class="diff-chg">
+A
+conforming
+</ins><dfn title="json-ld-rdf-converter" id="dfn-json-ld-rdf-converter"><ins class="diff-chg">
+JSON-LD-RDF
+Converter
+</ins></dfn><ins class="diff-chg">
+is
+</ins>
+a
+<del class="diff-old">variety
+of
+output
+formats
+</del>
+<ins class="diff-chg">system
+</ins>
+that
+<del class="diff-old">are
+easier
+</del>
+<ins class="diff-chg">can
+perform
+</ins><a href="#convert-to-rdf-algorithm"><ins class="diff-chg">
+Conversion
+</ins>
+to
+<del class="diff-old">work
+with
+</del>
+<ins class="diff-chg">RDF
+</ins></a><ins class="diff-chg">
+and
+</ins><a href="#convert-from-rdf-algorithm"><ins class="diff-chg">
+Conversion
+from
+RDF
+</ins></a>.</p><p><ins class="diff-chg">
+The
+algorithms
+</ins>
+in
+<del class="diff-old">various
+programming
+languages.
+If
+a
+</del>
+<ins class="diff-chg">this
+specification
+are
+generally
+written
+with
+more
+concern
+for
+clarity
+than
+efficiency.
+Thus,
+</ins><a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">
+JSON-LD
+<ins class="diff-new">Processors
+</ins></a><ins class="diff-new">
+and
+</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">
+API
+<del class="diff-old">is
+provided
+</del>
+<ins class="diff-chg">Implementations
+</ins></a><ins class="diff-chg">
+may
+implement
+the
+algorithms
+given
+</ins>
+in
+<del class="diff-old">a
+programming
+environment,
+</del>
+<ins class="diff-chg">this
+specification
+in
+any
+way
+desired,
+so
+long
+as
+</ins>
+the
+<del class="diff-old">entirety
+of
+</del>
+<ins class="diff-chg">end
+result
+is
+indistinguishable
+from
+</ins>
+the
+<del class="diff-old">following
+API
+must
+</del>
+<ins class="diff-chg">result
+that
+would
+</ins>
+be
+<del class="diff-old">implemented.
+</del>
+<ins class="diff-chg">obtained
+by
+the
+specification's
+algorithms.
+</ins>
+</p>
+<del class="diff-old">3.1
+General
+Terminology
+</del>
+<div class="note">
+<div class="note-title">
+<span>
+<del class="diff-old">Issue
+3
+</del>
+<ins class="diff-chg">Note
+</ins>
+</span>
+</div>
+<p class="">
+<del class="diff-old">The
+intent
+of
+the
+Working
+Group
+and
+the
+Editors
+</del>
+<ins class="diff-chg">Implementers
+can
+partially
+check
+their
+level
+</ins>
+of
+<del class="diff-old">this
+specification
+is
+</del>
+<ins class="diff-chg">conformance
+</ins>
+to
+<del class="diff-old">eventually
+align
+terminology
+used
+in
+</del>
+this
+<del class="diff-old">document
+with
+</del>
+<ins class="diff-chg">specification
+by
+successfully
+passing
+</ins>
+the
+<del class="diff-old">terminology
+used
+in
+</del>
+<ins class="diff-chg">test
+cases
+of
+</ins>
+the
+<del class="diff-old">RDF
+Concepts
+document
+to
+</del>
+<ins class="diff-chg">JSON-LD
+test
+suite
+[
+</ins><cite><a class="bibref" href="#bib-JSON-LD-TESTS"><ins class="diff-chg">
+JSON-LD-TESTS
+</ins></a></cite><ins class="diff-chg">
+].
+Note,
+however,
+that
+passing
+all
+</ins>
+the
+<del class="diff-old">extent
+to
+which
+it
+makes
+sense
+to
+do
+so.
+In
+general,
+if
+there
+is
+an
+analogue
+to
+terminology
+used
+in
+this
+document
+</del>
+<ins class="diff-chg">tests
+</ins>
+in
+the
+<del class="diff-old">RDF
+Concepts
+document,
+the
+preference
+is
+</del>
+<ins class="diff-chg">test
+suite
+does
+not
+imply
+complete
+conformance
+</ins>
+to
+<del class="diff-old">use
+</del>
+<ins class="diff-chg">this
+specification.
+It
+only
+implies
+that
+</ins>
+the
+<del class="diff-old">terminology
+in
+</del>
+<ins class="diff-chg">implementation
+conforms
+to
+aspects
+tested
+by
+</ins>
+the
+<del class="diff-old">RDF
+Concepts
+document.
+</del>
+<ins class="diff-chg">test
+suite.
+</ins>
+</p>
+</div>
+</section>
+<section id="general-terminology">
+<h2>
+<span class="secno">
+<ins class="diff-new">4.
+</ins></span><ins class="diff-new">
+General
+Terminology
+</ins></h2>
+<p>
+<del class="diff-old">The
+</del>
+<ins class="diff-chg">This
+document
+uses
+the
+</ins>
+following
+<del class="diff-old">is
+an
+explanation
+of
+</del>
+<ins class="diff-chg">terms
+as
+defined
+in
+JSON
+[
+</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
+RFC4627
+</ins></a></cite><ins class="diff-chg">
+].
+Refer
+to
+</ins>
+the
+<del class="diff-old">general
+terminology
+used
+</del>
+<em>
+<ins class="diff-chg">JSON
+Grammar
+</ins></em><ins class="diff-chg">
+section
+</ins>
+in
+<del class="diff-old">this
+document:
+</del>
+<ins class="diff-chg">[
+</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
+RFC4627
+</ins></a></cite><ins class="diff-chg">
+]
+for
+formal
+definitions.
+</ins>
+</p>
+<dl>
+<dt>
+<dfn title="json-object" id="dfn-json-object">
+JSON
+object
+</dfn>
+</dt>
+<dd>
+An
+object
+structure
+is
+represented
+as
+a
+pair
+of
+curly
+brackets
+surrounding
+zero
+or
+more
+<del class="diff-old">name-value
+</del>
+<ins class="diff-chg">key-value
+</ins>
+pairs.
+A
+<del class="diff-old">name
+</del>
+<ins class="diff-chg">key
+</ins>
+is
+a
+<a class="tref internalDFN" title="string" href="#dfn-string">
+string
+</a>.
+A
+single
+colon
+comes
+after
+each
+<del class="diff-old">name,
+</del>
+<ins class="diff-chg">key,
+</ins>
+separating
+the
+<del class="diff-old">name
+</del>
+<ins class="diff-chg">key
+</ins>
+from
+the
+value.
+A
+single
+comma
+separates
+a
+value
+from
+a
+following
+<del class="diff-old">name.
+The
+names
+within
+</del>
+<ins class="diff-chg">key.
+In
+contrast
+to
+JSON,
+in
+JSON-LD
+the
+keys
+in
+</ins>
+an
+object
+<del class="diff-old">should
+</del>
+<ins class="diff-chg">must
+</ins>
+be
+unique.
+</dd>
+<dt>
+<dfn title="array" id="dfn-array">
+array
+</dfn>
+</dt>
+<dd>
+An
+array
+<ins class="diff-new">structure
+</ins>
+is
+represented
+as
+square
+brackets
+surrounding
+zero
+or
+more
+<del class="diff-old">values
+that
+</del>
+<ins class="diff-chg">values.
+Values
+</ins>
+are
+separated
+by
+commas.
+<ins class="diff-new">In
+JSON,
+an
+array
+is
+an
+</ins><em><ins class="diff-new">
+ordered
+</ins></em><ins class="diff-new">
+sequence
+of
+zero
+or
+more
+values.
+While
+JSON-LD
+uses
+the
+same
+array
+representation
+as
+JSON,
+the
+collection
+is
+</ins><em><ins class="diff-new">
+unordered
+</ins></em><ins class="diff-new">
+by
+default.
+While
+order
+is
+preserved
+in
+regular
+JSON
+arrays,
+it
+is
+not
+in
+regular
+JSON-LD
+arrays
+unless
+specifically
+defined
+(see
+</ins><cite><a href="../json-ld/#sets-and-lists"><ins class="diff-new">
+Sets
+and
+Lists
+</ins></a></cite><ins class="diff-new">
+in
+the
+JSON-LD
+specification
+[
+</ins><cite><a class="bibref" href="#bib-JSON-LD"><ins class="diff-new">
+JSON-LD
+</ins></a></cite><ins class="diff-new">
+]).
+</ins>
+</dd>
+<dt>
+<dfn title="string" id="dfn-string">
+string
+</dfn>
+</dt>
+<dd>
+A
+string
+is
+a
+sequence
+of
+zero
+or
+more
+Unicode
+<del class="diff-old">(UTF-8)
+</del>
+characters,
+wrapped
+in
+double
+quotes,
+using
+backslash
+escapes
+(if
+necessary).
+A
+character
+is
+represented
+as
+a
+single
+character
+string.
+</dd>
+<dt>
+<dfn title="number" id="dfn-number">
+number
+</dfn>
+</dt>
+<dd>
+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.
+</dd>
+<dt>
+<dfn title="true" id="dfn-true">
+true
+</dfn>
+and
+<dfn title="false" id="dfn-false">
+false
+</dfn>
+</dt>
+<dd>
+Values
+that
+are
+used
+to
+express
+one
+of
+two
+possible
+boolean
+states.
+</dd>
+<dt>
+<dfn title="null" id="dfn-null">
+null
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">Unless
+otherwise
+specified,
+a
+JSON-LD
+processor
+must
+act
+as
+if
+</del>
+<ins class="diff-chg">The
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+value.
+A
+key-value
+pair
+in
+the
+</ins><code><ins class="diff-chg">
+@context
+</ins></code><ins class="diff-chg">
+where
+the
+value,
+or
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+of
+the
+value,
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+explicitly
+decouples
+</ins>
+a
+<ins class="diff-new">term's
+association
+with
+an
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>.<ins class="diff-new">
+A
+</ins>
+key-value
+pair
+in
+the
+body
+of
+a
+JSON-LD
+document
+<del class="diff-old">was
+never
+declared
+when
+the
+</del>
+<ins class="diff-chg">whose
+</ins>
+value
+<del class="diff-old">equals
+</del>
+<ins class="diff-chg">is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null">
+null
+<del class="diff-old">.
+</del>
+</a>
+<ins class="diff-chg">has
+the
+same
+meaning
+as
+if
+the
+key-value
+pair
+was
+not
+defined.
+</ins>
+If
+<code>
+@value
+</code>,
+<code>
+@list
+</code>,
+or
+<code>
+@set
+</code>
+is
+set
+to
+<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>
+in
+expanded
+form,
+then
+the
+entire
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+is
+ignored.
+<del class="diff-old">If
+@context
+is
+set
+to
+null
+,
+</del>
+</dd>
+</dl>
+<p>
+<ins class="diff-chg">Furthermore,
+</ins>
+the
+<del class="diff-old">active
+context
+</del>
+<ins class="diff-chg">following
+terminology
+</ins>
+is
+<del class="diff-old">reset
+and
+when
+</del>
+used
+<del class="diff-old">within
+a
+context
+,
+it
+removes
+any
+definition
+associated
+with
+the
+key,
+unless
+otherwise
+specified.
+</del>
+<ins class="diff-chg">throughout
+this
+document:
+</ins></p><dl>
+<dt>
+<del class="diff-old">subject
+definition
+</del>
+<dfn title="keyword" id="dfn-keyword">
+<ins class="diff-chg">keyword
+</ins>
+</dfn>
+</dt>
+<dd>
+A
+JSON
+<del class="diff-old">object
+used
+to
+represent
+a
+subject
+and
+one
+or
+more
+properties
+of
+</del>
+<ins class="diff-chg">key
+</ins>
+that
+<del class="diff-old">subject.
+A
+JSON
+object
+</del>
+is
+<del class="diff-old">a
+subject
+definition
+if
+it
+does
+not
+contain
+they
+keys
+@value
+,
+@list
+or
+@set
+and
+it
+has
+one
+or
+more
+keys
+other
+than
+@id
+.
+</del>
+<ins class="diff-chg">specific
+to
+JSON-LD,
+specified
+in
+the
+section
+</ins><cite>
+<del class="diff-old">subject
+reference
+</del>
+<a href="../json-ld/#syntax-tokens-and-keywords">
+<ins class="diff-chg">Syntax
+Tokens
+and
+Keywords
+</ins></a>
+</cite>
+<ins class="diff-chg">of
+the
+JSON-LD
+specification
+[
+</ins><cite>
+<del class="diff-old">A
+JSON
+object
+</del>
+<a class="bibref" href="#bib-JSON-LD">
+<ins class="diff-chg">JSON-LD
+</ins>
+</a>
+<del class="diff-old">used
+to
+reference
+a
+subject
+having
+only
+the
+@id
+key.
+</del>
+</cite>
+<ins class="diff-chg">].
+</ins>
+</dd>
+<dt>
+<del class="diff-old">Linked
+Data
+</del>
+<dfn title="context" id="dfn-context">
+<ins class="diff-chg">context
+</ins>
+</dfn>
+</dt>
+<dd>
+A
+set
+of
+<del class="diff-old">documents,
+each
+containing
+a
+representation
+of
+</del>
+<ins class="diff-chg">rules
+for
+interpreting
+</ins>
+a
+<del class="diff-old">linked
+data
+graph
+.
+linked
+data
+graph
+or
+dataset
+</del>
+<ins class="diff-chg">JSON-LD
+document
+as
+specified
+in
+the
+section
+</ins><cite>
+<del class="diff-old">An
+unordered
+labeled
+directed
+graph,
+where
+node
+s
+are
+subject
+</del>
+<a href="../json-ld/#the-context">
+<ins class="diff-chg">The
+Context
+</ins>
+</a>
+<del class="diff-old">s
+or
+object
+</del>
+</cite>
+<ins class="diff-chg">of
+the
+JSON-LD
+specification
+[
+</ins><cite><a class="bibref" href="#bib-JSON-LD"><ins class="diff-chg">
+JSON-LD
+</ins>
+</a>
+<del class="diff-old">s,
+and
+edges
+are
+properties.
+</del>
+</cite>
+<ins class="diff-chg">].
+</ins>
+</dd>
+<dt>
+<del class="diff-old">node
+</del>
+<dfn title="json-ld-document" id="dfn-json-ld-document">
+<ins class="diff-chg">JSON-LD
+document
+</ins>
+</dfn>
+</dt>
+<dd>
+A
+<del class="diff-old">piece
+of
+information
+that
+</del>
+<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
+<ins class="diff-chg">JSON-LD
+document
+</ins></a>
+is
+<del class="diff-old">represented
+in
+</del>
+a
+<del class="diff-old">linked
+data
+</del>
+<ins class="diff-chg">serialization
+of
+a
+collection
+of
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+JSON-LD
+graphs
+</ins></a><ins class="diff-chg">
+and
+comprises
+exactly
+one
+</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
+default
+</ins>
+graph
+</a>
+<ins class="diff-new">and
+zero
+or
+more
+</ins><a class="tref internalDFN" title="named-graph" href="#dfn-named-graph"><ins class="diff-new">
+named
+graphs
+</ins>
+</a>.
+</dd>
+<dt>
+<dfn title="named-graph" id="dfn-named-graph">
+named
+graph
+</dfn>
+</dt>
+<dd>
+A
+<del class="diff-old">linked
+data
+</del>
+<ins class="diff-chg">named
+</ins>
+graph
+<del class="diff-old">that
+has
+one
+or
+more
+</del>
+<ins class="diff-chg">is
+a
+pair
+consisting
+of
+an
+</ins>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">that
+are
+used
+to
+refer
+to
+it.
+</del>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+node
+</ins></a><ins class="diff-chg">
+(the
+</ins><dfn title="graph-name" id="dfn-graph-name">
+graph
+name
+</dfn>
+<del class="diff-old">An
+IRI
+that
+is
+a
+reference
+to
+</del>
+<ins class="diff-chg">)
+and
+</ins>
+a
+<del class="diff-old">named
+</del>
+<a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
+<ins class="diff-chg">JSON-LD
+</ins>
+graph
+</a>.
+</dd>
+<dt>
+<dfn title="default-graph" id="dfn-default-graph">
+default
+graph
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">When
+executing
+an
+algorithm,
+</del>
+<ins class="diff-chg">The
+default
+graph
+is
+</ins>
+the
+<ins class="diff-new">only
+</ins>
+graph
+<del class="diff-old">where
+data
+should
+be
+placed
+if
+</del>
+<ins class="diff-chg">in
+</ins>
+a
+<del class="diff-old">named
+</del>
+<ins class="diff-chg">JSON-LD
+document
+which
+has
+no
+</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
+graph
+<del class="diff-old">is
+not
+specified.
+</del>
+<ins class="diff-chg">name
+</ins></a>.
+</dd>
+<dt>
+<del class="diff-old">subject
+</del>
+<dfn title="json-ld-graph" id="dfn-json-ld-graph">
+<ins class="diff-chg">JSON-LD
+graph
+</ins>
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">Any
+node
+in
+</del>
+<ins class="diff-chg">A
+labeled
+directed
+graph,
+i.e.,
+</ins>
+a
+<del class="diff-old">linked
+data
+graph
+</del>
+<ins class="diff-chg">set
+of
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+nodes
+</ins>
+</a>
+<del class="diff-old">with
+at
+least
+one
+outgoing
+edge.
+IRI
+An
+Internationalized
+Resource
+Identifier
+</del>
+<ins class="diff-chg">connected
+by
+</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
+edges
+</ins></a>,
+as
+<del class="diff-old">described
+</del>
+<ins class="diff-chg">specified
+</ins>
+in
+<del class="diff-old">[
+</del>
+<ins class="diff-chg">the
+</ins>
+<cite>
+<del class="diff-old">RFC3987
+</del>
+<a href="../json-ld/#data-model">
+<ins class="diff-chg">Data
+Model
+</ins>
+</a>
+</cite>
+<del class="diff-old">]).
+object
+A
+node
+in
+a
+linked
+data
+graph
+with
+at
+least
+one
+incoming
+edge.
+property
+An
+edge
+of
+the
+linked
+data
+graph
+.
+literal
+An
+object
+with
+a
+label
+that
+is
+not
+an
+IRI
+.
+quad
+A
+piece
+</del>
+<ins class="diff-chg">section
+</ins>
+of
+<del class="diff-old">information
+that
+contains
+four
+items;
+a
+subject
+,
+a
+property
+,
+a
+object
+,
+and
+a
+graph
+name
+.
+context
+A
+JSON
+object
+that
+contains
+rules
+for
+interpreting
+a
+JSON-LD
+document.
+keyword
+A
+JSON
+key
+that
+is
+specific
+to
+JSON-LD,
+specified
+in
+</del>
+the
+JSON-LD
+<del class="diff-old">Syntax
+</del>
+specification
+[
+<cite>
+<a class="bibref" href="#bib-JSON-LD">
+JSON-LD
+</a>
+</cite>
+<del class="diff-old">]
+in
+the
+section
+titled
+Syntax
+Tokens
+and
+Keywords
+.
+</del>
+<ins class="diff-chg">].
+</ins>
+</dd>
+<del class="diff-old">3.2
+JsonLdProcessor
+The
+JSON-LD
+Processor
+interface
+is
+the
+high-level
+programming
+structure
+that
+developers
+use
+to
+access
+the
+JSON-LD
+transformation
+methods.
+    ]
+interface  {
+};
+3.2.1
+Methods
+</del>
+<dt>
+<del class="diff-old">compact
+</del>
+<dfn title="edge" id="dfn-edge">
+<ins class="diff-chg">edge
+</ins></dfn>
+</dt>
+<dd>
+<del class="diff-old">Compacts
+</del>
+<ins class="diff-chg">Every
+</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
+edge
+</ins>
+</a>
+<del class="diff-old">the
+given
+input
+using
+the
+context
+according
+to
+the
+steps
+in
+the
+Compaction
+Algorithm
+.
+The
+input
+must
+be
+copied,
+compacted
+</del>
+<ins class="diff-chg">has
+a
+direction
+associated
+with
+it
+</ins>
+and
+<del class="diff-old">returned
+if
+there
+are
+no
+errors.
+If
+the
+compaction
+fails,
+an
+appropriate
+exception
+must
+be
+thrown.
+Parameter
+Type
+Nullable
+Optional
+Description
+input
+object
+or
+object[]
+or
+URL
+✘
+✘
+The
+JSON-LD
+object
+or
+array
+of
+JSON-LD
+objects
+to
+perform
+the
+compaction
+upon
+or
+</del>
+<ins class="diff-chg">is
+labeled
+with
+</ins>
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">referencing
+the
+JSON-LD
+document
+to
+compact.
+context
+object
+</del>
+or
+<del class="diff-old">URL
+✘
+✘
+The
+context
+to
+use
+when
+compacting
+the
+input
+;
+either
+in
+the
+form
+of
+an
+JSON
+object
+or
+as
+IRI
+.
+callback
+JsonLdCallback
+✘
+✘
+A
+callback
+that
+is
+called
+when
+processing
+is
+complete
+on
+the
+given
+input
+.
+options
+JsonLdOptions
+✘
+✔
+A
+set
+of
+options
+that
+may
+affect
+the
+expansion
+algorithm
+such
+as,
+e.g.,
+the
+input
+document's
+base
+IRI
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins>
+</a>.
+<del class="diff-old">This
+also
+includes
+optimize
+,
+which
+if
+set
+will
+cause
+processor-specific
+optimization.
+Return
+type:
+void
+expand
+Expands
+the
+given
+input
+according
+to
+the
+steps
+in
+</del>
+<ins class="diff-chg">Within
+</ins>
+the
+<del class="diff-old">Expansion
+Algorithm
+.
+The
+input
+must
+be
+copied,
+expanded
+and
+returned
+if
+there
+</del>
+<ins class="diff-chg">JSON-LD
+syntax
+these
+edge
+labels
+</ins>
+are
+<del class="diff-old">no
+errors.
+If
+the
+expansion
+fails,
+</del>
+<ins class="diff-chg">called
+</ins><dfn title="property" id="dfn-property"><ins class="diff-chg">
+properties
+</ins></dfn>.<ins class="diff-chg">
+Whenever
+possible,
+</ins>
+an
+<del class="diff-old">appropriate
+exception
+must
+be
+thrown.
+Parameter
+Type
+Nullable
+Optional
+Description
+input
+object
+or
+object[]
+or
+URL
+</del>
+<a class="tref internalDFN" title="edge" href="#dfn-edge">
+<ins class="diff-chg">edge
+</ins>
+</a>
+<del class="diff-old">✘
+✘
+The
+JSON-LD
+object
+or
+array
+of
+JSON-LD
+objects
+to
+perform
+the
+expansion
+upon
+or
+</del>
+<ins class="diff-chg">should
+be
+labeled
+with
+</ins>
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">referencing
+the
+JSON-LD
+document
+to
+expand.
+context
+object
+or
+URL
+✔
+✘
+An
+optional
+external
+context
+to
+use
+additionally
+to
+the
+context
+embedded
+in
+input
+when
+expanding
+the
+input
+.
+callback
+JsonLdCallback
+✘
+✘
+A
+callback
+that
+is
+called
+when
+processing
+is
+complete
+on
+the
+given
+input
+.
+options
+JsonLdOptions
+✘
+✔
+A
+set
+of
+options
+that
+may
+affect
+the
+expansion
+algorithm
+such
+as,
+e.g.,
+the
+input
+document's
+base
+IRI
+</del>
+</a>.
+<del class="diff-old">Return
+type:
+void
+</del>
+</dd>
+<dt>
+<del class="diff-old">fromRDF
+Creates
+a
+JSON-LD
+document
+given
+an
+set
+of
+Quads
+.
+Parameter
+Type
+Nullable
+Optional
+Description
+input
+Quad
+[]
+✘
+✘
+A
+dataset
+represented
+as
+an
+array
+of
+Quads
+.
+callback
+JsonLdCallback
+✘
+✘
+A
+callback
+that
+is
+called
+when
+processing
+is
+complete
+on
+the
+given
+input
+.
+options
+JsonLdOptions
+✘
+✔
+A
+set
+of
+options
+that
+will
+affect
+the
+algorithm.
+This
+includes
+notType
+,
+which
+if
+set
+to
+true
+causes
+the
+resulting
+document
+to
+use
+rdf:type
+as
+a
+property,
+instead
+of
+@type
+.
+Return
+type:
+void
+toRDF
+</del>
+<dfn title="node" id="dfn-node">
+<ins class="diff-chg">node
+</ins></dfn>
+</dt>
+<dd>
+<del class="diff-old">Processes
+the
+input
+according
+to
+the
+Convert
+to
+RDF
+Algorithm
+,
+calling
+the
+provided
+callback
+for
+each
+Quad
+generated.
+Parameter
+Type
+Nullable
+Optional
+Description
+input
+object
+or
+object[]
+or
+URL
+✘
+✘
+The
+JSON-LD
+object
+or
+array
+of
+JSON-LD
+objects
+to
+convert
+to
+RDF
+or
+a
+URL
+referencing
+the
+JSON-LD
+document
+to
+convert
+to
+RDF.
+callback
+QuadCallback
+✘
+✘
+A
+callback
+that
+is
+called
+when
+a
+Quad
+</del>
+<ins class="diff-chg">Every
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins>
+</a>
+is
+<del class="diff-old">created
+from
+processing
+the
+given
+input
+.
+options
+JsonLdOptions
+✘
+✔
+A
+set
+of
+options
+that
+may
+affect
+the
+conversion
+to
+RDF
+such
+as,
+e.g.,
+the
+input
+document's
+base
+</del>
+<ins class="diff-chg">an
+</ins>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">.
+Return
+type:
+void
+3.3
+Callbacks
+3.3.1
+JsonLdCallback
+The
+JsonLdCallback
+is
+used
+to
+return
+</del>
+</a>,
+a
+<del class="diff-old">processed
+</del>
+<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
+<ins class="diff-chg">blank
+node
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">
+JSON-LD
+<del class="diff-old">representation
+as
+the
+result
+of
+processing
+an
+API
+method.
+    ]
+interface  {
+};
+3.3.1.1
+Methods
+jsonLd
+This
+callback
+is
+invoked
+when
+processing
+is
+complete.
+Parameter
+Type
+Nullable
+Optional
+Description
+jsonld
+object
+</del>
+<ins class="diff-chg">value
+</ins></a>,
+or
+<del class="diff-old">object
+[]
+✘
+✘
+The
+processed
+JSON-LD
+document.
+Return
+type:
+void
+3.3.2
+QuadCallback
+The
+QuadCallback
+is
+called
+whenever
+the
+processor
+generates
+</del>
+a
+<del class="diff-old">quad
+during
+the
+quad()
+call.
+    ]
+interface  {
+};
+3.3.2.1
+Methods
+quad
+This
+callback
+is
+invoked
+whenever
+a
+quad
+is
+generated
+by
+the
+processor.
+Parameter
+Type
+Nullable
+Optional
+Description
+quad
+Quad
+✘
+✘
+The
+quad.
+Return
+type:
+void
+</del>
+<a class="tref internalDFN" title="list" href="#dfn-list">
+<ins class="diff-chg">list
+</ins></a>.
+</dd>
+<dt>
+<del class="diff-old">3.4
+Data
+Structures
+This
+section
+describes
+datatype
+definitions
+used
+within
+the
+JSON-LD
+API.
+3.4.1
+URL
+The
+URL
+datatype
+is
+a
+string
+representation
+of
+an
+</del>
+<dfn title="iri" id="dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">.
+typedef
+DOMString
+URL
+;
+</del>
+</dfn>
+<del class="diff-old">This
+datatype
+indicates
+that
+the
+</del>
+</dt>
+<dd>
+<ins class="diff-chg">An
+</ins>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">is
+interpreted
+as
+a
+Universal
+</del>
+<ins class="diff-chg">(Internationalized
+</ins>
+Resource
+<del class="diff-old">Locator
+identifying
+a
+document,
+which
+when
+parsed
+as
+JSON
+yields
+either
+a
+JSON
+object
+or
+array
+.
+3.4.2
+JsonLdOptions
+The
+JsonLdOptions
+type
+</del>
+<ins class="diff-chg">Identifier)
+</ins>
+is
+<del class="diff-old">used
+to
+convert
+</del>
+a
+<del class="diff-old">set
+of
+options
+</del>
+<ins class="diff-chg">string
+that
+conforms
+</ins>
+to
+<del class="diff-old">an
+interface
+method.
+typedef
+</del>
+<ins class="diff-chg">the
+syntax
+defined
+in
+[
+</ins><cite>
+<del class="diff-old">object
+</del>
+<a class="bibref" href="#bib-RFC3987">
+<ins class="diff-chg">RFC3987
+</ins>
+</a>
+<del class="diff-old">JsonLdOptions
+;
+</del>
+</cite>
+<ins class="diff-chg">].
+</ins></dd>
+<dt>
+<del class="diff-old">URL
+base
+The
+Base
+</del>
+<dfn title="absolute-iri" id="dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">to
+use
+when
+expanding
+the
+document.
+This
+overrides
+the
+value
+of
+input
+if
+it
+is
+a
+</del>
+<del class="diff-old">URL
+</del>
+</dfn>
+<del class="diff-old">or
+if
+it
+is
+a
+object
+or
+object[]
+.
+boolean
+optimize
+If
+set
+to
+true
+,
+the
+JSON-LD
+processor
+is
+allowed
+to
+optimize
+the
+output
+of
+the
+Compaction
+Algorithm
+to
+produce
+even
+compacter
+representations.
+The
+algorithm
+for
+compaction
+optimization
+is
+beyond
+the
+scope
+of
+this
+specification
+and
+thus
+not
+defined.
+Consequently,
+different
+implementations
+may
+implement
+different
+optimization
+algorithms.
+boolean
+noType
+</del>
+</dt>
+<dd>
+<del class="diff-old">If
+set
+to
+true
+,
+the
+JSON-LD
+processor
+will
+not
+use
+the
+@type
+property
+when
+generating
+the
+output,
+and
+will
+use
+the
+expanded
+rdf:type
+</del>
+<ins class="diff-chg">An
+absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">as
+the
+property
+instead
+of
+@type
+.
+The
+following
+data
+structures
+are
+used
+for
+representing
+data
+about
+RDF
+quads.
+They
+are
+used
+for
+normalization,
+fromRDF
+,
+and
+from
+toRDF
+interfaces.
+3.4.3
+Quad
+The
+Quad
+interface
+represents
+an
+RDF
+Quad.
+See
+</del>
+<ins class="diff-chg">is
+defined
+in
+</ins>
+[
+<cite>
+<del class="diff-old">RDF-CONCEPTS
+</del>
+<a class="bibref" href="#bib-RFC3987">
+<ins class="diff-chg">RFC3987
+</ins>
+</a>
+</cite>
+]
+<del class="diff-old">definition
+for
+RDF
+triple
+,
+which
+most
+closely
+aligns
+to
+Quad
+.
+    ]
+interface  {
+};
+3.4.3.1
+Attributes
+graphName
+of
+type
+Node
+,
+readonly,
+nullable
+If
+present,
+the
+name
+associated
+with
+the
+Quad
+identifying
+it
+as
+a
+member
+of
+</del>
+<ins class="diff-chg">containing
+</ins>
+a
+<del class="diff-old">named
+graph
+.
+If
+it
+is
+missing,
+the
+quad
+is
+</del>
+<em>
+<ins class="diff-chg">scheme
+</ins></em><ins class="diff-chg">
+along
+with
+</ins>
+a
+<del class="diff-old">member
+of
+the
+default
+graph
+.
+Issue
+4
+This
+element
+is
+at
+risk,
+</del>
+<em>
+<ins class="diff-chg">path
+</ins></em>
+and
+<del class="diff-old">may
+be
+removed.
+object
+of
+type
+Node
+,
+readonly
+The
+object
+associated
+with
+the
+Quad
+.
+</del>
+<ins class="diff-chg">optional
+</ins><em><ins class="diff-chg">
+query
+</ins></em><ins class="diff-chg">
+and
+fragment
+segments.
+</ins>
+</dd>
+<dt>
+<del class="diff-old">predicate
+of
+type
+Node
+,
+readonly
+The
+predicate
+associated
+with
+the
+Quad
+</del>
+<dfn title="relative-iri" id="dfn-relative-iri">
+<ins class="diff-chg">relative
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+<del class="diff-old">.
+Within
+JSON-LD,
+an
+RDF
+predicate
+</del>
+</dfn>
+<del class="diff-old">is
+refered
+to
+as
+a
+property
+subject
+of
+type
+</del>
+<del class="diff-old">Node
+,
+readonly
+</del>
+</dt>
+<dd>
+<del class="diff-old">The
+subject
+associated
+with
+the
+Quad
+.
+3.4.4
+Node
+Node
+is
+the
+base
+class
+of
+</del>
+<ins class="diff-chg">A
+relative
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">,
+BlankNode
+,
+and
+Literal
+.
+It
+</del>
+is
+<del class="diff-old">the
+IDL
+representation
+of
+a
+linked
+data
+graph
+node
+.
+    ]
+interface  {
+};
+3.4.5
+</del>
+<ins class="diff-chg">an
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">A
+node
+</del>
+that
+is
+<del class="diff-old">an
+</del>
+<ins class="diff-chg">relative
+some
+other
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">.
+    ]
+interface  {
+};
+3.4.5.1
+Attributes
+value
+of
+type
+DOMString
+</del>
+</a>
+<del class="diff-old">,
+readonly
+The
+IRI
+identifier
+</del>
+<ins class="diff-chg">;
+in
+the
+case
+</ins>
+of
+<ins class="diff-new">JSON-LD
+this
+is
+</ins>
+the
+<del class="diff-old">node
+as
+a
+[
+UNICODE
+]
+string.
+</del>
+<ins class="diff-chg">base
+location
+of
+the
+document.
+</ins>
+</dd>
+<dt>
+<del class="diff-old">3.4.6
+Blank
+Node
+</del>
+<dfn title="blank-node" id="dfn-blank-node">
+<ins class="diff-chg">blank
+node
+</ins>
+</dfn>
+</dt>
+<dd>
+A
+<a class="tref internalDFN" title="node" href="#dfn-node">
+node
+</a>
+in
+<del class="diff-old">the
+linked
+data
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+JSON-LD
+</ins>
+graph
+</a>
+that
+<del class="diff-old">does
+not
+contain
+a
+de-reference-able
+identifier
+because
+it
+</del>
+is
+<del class="diff-old">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
+_:
+and
+</del>
+<ins class="diff-chg">neither
+</ins>
+an
+<del class="diff-old">implementation
+dependent,
+auto-generated
+suffix
+that
+is
+unique
+to
+all
+information
+associated
+with
+the
+particular
+blank
+node.
+    ]
+interface  {
+};
+3.4.6.1
+Attributes
+</del>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr>
+</a>,
+<ins class="diff-chg">nor
+a
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
+JSON-LD
+value
+</ins></a>,<ins class="diff-chg">
+nor
+a
+</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
+list
+</ins></a>.</dd><dt>
+<dfn title="blank-node-identifier" id="dfn-blank-node-identifier">
+<ins class="diff-chg">blank
+node
+</ins>
+identifier
+<del class="diff-old">of
+type
+DOMString
+</del>
+</dfn>
+<del class="diff-old">,
+readonly
+</del>
+</dt>
+<dd>
+<del class="diff-old">The
+temporary
+identifier
+of
+the
+</del>
+<ins class="diff-chg">A
+</ins>
+blank
+node
+<del class="diff-old">.
+The
+</del>
+identifier
+<del class="diff-old">must
+not
+be
+relied
+upon
+in
+any
+way
+between
+two
+separate
+processing
+runs
+of
+the
+same
+document
+or
+with
+</del>
+<ins class="diff-chg">is
+</ins>
+a
+<del class="diff-old">different
+document.
+Note
+Developers
+and
+authors
+must
+not
+assume
+</del>
+<ins class="diff-chg">string
+</ins>
+that
+<del class="diff-old">the
+value
+of
+</del>
+<ins class="diff-chg">can
+be
+used
+as
+an
+identifier
+for
+</ins>
+a
+<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
+blank
+node
+</a>
+<del class="diff-old">will
+remain
+the
+same
+between
+two
+processing
+runs.
+BlankNode
+values
+are
+only
+valid
+for
+the
+most
+recent
+processing
+run
+on
+</del>
+<ins class="diff-chg">within
+</ins>
+the
+<ins class="diff-new">scope
+of
+a
+JSON-LD
+</ins>
+document.
+<ins class="diff-chg">Blank
+node
+identifiers
+begin
+with
+</ins>
+<code>
+<del class="diff-old">BlankNode
+values
+will
+often
+be
+generated
+differently
+by
+different
+processors.
+Note
+Implementers
+must
+ensure
+that
+</del>
+<ins class="diff-chg">_:
+</ins></code>.</dd><dt>
+<del class="diff-old">BlankNode
+</del>
+<dfn title="json-ld-value" id="dfn-json-ld-value">
+<ins class="diff-chg">JSON-LD
+value
+</ins></dfn>
+</dt>
+<dd>
+<ins class="diff-new">A
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-new">
+JSON-LD
+value
+</ins>
+</a>
+<del class="diff-old">values
+are
+unique
+within
+the
+current
+environment,
+two
+BlankNodes
+</del>
+<ins class="diff-chg">is
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+number
+</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins>
+</a>
+<del class="diff-old">are
+considered
+equal
+if,
+and
+only
+if,
+their
+values
+are
+strictly
+equal.
+</del>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
+typed
+value
+</ins></a>,<ins class="diff-chg">
+or
+a
+</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-chg">
+language-tagged
+string
+</ins></a>.</dd><dt>
+<dfn title="typed-value" id="dfn-typed-value">
+<ins class="diff-chg">typed
+value
+</ins></dfn>
+<del class="diff-old">3.4.7
+Literal
+Literals
+represent
+values
+such
+as
+numbers,
+dates
+and
+strings
+in
+RDF
+data.
+</del>
+</dt>
+<dd>
+A
+<del class="diff-old">Literal
+</del>
+<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
+<ins class="diff-chg">typed
+value
+</ins>
+</a>
+<del class="diff-old">is
+comprised
+</del>
+<ins class="diff-chg">consists
+</ins>
+of
+<del class="diff-old">three
+attributes:
+</del>
+a
+<del class="diff-old">lexical
+form
+of
+the
+value
+an
+optional
+language
+tag
+</del>
+<ins class="diff-chg">value,
+which
+is
+</ins>
+a
+<del class="diff-old">datatype
+specified
+by
+</del>
+<ins class="diff-chg">string,
+and
+a
+type,
+which
+is
+</ins>
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+</dd>
+<dt>
+<dfn title="language-tagged-string" id="dfn-language-tagged-string">
+<ins class="diff-chg">language-tagged
+string
+</ins></dfn>
+<del class="diff-old">Literals
+representing
+plain
+text
+in
+</del>
+</dt>
+<dd>
+<ins class="diff-chg">A
+</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-chg">
+language-tagged
+string
+</ins></a><ins class="diff-chg">
+consists
+of
+</ins>
+a
+<del class="diff-old">natural
+language
+may
+have
+</del>
+<ins class="diff-chg">string
+and
+</ins>
+a
+<ins class="diff-chg">non-empty
+</ins>
+language
+tag
+<del class="diff-old">specified
+by
+a
+string
+token,
+</del>
+as
+<del class="diff-old">specified
+in
+</del>
+<ins class="diff-chg">defined
+by
+</ins>
+[
+<cite>
+<a class="bibref" href="#bib-BCP47">
+BCP47
+</a>
+</cite>
+<del class="diff-old">],
+normalized
+to
+lowercase
+(e.g.,
+'en'
+,
+'fr'
+,
+'en-gb'
+).
+They
+also
+have
+a
+datatype
+attribute
+such
+as
+xsd:string
+.
+If
+unspecified,
+the
+datatype
+defaults
+</del>
+<ins class="diff-chg">].
+The
+language
+tag
+must
+be
+well-formed
+according
+</ins>
+to
+<del class="diff-old">xsd:string
+.
+Literals
+representing
+values
+with
+a
+specific
+datatype,
+such
+as
+the
+integer
+72,
+may
+have
+a
+datatype
+attribute
+specified
+in
+the
+form
+of
+a
+IRI
+(e.g.,
+xsd:integer
+).
+See[
+RDF-CONCEPTS
+]
+definition
+for
+literal
+.
+      ]
+interface  {
+};
+3.4.7.1
+Attributes
+datatype
+</del>
+<a href="http://tools.ietf.org/html/bcp47#section-2.2.9">
+<ins class="diff-chg">section
+2.2.9
+Classes
+</ins>
+of
+<del class="diff-old">type
+IRI
+</del>
+<ins class="diff-chg">Conformance
+</ins>
+</a>
+<del class="diff-old">,
+readonly,
+nullable
+An
+optional
+datatype
+identified
+by
+a
+IRI
+.
+language
+</del>
+of
+<del class="diff-old">type
+DOMString
+,
+readonly,
+nullable
+An
+optional
+language
+tag
+as
+defined
+in
+</del>
+[
+<cite>
+<a class="bibref" href="#bib-BCP47">
+BCP47
+</a>
+</cite>
+],
+<ins class="diff-new">and
+is
+</ins>
+normalized
+to
+lowercase.
+</dd>
+<dt>
+<del class="diff-old">value
+of
+type
+DOMString
+</del>
+<dfn title="list" id="dfn-list">
+<ins class="diff-chg">list
+</ins></dfn>
+<del class="diff-old">,
+readonly
+</del>
+</dt>
+<dd>
+<del class="diff-old">The
+lexical
+form
+</del>
+<ins class="diff-chg">A
+</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
+list
+</ins></a><ins class="diff-chg">
+is
+an
+ordered
+sequence
+</ins>
+of
+<del class="diff-old">the
+Literal's
+value.
+</del>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<ins class="diff-chg">IRIs
+</ins></a>,<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
+JSON-LD
+values
+</ins></a>.
+</dd>
+</dl>
+</section>
+<section id="algorithm-terms">
+<h2>
+<span class="secno">
+<del class="diff-old">4.
+Algorithms
+All
+algorithms
+described
+in
+this
+section
+are
+intended
+to
+operate
+on
+language-native
+data
+structures.
+That
+is,
+the
+serialization
+to
+a
+text-based
+JSON
+document
+isn't
+required
+as
+input
+or
+output
+to
+any
+of
+these
+algorithms
+and
+language-native
+data
+structures
+must
+be
+used
+where
+applicable.
+4.1
+</del>
+<ins class="diff-chg">5.
+</ins>
+</span>
+Algorithm
+Terms
+</h2>
+<dl>
+<dt>
+<del class="diff-old">initial
+context
+</del>
+<dfn title="active-graph" id="dfn-active-graph">
+<ins class="diff-chg">active
+graph
+</ins>
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">a
+context
+that
+is
+specified
+to
+the
+algorithm
+before
+processing
+begins.
+</del>
+The
+<del class="diff-old">contents
+</del>
+<ins class="diff-chg">name
+</ins>
+of
+the
+<del class="diff-old">initial
+context
+is
+defined
+in
+Appendix
+A
+.
+active
+subject
+the
+</del>
+currently
+active
+<del class="diff-old">subject
+</del>
+<ins class="diff-chg">graph
+</ins>
+that
+the
+processor
+should
+use
+when
+processing.
+</dd>
+<dt>
+<dfn title="active-subject" id="dfn-active-subject">
+active
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">subject
+</ins>
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">the
+</del>
+<ins class="diff-chg">The
+</ins>
+currently
+active
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">subject
+</ins>
+that
+the
+processor
+should
+use
+when
+processing.
+<del class="diff-old">The
+active
+property
+is
+represented
+in
+the
+original
+lexical
+form,
+which
+is
+used
+for
+finding
+coercion
+mappings
+in
+the
+active
+context
+.
+</del>
+</dd>
+<dt>
+<dfn title="active-property" id="dfn-active-property">
+active
+<del class="diff-old">object
+</del>
+<ins class="diff-chg">property
+</ins>
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">the
+</del>
+<ins class="diff-chg">The
+</ins>
+currently
+active
+<del class="diff-old">object
+</del>
+<a class="tref internalDFN" title="property" href="#dfn-property">
+<ins class="diff-chg">property
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>
+that
+the
+processor
+should
+use
+when
+processing.
+</dd>
+<dt>
+<dfn title="active-context" id="dfn-active-context">
+active
+context
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">a
+</del>
+<ins class="diff-chg">A
+</ins>
+context
+that
+is
+used
+to
+resolve
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">terms
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+while
+the
+processing
+algorithm
+is
+running.
+<del class="diff-old">The
+active
+</del>
+</dd>
+<dt>
+<dfn title="local-context" id="dfn-local-context">
+<ins class="diff-chg">local
+</ins>
+context
+<del class="diff-old">is
+the
+</del>
+</dfn>
+</dt>
+<dd>
+<ins class="diff-chg">A
+</ins>
+context
+<del class="diff-old">contained
+</del>
+<ins class="diff-chg">that
+is
+specified
+</ins>
+within
+<ins class="diff-new">a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a>,<ins class="diff-new">
+specified
+via
+</ins>
+the
+<del class="diff-old">processor
+state
+</del>
+<code>
+<ins class="diff-chg">@context
+</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins>
+</a>.
+</dd>
+<dt>
+<dfn title="json-ld-input" id="dfn-json-ld-input">
+<ins class="diff-chg">JSON-LD
+input
+</ins></dfn></dt><dd><ins class="diff-chg">
+The
+JSON-LD
+data
+structure
+that
+is
+provided
+as
+input
+to
+the
+algorithm.
+</ins></dd><dt><dfn title="term" id="dfn-term"><ins class="diff-chg">
+term
+</ins></dfn></dt><dd><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+is
+a
+short
+word
+defined
+in
+a
+context
+that
+may
+be
+expanded
+to
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a></dd><dt><dfn title="compact-iri" id="dfn-compact-iri">
+compact
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">a
+</del>
+<ins class="diff-chg">A
+</ins>
+compact
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">is
+</del>
+has
+the
+form
+of
+<dfn title="prefix" id="dfn-prefix">
+prefix
+<del class="diff-old">and
+</del>
+</dfn>:
+<em>
+suffix
+</em>
+and
+is
+used
+as
+a
+way
+of
+expressing
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+without
+needing
+to
+define
+separate
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+definitions
+for
+each
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+contained
+within
+a
+common
+vocabulary
+identified
+by
+<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
+prefix
+</a>.
+</dd>
+<dt>
+<del class="diff-old">local
+context
+</del>
+<dfn title="node-object" id="dfn-node-object">
+<ins class="diff-chg">node
+object
+</ins>
+</dfn>
+</dt>
+<dd>
+<ins class="diff-new">A
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a><ins class="diff-new">
+represents
+zero
+or
+more
+properties
+of
+</ins>
+a
+<del class="diff-old">context
+that
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">node
+</ins></a><ins class="diff-chg">
+in
+the
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+JSON-LD
+graph
+</ins></a><ins class="diff-chg">
+serialized
+by
+the
+JSON-LD
+document.
+A
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>
+is
+<del class="diff-old">specified
+within
+</del>
+a
+<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
+<ins class="diff-chg">node
+object
+</ins></a><ins class="diff-chg">
+if
+it
+exists
+outside
+of
+the
+JSON-LD
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+and:
+</ins><ul><li><ins class="diff-chg">
+it
+does
+not
+contain
+the
+</ins><code><ins class="diff-chg">
+@value
+</ins></code>,<code><ins class="diff-chg">
+@list
+</ins></code>,<ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@set
+</ins></code><ins class="diff-chg">
+keywords,
+or
+</ins></li><li><ins class="diff-chg">
+it
+is
+not
+the
+top-most
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+<del class="diff-old">,
+specified
+via
+</del>
+</a>
+<ins class="diff-chg">in
+</ins>
+the
+<ins class="diff-new">JSON-LD
+document
+consisting
+of
+no
+other
+members
+than
+</ins>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">@graph
+</ins>
+</code>
+<del class="diff-old">keyword
+.
+</del>
+<ins class="diff-chg">and
+</ins><code><ins class="diff-chg">
+@context
+</ins></code>.</li></ul>
+</dd>
+<dt>
+<del class="diff-old">processor
+state
+</del>
+<dfn title="value-object" id="dfn-value-object">
+<ins class="diff-chg">value
+object
+</ins>
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">the
+processor
+state
+,
+which
+includes
+the
+active
+context
+,
+active
+subject
+,
+and
+active
+property
+.
+The
+processor
+state
+</del>
+<ins class="diff-chg">A
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins>
+</a>
+is
+<del class="diff-old">managed
+as
+a
+stack
+with
+elements
+from
+the
+previous
+processor
+state
+copied
+into
+a
+new
+processor
+state
+when
+entering
+</del>
+a
+<del class="diff-old">new
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+<del class="diff-old">.
+</del>
+</a>
+<ins class="diff-chg">that
+has
+an
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+member.
+</ins>
+</dd>
+<dt>
+<del class="diff-old">JSON-LD
+input
+</del>
+<dfn title="list-object" id="dfn-list-object">
+<ins class="diff-chg">list
+object
+</ins>
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">The
+JSON-LD
+data
+structure
+that
+</del>
+<ins class="diff-chg">A
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins></a>
+is
+<del class="diff-old">provided
+as
+input
+to
+the
+algorithm.
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+that
+has
+an
+</ins><code><ins class="diff-chg">
+@list
+</ins></code><ins class="diff-chg">
+member.
+</ins>
+</dd>
+<dt>
+<del class="diff-old">JSON-LD
+output
+</del>
+<dfn title="set-object" id="dfn-set-object">
+<ins class="diff-chg">set
+object
+</ins>
+</dfn>
+</dt>
+<dd>
+<del class="diff-old">The
+JSON-LD
+data
+structure
+that
+</del>
+<ins class="diff-chg">A
+</ins><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-chg">
+set
+object
+</ins></a>
+is
+<del class="diff-old">produced
+as
+output
+by
+the
+algorithm.
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+that
+has
+an
+</ins><code><ins class="diff-chg">
+@set
+</ins></code><ins class="diff-chg">
+member.
+</ins>
+</dd>
+<dt>
+<del class="diff-old">term
+</del>
+<dfn title="scalar" id="dfn-scalar">
+<ins class="diff-chg">scalar
+</ins>
+</dfn>
+</dt>
+<dd>
+A
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">scalar
+</ins>
+is
+<ins class="diff-new">either
+</ins>
+a
+<del class="diff-old">short
+word
+defined
+in
+a
+context
+that
+may
+be
+expanded
+to
+an
+IRI
+</del>
+<ins class="diff-chg">JSON
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,<a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+number
+</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>.
+</dd>
+<dt>
+<del class="diff-old">prefix
+</del>
+<dfn title="rdf-subject" id="dfn-rdf-subject">
+<ins class="diff-chg">RDF
+subject
+</ins>
+</dfn>
+</dt>
+<dd>
+A
+<del class="diff-old">prefix
+is
+a
+term
+</del>
+<a class="tref externalDFN" title="subject" href="http://www.w3.org/TR/rdf11-concepts/#dfn-subject">
+<ins class="diff-chg">subject
+</ins>
+</a>
+<del class="diff-old">that
+expands
+to
+a
+vocabulary
+base
+IRI
+.
+It
+is
+typically
+used
+along
+with
+a
+suffix
+to
+form
+a
+compact
+IRI
+</del>
+<ins class="diff-chg">as
+specified
+by
+[
+</ins><cite>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-new">RDF11-CONCEPTS
+</ins>
+</a>
+<del class="diff-old">to
+create
+an
+IRI
+within
+a
+vocabulary.
+</del>
+</cite>
+<ins class="diff-chg">].
+</ins>
+</dd>
+<dt>
+<del class="diff-old">language-tagged
+literal
+</del>
+<dfn title="rdf-predicate" id="dfn-rdf-predicate">
+<ins class="diff-chg">RDF
+predicate
+</ins>
+</dfn>
+</dt>
+<dd>
+A
+<del class="diff-old">language-tagged
+literal
+is
+a
+literal
+</del>
+<a class="tref externalDFN" title="predicate" href="http://www.w3.org/TR/rdf11-concepts/#dfn-predicate">
+<ins class="diff-chg">predicate
+</ins>
+</a>
+<del class="diff-old">without
+a
+datatype,
+including
+a
+language.
+See
+</del>
+<ins class="diff-chg">as
+specified
+by
+[
+</ins>
+<cite>
+<del class="diff-old">literal
+</del>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-chg">RDF11-CONCEPTS
+</ins>
+</a>
+</cite>
+<del class="diff-old">in
+</del>
+<ins class="diff-chg">].
+</ins></dd><dt><dfn title="rdf-object" id="dfn-rdf-object"><ins class="diff-chg">
+RDF
+object
+</ins></dfn></dt><dd><ins class="diff-chg">
+An
+</ins><a class="tref externalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object"><ins class="diff-chg">
+object
+</ins></a><ins class="diff-chg">
+as
+specified
+by
+</ins>
+[
+<cite>
+<del class="diff-old">RDF-CONCEPTS
+</del>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-chg">RDF11-CONCEPTS
+</ins>
+</a>
+</cite>
+].
+</dd>
+<dt>
+<del class="diff-old">typed
+literal
+</del>
+<dfn title="rdf-triple" id="dfn-rdf-triple">
+<ins class="diff-chg">RDF
+triple
+</ins>
+</dfn>
+</dt>
+<dd>
+A
+<del class="diff-old">typed
+literal
+is
+a
+literal
+with
+an
+associated
+IRI
+</del>
+<a class="tref externalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">
+<ins class="diff-chg">triple
+</ins>
+</a>
+<del class="diff-old">which
+indicates
+the
+literal's
+datatype.
+See
+</del>
+<ins class="diff-chg">as
+specified
+by
+[
+</ins>
+<cite>
+<del class="diff-old">language-tagged
+string
+</del>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-chg">RDF11-CONCEPTS
+</ins>
+</a>
+</cite>
+<del class="diff-old">in
+</del>
+<ins class="diff-chg">].
+</ins></dd><dt><dfn title="rdf-dataset" id="dfn-rdf-dataset"><ins class="diff-chg">
+RDF
+dataset
+</ins></dfn></dt><dd><ins class="diff-chg">
+A
+</ins><a class="tref externalDFN" title="dataset" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset"><ins class="diff-chg">
+dataset
+</ins></a><ins class="diff-chg">
+as
+specified
+by
+</ins>
+[
+<cite>
+<del class="diff-old">RDF-CONCEPTS
+</del>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-chg">RDF11-CONCEPTS
+</ins>
+</a>
+</cite>
+<del class="diff-old">].
+</del>
+<ins class="diff-chg">]
+representing
+a
+collection
+of
+</ins><a class="tref externalDFN" title="rdf-graphs" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-graph"><ins class="diff-chg">
+RDF
+graphs
+</ins></a>.
+</dd>
+</dl>
+</section>
+<section id="context-processing-algorithms">
+<h2>
+<span class="secno">
+<del class="diff-old">4.2
+</del>
+<ins class="diff-chg">6.
+</ins></span><ins class="diff-chg">
+Context
+Processing
+Algorithms
+</ins></h2><section id="context-processing-algorithm"><h3><span class="secno"><ins class="diff-chg">
+6.1
+</ins>
+</span>
+Context
+Processing
+<ins class="diff-new">Algorithm
+</ins>
+</h3>
+<p>
+<del class="diff-old">Processing
+of
+</del>
+<ins class="diff-chg">When
+processing
+a
+</ins>
+JSON-LD
+data
+<del class="diff-old">structure
+is
+managed
+recursively.
+During
+processing,
+</del>
+<ins class="diff-chg">structure,
+</ins>
+each
+<ins class="diff-new">processing
+</ins>
+rule
+is
+applied
+using
+information
+provided
+by
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>.
+<del class="diff-old">Processing
+begins
+by
+pushing
+a
+new
+processor
+state
+</del>
+<ins class="diff-chg">This
+section
+describes
+how
+to
+produce
+an
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>.</p><p><ins class="diff-chg">
+The
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins>
+</a>
+<del class="diff-old">onto
+</del>
+<ins class="diff-chg">contains
+</ins>
+the
+<del class="diff-old">processor
+state
+</del>
+<ins class="diff-chg">active
+</ins><dfn title="term-definition" id="dfn-term-definition"><ins class="diff-chg">
+term
+definitions
+</ins></dfn><ins class="diff-chg">
+which
+specify
+how
+properties
+and
+values
+have
+to
+be
+interpreted
+as
+well
+as
+the
+current
+</ins><dfn title="base-iri" id="dfn-base-iri"><ins class="diff-chg">
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></dfn>,<ins class="diff-chg">
+the
+</ins><dfn title="vocabulary-mapping" id="dfn-vocabulary-mapping"><ins class="diff-chg">
+vocabulary
+mapping
+</ins></dfn><ins class="diff-chg">
+and
+the
+</ins><dfn title="default-language" id="dfn-default-language"><ins class="diff-chg">
+default
+language
+</ins></dfn>.<ins class="diff-chg">
+Each
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins>
+</a>
+<del class="diff-old">stack
+</del>
+<ins class="diff-chg">consists
+of
+an
+</ins><dfn title="iri-mapping" id="dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></dfn>,<ins class="diff-chg">
+a
+boolean
+flag
+</ins><dfn title="reverse-property" id="dfn-reverse-property"><ins class="diff-chg">
+reverse
+property
+</ins></dfn>,<ins class="diff-chg">
+an
+optional
+</ins><dfn title="type-mapping" id="dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></dfn><ins class="diff-chg">
+or
+</ins><dfn title="language-mapping" id="dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></dfn>,
+and
+<del class="diff-old">initializing
+</del>
+<ins class="diff-chg">an
+optional
+</ins><dfn title="container-mapping" id="dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></dfn>.<ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+can
+not
+only
+be
+used
+to
+map
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+to
+an
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>,<ins class="diff-chg">
+but
+also
+to
+map
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+to
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>,<ins class="diff-chg">
+in
+which
+case
+it
+is
+referred
+to
+as
+a
+</ins><dfn title="keyword-alias" id="dfn-keyword-alias"><ins class="diff-chg">
+keyword
+alias
+</ins></dfn>.</p><p><ins class="diff-chg">
+When
+processing,
+</ins>
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+<del class="diff-old">with
+the
+initial
+context
+</del>
+<ins class="diff-chg">is
+initialized
+without
+any
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definitions
+</ins></a>,<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
+vocabulary
+mapping
+</ins></a>,<ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
+default
+language
+</ins>
+</a>.
+If
+a
+<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+local
+context
+</a>
+is
+<del class="diff-old">encountered,
+</del>
+<ins class="diff-chg">encountered
+during
+processing,
+a
+new
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+is
+created
+by
+cloning
+the
+existing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>.<ins class="diff-chg">
+Then
+the
+</ins>
+information
+from
+the
+<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+local
+context
+</a>
+is
+merged
+into
+the
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>.
+<ins class="diff-new">Given
+that
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
+local
+contexts
+</ins></a><ins class="diff-new">
+may
+contain
+references
+to
+remote
+contexts,
+this
+includes
+their
+retrieval.
+</ins>
+</p>
+<section class="informative">
+<h4 id="overview">
+<ins class="diff-new">Overview
+</ins></h4>
+<p>
+<del class="diff-old">The
+</del>
+<em>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+First
+we
+prepare
+a
+new
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+<del class="diff-old">is
+used
+for
+expanding
+properties
+and
+values
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i><ins class="diff-chg">
+by
+cloning
+the
+current
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>.<ins class="diff-chg">
+Then
+we
+normalize
+the
+form
+of
+the
+passed
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+Local
+contexts
+</ins></a><ins class="diff-chg">
+may
+be
+in
+the
+form
+</ins>
+of
+a
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+<del class="diff-old">(or
+elements
+of
+</del>
+</a>,
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,<ins class="diff-chg">
+or
+</ins>
+an
+<del class="diff-old">array)
+using
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a><ins class="diff-chg">
+containing
+</ins>
+a
+<del class="diff-old">term
+mapping
+.
+It
+</del>
+<ins class="diff-chg">combination
+of
+the
+two.
+Finally
+we
+process
+each
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+contained
+in
+the
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+as
+follows.
+</ins></p><p><ins class="diff-chg">
+If
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>
+is
+<del class="diff-old">also
+used
+to
+maintain
+coercion
+mapping
+s
+from
+terms
+to
+datatypes,
+language
+mapping
+s
+from
+terms
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,<ins class="diff-chg">
+it
+represents
+a
+reference
+</ins>
+to
+<del class="diff-old">language
+codes,
+and
+list
+mapping
+s
+</del>
+<ins class="diff-chg">a
+remote
+context.
+We
+dereference
+the
+remote
+context
+</ins>
+and
+<del class="diff-old">set
+mapping
+s
+for
+terms.
+Processors
+must
+use
+</del>
+<ins class="diff-chg">replace
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+with
+</ins>
+the
+<del class="diff-old">lexical
+form
+</del>
+<ins class="diff-chg">value
+</ins>
+of
+the
+<del class="diff-old">property
+when
+creating
+a
+mapping,
+as
+lookup
+</del>
+<code>
+<ins class="diff-chg">@context
+</ins></code><ins class="diff-chg">
+key
+of
+the
+top-level
+object
+in
+the
+retrieved
+JSON-LD
+document.
+If
+there's
+no
+such
+key,
+an
+invalid
+remote
+context
+has
+been
+detected.
+Otherwise,
+we
+process
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+by
+recursively
+using
+this
+algorithm
+ensuring
+that
+there
+</ins>
+is
+<del class="diff-old">performed
+on
+lexical
+forms,
+not
+expanded
+IRI
+representations.
+</del>
+<ins class="diff-chg">no
+cyclical
+reference.
+</ins>
+</p>
+<p>
+<del class="diff-old">A
+local
+</del>
+<ins class="diff-chg">If
+</ins><a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+is
+<del class="diff-old">identified
+within
+</del>
+a
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>,
+<ins class="diff-new">we
+first
+update
+the
+</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-new">
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>,<ins class="diff-new">
+the
+</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
+vocabulary
+mapping
+</ins></a>,<ins class="diff-new">
+and
+the
+</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-new">
+default
+language
+</ins>
+</a>
+<del class="diff-old">having
+a
+</del>
+<ins class="diff-chg">by
+processing
+three
+specific
+keywords:
+</ins>
+<code>
+<del class="diff-old">@context
+property
+with
+a
+string
+</del>
+<ins class="diff-chg">@base
+</ins></code>,<code><ins class="diff-chg">
+@vocab
+</ins></code>,<ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+@language
+</ins></code>.<ins class="diff-chg">
+These
+are
+handled
+before
+any
+other
+keys
+in
+the
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+because
+they
+affect
+how
+the
+other
+keys
+are
+processed.
+</ins></p><p><ins class="diff-chg">
+Then,
+for
+every
+other
+key
+in
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins>
+</a>,
+<del class="diff-old">array
+</del>
+<ins class="diff-chg">we
+update
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins>
+</a>
+<del class="diff-old">or
+a
+JSON
+object
+</del>
+<ins class="diff-chg">in
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.<ins class="diff-chg">
+Since
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definitions
+</ins>
+</a>
+<del class="diff-old">value.
+When
+processing
+</del>
+<ins class="diff-chg">in
+</ins>
+a
+<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+local
+context
+</a>
+<ins class="diff-new">may
+themselves
+contain
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+terms
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
+compact
+IRIs
+</ins>
+</a>,
+<del class="diff-old">special
+processing
+rules
+apply:
+</del>
+<ins class="diff-chg">we
+may
+need
+to
+recurse.
+When
+doing
+so,
+we
+must
+ensure
+that
+there
+is
+no
+cyclical
+dependency,
+which
+is
+an
+error.
+After
+we
+have
+processed
+any
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+dependencies,
+we
+update
+the
+current
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a>,<ins class="diff-chg">
+which
+may
+be
+a
+</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
+keyword
+alias
+</ins></a>.
+</p>
+<del class="diff-old">Create
+</del>
+<p>
+<ins class="diff-chg">Finally,
+we
+return
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+as
+the
+new
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>.</p></section><section><h4 id="algorithm"><ins class="diff-chg">
+Algorithm
+</ins></h4><p><ins class="diff-chg">
+This
+algorithm
+specifies
+how
+</ins>
+a
+<del class="diff-old">new,
+empty
+</del>
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+is
+updated
+with
+a
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+local
+context
+</a>.
+<del class="diff-old">Let
+context
+be
+the
+value
+of
+@context
+If
+</del>
+<ins class="diff-chg">The
+algorithm
+takes
+three
+input
+variables:
+an
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+</ins>
+context
+<del class="diff-old">equals
+null
+</del>
+</a>,
+<del class="diff-old">reset
+the
+active
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+</ins>
+context
+</a>,
+<ins class="diff-new">and
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins>
+</a>
+<i>
+<ins class="diff-new">remote
+contexts
+</ins></i><ins class="diff-new">
+which
+is
+used
+to
+detect
+cyclical
+context
+inclusions.
+If
+</ins><i><ins class="diff-new">
+remote
+contexts
+</ins></i><ins class="diff-new">
+is
+not
+passed,
+it
+is
+initialized
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>.</p><ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+result
+</ins></i>
+to
+the
+<del class="diff-old">initial
+</del>
+<ins class="diff-chg">result
+of
+cloning
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+</ins>
+context
+</a>.
+</li>
+<li>
+If
+<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+<ins class="diff-chg">local
+</ins>
+context
+</a>
+is
+<ins class="diff-new">not
+</ins>
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>,
+<del class="diff-old">process
+</del>
+<ins class="diff-chg">set
+it
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+containing
+only
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>.</li><li><ins class="diff-chg">
+For
+</ins>
+each
+<del class="diff-old">element
+as
+</del>
+<ins class="diff-chg">item
+</ins><i>
+context
+</i>
+in
+<del class="diff-old">order
+by
+starting
+at
+Step
+2.1
+.
+</del>
+<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+<ins class="diff-chg">local
+context
+</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+set
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+a
+newly-initialized
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+and
+continue
+with
+the
+next
+</ins><i><ins class="diff-chg">
+context
+</ins></i>.
+</li>
+<li>
+If
+<i>
+context
+</i>
+is
+a
+<a class="tref internalDFN" title="string" href="#dfn-string">
+string
+</a>,
+<del class="diff-old">it
+must
+have
+</del>
+<ol class="algorithm">
+<li>
+<ins class="diff-chg">Set
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+resolving
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+against
+the
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+which
+is
+established
+as
+specified
+in
+</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1"><ins class="diff-chg">
+section
+5.1
+Establishing
+</ins>
+a
+<del class="diff-old">lexical
+form
+</del>
+<ins class="diff-chg">Base
+URI
+</ins></a></cite>
+of
+<del class="diff-old">absolute
+</del>
+<ins class="diff-chg">[
+</ins><cite><a class="bibref" href="#bib-RFC3986"><ins class="diff-chg">
+RFC3986
+</ins></a></cite><ins class="diff-chg">
+].
+Only
+the
+basic
+algorithm
+in
+</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-5.2"><ins class="diff-chg">
+section
+5.2
+</ins></a></cite><ins class="diff-chg">
+of
+[
+</ins><cite><a class="bibref" href="#bib-RFC3986"><ins class="diff-chg">
+RFC3986
+</ins></a></cite><ins class="diff-chg">
+]
+is
+used;
+neither
+</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.2"><ins class="diff-chg">
+Syntax-Based
+Normalization
+</ins></a></cite><ins class="diff-chg">
+nor
+</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.3"><ins class="diff-chg">
+Scheme-Based
+Normalization
+</ins></a></cite><ins class="diff-chg">
+are
+performed.
+Characters
+additionally
+allowed
+in
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<ins class="diff-new">references
+are
+treated
+in
+the
+same
+way
+that
+unreserved
+characters
+are
+treated
+in
+URI
+references,
+per
+</ins><cite><a href="http://tools.ietf.org/html/rfc3987#section-6.5"><ins class="diff-new">
+section
+6.5
+</ins></a></cite><ins class="diff-new">
+of
+[
+</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-new">
+RFC3987
+</ins></a></cite><ins class="diff-new">
+].
+</ins></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+context
+</ins></i><ins class="diff-new">
+is
+in
+the
+</ins><i><ins class="diff-new">
+remote
+contexts
+</ins></i><ins class="diff-new">
+array,
+a
+</ins><code class="error">
+<a href="#idl-def-JsonLdErrorCode.recursive-context-inclusion">
+<ins class="diff-new">recursive
+context
+inclusion
+</ins></a></code><ins class="diff-new">
+error
+has
+been
+detected
+and
+processing
+is
+aborted;
+otherwise,
+add
+</ins><i><ins class="diff-new">
+context
+</ins></i><ins class="diff-new">
+to
+</ins><i><ins class="diff-new">
+remote
+contexts
+</ins></i>.</li><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+context
+no
+base
+</ins></i><ins class="diff-new">
+to
+the
+result
+of
+cloning
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins>
+</a>.
+</li>
+<li>
+<del class="diff-old">Dereference
+</del>
+<ins class="diff-chg">Remove
+the
+</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+of
+</ins><i>
+context
+<del class="diff-old">.
+</del>
+<ins class="diff-chg">no
+base
+</ins></i>.
+</li>
+<li>
+<ins class="diff-new">Dereference
+</ins><i><ins class="diff-new">
+context
+</ins></i>.
+If
+the
+<del class="diff-old">resulting
+</del>
+<ins class="diff-chg">dereferenced
+</ins>
+document
+<del class="diff-old">is
+a
+JSON
+document,
+extract
+the
+</del>
+<ins class="diff-chg">has
+no
+</ins>
+top-level
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-new">JSON
+object
+</ins></a><ins class="diff-new">
+with
+an
+</ins>
+<code>
+@context
+</code>
+<del class="diff-old">element
+using
+the
+JSON
+Pointer
+&quot;/@context&quot;
+as
+described
+in
+[
+</del>
+<ins class="diff-chg">member,
+an
+</ins><code class="error">
+<del class="diff-old">JSON-POINTER
+</del>
+<a href="#idl-def-JsonLdErrorCode.invalid-remote-context">
+<ins class="diff-chg">invalid
+remote
+context
+</ins>
+</a>
+<del class="diff-old">].
+</del>
+</code>
+<ins class="diff-chg">has
+been
+detected
+and
+processing
+is
+aborted;
+otherwise,
+set
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+to
+the
+value
+of
+that
+member.
+</ins></li><li>
+Set
+<i>
+context
+</i>
+to
+the
+<del class="diff-old">extracted
+content
+</del>
+<ins class="diff-chg">result
+of
+recursively
+calling
+this
+algorithm,
+passing
+</ins><i><ins class="diff-chg">
+context
+no
+base
+</ins></i><ins class="diff-chg">
+for
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+for
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>,
+and
+<del class="diff-old">process
+it
+by
+starting
+at
+Step
+2.1
+.
+</del>
+<i>
+<ins class="diff-chg">remote
+contexts
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+has
+no
+</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+but
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+does,
+set
+the
+</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+to
+the
+one
+of
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li><li><ins class="diff-chg">
+Overwrite
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+with
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+and
+continue
+with
+the
+next
+</ins><i><ins class="diff-chg">
+context
+</ins></i>.
+</li>
+</ol>
+</li>
+<li>
+If
+<i>
+context
+</i>
+is
+<ins class="diff-new">not
+</ins>
+a
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>,
+<del class="diff-old">perform
+the
+following
+steps:
+</del>
+<ins class="diff-chg">an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-local-context"><ins class="diff-chg">
+invalid
+local
+context
+</ins></a></code><ins class="diff-chg">
+error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li>
+<li>
+If
+<i>
+context
+</i>
+has
+<del class="diff-old">a
+</del>
+<ins class="diff-chg">an
+</ins>
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@base
+</ins>
+</code>
+<del class="diff-old">property,
+it
+must
+have
+a
+value
+of
+a
+simple
+string
+</del>
+<ins class="diff-chg">key:
+</ins><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-chg">
+Feature
+at
+Risk
+1
+</ins></span>:<ins class="diff-chg">
+@base
+keyword
+</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-chg">
+Note:
+This
+feature
+is
+</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-chg">
+&quot;at
+risk&quot;
+</ins>
+</a>
+<del class="diff-old">or
+null
+</del>
+<ins class="diff-chg">and
+may
+be
+removed
+from
+this
+specification
+based
+on
+feedback.
+Please
+send
+feedback
+to
+</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-chg">
+public-rdf-comments@w3.org
+</ins>
+</a>.
+<del class="diff-old">Add
+</del>
+<ins class="diff-chg">For
+</ins>
+the
+<del class="diff-old">language
+to
+</del>
+<ins class="diff-chg">current
+status
+see
+</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
+features
+&quot;at
+risk&quot;
+in
+JSON-LD
+1.0
+</ins></a></p><p><ins class="diff-chg">
+Support
+for
+</ins>
+the
+<del class="diff-old">local
+context
+.
+Otherwise,
+</del>
+<code>
+<ins class="diff-chg">@base
+</ins></code><ins class="diff-chg">
+keyword
+might
+be
+removed
+from
+JSON-LD
+1.0
+if
+implementation
+experience
+reveals
+that
+the
+fact
+that
+a
+document
+may
+have
+multiple
+base
+IRIs
+is
+confusing
+</ins>
+for
+<del class="diff-old">each
+property
+in
+context
+perform
+</del>
+<ins class="diff-chg">developers.
+It
+is
+also
+being
+discussed
+whether
+relative
+IRIs
+are
+allowed
+as
+values
+of
+</ins><code><ins class="diff-chg">
+@base
+</ins></code><ins class="diff-chg">
+or
+whether
+</ins>
+the
+<del class="diff-old">following
+steps:
+</del>
+<ins class="diff-chg">empty
+string
+should
+be
+used
+to
+explicitly
+specify
+that
+there
+isn't
+a
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>,<ins class="diff-chg">
+which
+could
+be
+used
+to
+ensure
+that
+relative
+IRIs
+remain
+relative
+when
+expanding.
+</ins></p></div></div>
+<ol class="algorithm">
+<li>
+<ins class="diff-new">Initialize
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+to
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-new">
+@base
+</ins></code><ins class="diff-new">
+key.
+</ins></li><li>
+If
+<i>
+<ins class="diff-new">value
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+remove
+</ins>
+the
+<del class="diff-old">property's
+</del>
+<a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">
+<ins class="diff-chg">base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i>
+value
+</i>
+is
+<del class="diff-old">a
+simple
+string
+</del>
+<ins class="diff-chg">an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>,
+<del class="diff-old">determine
+</del>
+the
+<a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">
+<ins class="diff-new">base
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">mapping
+</del>
+</a>
+<ins class="diff-chg">of
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+is
+set
+to
+</ins><i>
+value
+<del class="diff-old">by
+performing
+</del>
+</i>.
+<ins class="diff-chg">If
+it
+is
+not
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>,
+<ins class="diff-new">an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-base-IRI"><ins class="diff-new">
+invalid
+base
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">Expansion
+</del>
+</a>
+<del class="diff-old">on
+</del>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li></ol></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+has
+an
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code><ins class="diff-chg">
+key:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<ins class="diff-new">value
+</ins>
+associated
+<del class="diff-old">value.
+If
+</del>
+<ins class="diff-chg">with
+</ins>
+the
+<code>
+<ins class="diff-new">@vocab
+</ins></code><ins class="diff-new">
+key.
+</ins></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+remove
+any
+</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
+vocabulary
+mapping
+</ins></a><ins class="diff-new">
+from
+</ins><i>
+result
+<del class="diff-old">of
+the
+</del>
+</i>.
+</li>
+<li>
+<ins class="diff-chg">Otherwise,
+if
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>,
+<ins class="diff-new">the
+</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
+vocabulary
+</ins>
+mapping
+</a>
+<ins class="diff-new">of
+</ins><i><ins class="diff-new">
+result
+</ins></i><ins class="diff-new">
+is
+set
+to
+</ins><i><ins class="diff-new">
+value
+</ins></i>.<ins class="diff-new">
+If
+it
+</ins>
+is
+<ins class="diff-new">not
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>,
+<del class="diff-old">merge
+the
+property
+into
+the
+local
+context
+term
+</del>
+<ins class="diff-chg">an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-vocab-mapping"><ins class="diff-chg">
+invalid
+vocab
+</ins>
+mapping
+<del class="diff-old">,
+unless
+the
+property
+</del>
+</a>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+</ins>
+is
+<del class="diff-old">a
+JSON-LD
+keyword
+,
+in
+which
+case
+throw
+an
+exception.
+</del>
+<ins class="diff-chg">aborted.
+</ins></li></ol>
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+has
+an
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+key:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<del class="diff-old">property's
+</del>
+value
+<ins class="diff-new">associated
+with
+the
+</ins><code><ins class="diff-new">
+@language
+</ins></code><ins class="diff-new">
+key.
+</ins></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+value
+</ins></i>
+is
+<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>,
+remove
+<del class="diff-old">mapping,
+coercion,
+container
+and
+</del>
+<ins class="diff-chg">any
+</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
+default
+</ins>
+language
+<del class="diff-old">information
+associated
+with
+property
+</del>
+</a>
+from
+<del class="diff-old">the
+local
+context
+.
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i>.
+</li>
+<li>
+Otherwise,
+<ins class="diff-new">if
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+string
+</ins></a>,
+the
+<del class="diff-old">property
+'s
+</del>
+<a class="tref internalDFN" title="default-language" href="#dfn-default-language">
+<ins class="diff-chg">default
+language
+</ins></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+is
+set
+to
+lowercased
+</ins><i>
+value
+<del class="diff-old">must
+be
+a
+JSON
+object
+.
+</del>
+</i>.
+If
+<del class="diff-old">the
+property
+</del>
+<ins class="diff-chg">it
+</ins>
+is
+<ins class="diff-new">not
+</ins>
+a
+<del class="diff-old">JSON-LD
+keyword
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">string
+</ins></a>,<ins class="diff-chg">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-default-language"><ins class="diff-chg">
+invalid
+default
+language
+</ins>
+</a>
+</code>
+<ins class="diff-new">error
+has
+been
+detected
+</ins>
+and
+<del class="diff-old">the
+value
+</del>
+<ins class="diff-chg">processing
+is
+aborted.
+</ins></li></ol></li><li><ins class="diff-chg">
+Create
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+to
+use
+to
+keep
+track
+of
+whether
+or
+not
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>
+has
+<ins class="diff-new">already
+been
+defined
+or
+currently
+being
+defined
+during
+recursion.
+</ins></li><li><ins class="diff-new">
+For
+each
+</ins><i><ins class="diff-new">
+key
+</ins></i><ins class="diff-new">
+-
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+pair
+in
+</ins><i><ins class="diff-new">
+context
+</ins></i><ins class="diff-new">
+where
+</ins><i><ins class="diff-new">
+key
+</ins></i><ins class="diff-new">
+is
+not
+</ins>
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">@base
+</ins>
+</code>,
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@vocab
+</ins></code>,
+or
+<code>
+<del class="diff-old">@type
+properties,
+throw
+an
+exception.
+</del>
+<ins class="diff-chg">@language
+</ins></code>,<ins class="diff-chg">
+invoke
+the
+</ins><a href="#create-term-definition"><ins class="diff-chg">
+Create
+Term
+Definition
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+for
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+for
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>,<i><ins class="diff-chg">
+key
+</ins></i>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+defined
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Return
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li></ol></section></section><section id="create-term-definition"><h3>
+<del class="diff-old">Issue
+5
+</del>
+<span class="secno">
+<ins class="diff-chg">6.2
+</ins>
+</span>
+<del class="diff-old">Undecided
+if
+@type
+or
+@graph
+can
+take
+</del>
+<ins class="diff-chg">Create
+Term
+Definition
+</ins></h3><p><ins class="diff-chg">
+This
+algorithm
+is
+called
+from
+the
+</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
+Context
+Processing
+algorithm
+</ins></a><ins class="diff-chg">
+to
+create
+</ins>
+a
+<del class="diff-old">@container
+with
+@set
+.
+If
+</del>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+<ins class="diff-chg">term
+definition
+</ins></a><ins class="diff-chg">
+in
+</ins>
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-new">active
+context
+</ins></a><ins class="diff-new">
+for
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+being
+processed
+in
+a
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
+local
+context
+</ins></a>.</p><section class="informative"><h4 id="overview-1"><ins class="diff-new">
+Overview
+</ins></h4><p>
+<em>
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins>
+</em>
+<del class="diff-old">has
+</del>
+</p>
+<p>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+<ins class="diff-chg">Term
+definitions
+</ins></a><ins class="diff-chg">
+are
+created
+by
+parsing
+</ins>
+the
+<del class="diff-old">form
+of
+</del>
+<ins class="diff-chg">information
+in
+the
+given
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+for
+the
+given
+</ins>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+<del class="diff-old">,
+its
+value
+must
+have
+an
+@id
+property
+with
+a
+string
+value
+which
+must
+have
+</del>
+</a>.
+<ins class="diff-chg">If
+</ins>
+the
+<del class="diff-old">form
+of
+a
+</del>
+<ins class="diff-chg">given
+</ins>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+<del class="diff-old">,
+</del>
+</a>
+<ins class="diff-chg">is
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+compact
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>,
+<del class="diff-old">or
+absolute
+IRI
+</del>
+<ins class="diff-chg">it
+may
+omit
+an
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<del class="diff-old">.
+Determine
+the
+</del>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+mapping
+</a>
+by
+<del class="diff-old">performing
+IRI
+Expansion
+</del>
+<ins class="diff-chg">depending
+on
+its
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
+prefix
+</ins></a><ins class="diff-chg">
+having
+its
+own
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a>.<ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
+prefix
+</ins></a><ins class="diff-chg">
+is
+a
+key
+in
+the
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>,<ins class="diff-chg">
+then
+its
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins>
+</a>
+<ins class="diff-new">must
+first
+be
+created,
+through
+recursion,
+before
+continuing.
+Because
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
+term
+definition
+</ins></a><ins class="diff-new">
+can
+depend
+</ins>
+on
+<ins class="diff-new">other
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
+term
+definitions
+</ins></a>,<ins class="diff-new">
+a
+mechanism
+must
+be
+used
+to
+detect
+cyclical
+dependencies.
+The
+solution
+employed
+here
+uses
+a
+map,
+</ins><i><ins class="diff-new">
+defined
+</ins></i>,<ins class="diff-new">
+that
+keeps
+track
+of
+whether
+or
+not
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+has
+been
+defined
+or
+is
+currently
+in
+</ins>
+the
+<del class="diff-old">associated
+value.
+If
+</del>
+<ins class="diff-chg">process
+of
+being
+defined.
+This
+map
+is
+checked
+before
+any
+recursion
+is
+attempted.
+</ins></p><p><ins class="diff-chg">
+After
+all
+dependencies
+for
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+have
+been
+defined,
+</ins>
+the
+<del class="diff-old">result
+</del>
+<ins class="diff-chg">rest
+</ins>
+of
+the
+<del class="diff-old">IRI
+mapping
+</del>
+<ins class="diff-chg">information
+in
+the
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+for
+the
+given
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>
+is
+<del class="diff-old">an
+absolute
+</del>
+<ins class="diff-chg">taken
+into
+account,
+creating
+the
+appropriate
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<ins class="diff-chg">mapping
+</ins>
+</a>,
+<del class="diff-old">merge
+the
+property
+into
+</del>
+<a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">
+<ins class="diff-chg">container
+mapping
+</ins></a>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+for
+</ins>
+the
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a>.</p></section><section><h4 id="algorithm-1"><ins class="diff-chg">
+Algorithm
+</ins></h4><p><ins class="diff-chg">
+The
+algorithm
+has
+four
+required
+inputs
+which
+are:
+an
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+local
+context
+</a>,
+<ins class="diff-chg">a
+</ins><i>
+term
+<del class="diff-old">mapping
+.
+</del>
+</i>,
+<ins class="diff-chg">and
+a
+map
+</ins><i><ins class="diff-chg">
+defined
+</ins></i>.</p><ol class="algorithm">
+<li>
+If
+<i>
+<ins class="diff-new">defined
+</ins></i><ins class="diff-new">
+contains
+</ins>
+the
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">key
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+and
+the
+associated
+value
+is
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+(indicating
+that
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a>
+has
+<ins class="diff-new">already
+been
+created),
+return.
+Otherwise,
+if
+</ins>
+the
+<del class="diff-old">form
+of
+of
+</del>
+<ins class="diff-chg">value
+is
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>,
+a
+<del class="diff-old">compact
+</del>
+<code class="error">
+<a href="#idl-def-JsonLdErrorCode.cyclic-IRI-mapping">
+<ins class="diff-chg">cyclic
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<ins class="diff-new">mapping
+</ins></a>
+</code>
+<ins class="diff-new">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-new">
+Set
+the
+value
+associated
+with
+</ins><i><ins class="diff-new">
+defined
+</ins></i><ins class="diff-new">
+'s
+</ins><i><ins class="diff-new">
+term
+</ins></i><ins class="diff-new">
+key
+to
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
+false
+</ins></a>.<ins class="diff-new">
+This
+indicates
+that
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
+term
+definition
+</ins>
+</a>
+<del class="diff-old">or
+absolute
+IRI
+</del>
+<ins class="diff-chg">is
+now
+being
+created
+but
+is
+not
+yet
+complete.
+</ins></li><li><ins class="diff-chg">
+Since
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a><ins class="diff-chg">
+cannot
+be
+overridden,
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+must
+not
+be
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>.<ins class="diff-chg">
+Otherwise,
+a
+</ins><code class="error">
+<del class="diff-old">,
+</del>
+<a href="#idl-def-JsonLdErrorCode.keyword-redefinition">
+<ins class="diff-chg">keyword
+redefinition
+</ins></a></code><ins class="diff-chg">
+error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Remove
+any
+existing
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>.</li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+value
+<del class="diff-old">may
+have
+</del>
+<ins class="diff-chg">associated
+with
+the
+key
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+or
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+</ins>
+a
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-new">JSON
+object
+</ins></a><ins class="diff-new">
+containing
+the
+key-value
+pair
+</ins>
+<code>
+@id
+</code>
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">-
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+set
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+set
+the
+value
+associated
+</ins>
+with
+<i>
+<ins class="diff-new">defined
+</ins></i><ins class="diff-new">
+'s
+key
+</ins><i><ins class="diff-new">
+term
+</ins></i><ins class="diff-new">
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a>,<ins class="diff-new">
+and
+return.
+</ins></li><li><ins class="diff-new">
+Otherwise,
+if
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+is
+</ins>
+a
+<a class="tref internalDFN" title="string" href="#dfn-string">
+string
+</a>:
+<ol class="algorithm">
+<li>
+<ins class="diff-new">Expand
+</ins><i>
+value
+<del class="diff-old">which
+must
+have
+</del>
+</i>
+<ins class="diff-chg">by
+setting
+it
+to
+</ins>
+the
+<del class="diff-old">form
+</del>
+<ins class="diff-chg">result
+</ins>
+of
+<del class="diff-old">a
+term
+,
+compact
+IRI
+,
+or
+absolute
+IRI
+.
+Determine
+</del>
+<ins class="diff-chg">using
+</ins>
+the
+<del class="diff-old">IRI
+mapping
+by
+performing
+</del>
+<a href="#iri-expansion">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+Expansion
+<ins class="diff-new">algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<i><ins class="diff-new">
+value
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins>
+</a>
+<del class="diff-old">on
+the
+associated
+value.
+</del>
+<ins class="diff-chg">for
+</ins><i><ins class="diff-chg">
+vocab
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+document
+relative
+</ins></i>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+defined
+</ins></i>.</li><li>
+If
+<del class="diff-old">the
+result
+of
+the
+IRI
+mapping
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i>
+is
+<code>
+<ins class="diff-new">@context
+</ins></code>,
+an
+<del class="diff-old">absolute
+</del>
+<code class="error">
+<a href="#idl-def-JsonLdErrorCode.invalid-keyword-alias">
+<ins class="diff-chg">invalid
+keyword
+alias
+</ins></a></code><ins class="diff-chg">
+error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Set
+the
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">,
+merge
+the
+property
+into
+</del>
+<ins class="diff-chg">mapping
+</ins></a><ins class="diff-chg">
+for
+</ins>
+the
+<del class="diff-old">local
+</del>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+<ins class="diff-chg">term
+definition
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+</ins>
+context
+</a>
+<ins class="diff-chg">to
+</ins><i><ins class="diff-chg">
+value
+</ins></i>,<ins class="diff-chg">
+set
+the
+value
+associated
+with
+</ins><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+'s
+key
+</ins><i>
+term
+<del class="diff-old">mapping
+.
+</del>
+</i>
+<ins class="diff-chg">to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<ins class="diff-chg">
+and
+return.
+</ins></li></ol>
+</li>
+<li>
+<del class="diff-old">If
+the
+</del>
+<ins class="diff-chg">Otherwise,
+</ins><i>
+value
+</i>
+<ins class="diff-chg">must
+be
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>,<ins class="diff-chg">
+if
+not,
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-term-definition"><ins class="diff-chg">
+invalid
+term
+definition
+</ins></a></code><ins class="diff-chg">
+error
+</ins>
+has
+<ins class="diff-new">been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-new">
+Create
+</ins>
+a
+<ins class="diff-new">new
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
+term
+definition
+</ins></a>,<i><ins class="diff-new">
+definition
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+contains
+the
+key
+</ins><code><ins class="diff-new">
+@reverse
+</ins></code>:<ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+contains
+an
+</ins><code><ins class="diff-new">
+@id
+</ins></code>,<ins class="diff-new">
+an
+</ins>
+<code>
+@type
+</code>,
+<ins class="diff-new">or
+an
+</ins><code><ins class="diff-new">
+@language
+</ins></code>,<ins class="diff-new">
+member,
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property"><ins class="diff-new">
+invalid
+reverse
+property
+</ins></a>
+</code>
+<del class="diff-old">property,
+its
+</del>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+If
+the
+</ins>
+value
+<del class="diff-old">must
+have
+</del>
+<ins class="diff-chg">associated
+with
+</ins>
+the
+<del class="diff-old">form
+of
+</del>
+<code>
+<ins class="diff-chg">@reverse
+</ins></code><ins class="diff-chg">
+key
+is
+not
+</ins>
+a
+<del class="diff-old">term
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">string
+</ins>
+</a>,
+<del class="diff-old">compact
+IRI
+</del>
+<ins class="diff-chg">an
+</ins><code class="error">
+<del class="diff-old">,
+absolute
+</del>
+<a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">
+<ins class="diff-chg">invalid
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">,
+or
+the
+keyword
+</del>
+<ins class="diff-chg">mapping
+</ins>
+</a>
+<del class="diff-old">@id
+.
+Determine
+</del>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Otherwise,
+set
+</ins>
+the
+<a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">by
+performing
+</del>
+<ins class="diff-chg">mapping
+</ins></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+using
+the
+</ins>
+<a href="#iri-expansion">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+Expansion
+<del class="diff-old">on
+</del>
+<ins class="diff-chg">algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,
+the
+<ins class="diff-new">value
+</ins>
+associated
+<del class="diff-old">value.
+</del>
+<ins class="diff-chg">with
+the
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+key
+for
+</ins><i><ins class="diff-chg">
+value
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+vocab
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+document
+relative
+</ins></i>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+defined
+</ins></i>.
+If
+the
+result
+<del class="diff-old">of
+the
+IRI
+mapping
+</del>
+is
+<ins class="diff-new">not
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>,
+<ins class="diff-new">i.e.,
+it
+contains
+no
+colon
+(
+</ins><code>:</code><ins class="diff-new">
+),
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping"><ins class="diff-new">
+invalid
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+mapping
+</ins>
+</a>
+<del class="diff-old">or
+@id
+,
+merge
+into
+</del>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Set
+</ins>
+the
+<del class="diff-old">local
+context
+coercion
+</del>
+<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
+<ins class="diff-chg">type
+</ins>
+mapping
+</a>
+<del class="diff-old">using
+the
+lexical
+value
+</del>
+of
+<del class="diff-old">the
+property
+.
+</del>
+<i>
+<ins class="diff-chg">definition
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@id
+</ins></code>.
+</li>
+<li>
+If
+<del class="diff-old">the
+</del>
+<i>
+value
+<del class="diff-old">has
+a
+</del>
+</i>
+<ins class="diff-chg">contains
+an
+</ins>
+<code>
+@container
+</code>
+<del class="diff-old">property,
+its
+value
+must
+be
+</del>
+<ins class="diff-chg">member,
+set
+the
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+to
+</ins>
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@index
+</ins>
+</code>
+<del class="diff-old">or
+@set
+.
+Merge
+</del>
+<ins class="diff-chg">if
+that
+is
+</ins>
+the
+<del class="diff-old">list
+mapping
+</del>
+<ins class="diff-chg">value
+of
+the
+</ins><code><ins class="diff-chg">
+@container
+</ins></code><ins class="diff-chg">
+member;
+otherwise
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property"><ins class="diff-chg">
+invalid
+reverse
+property
+</ins>
+</a>
+<del class="diff-old">or
+set
+mapping
+</del>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+(reverse
+properties
+only
+support
+index-containers)
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Set
+the
+</ins><a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property"><ins class="diff-chg">
+reverse
+property
+</ins>
+</a>
+<del class="diff-old">into
+</del>
+<ins class="diff-chg">flag
+of
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>.</li><li><ins class="diff-chg">
+Set
+</ins>
+the
+<del class="diff-old">local
+</del>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+<ins class="diff-chg">term
+definition
+</ins></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+</ins>
+context
+</a>
+<del class="diff-old">using
+</del>
+<ins class="diff-chg">to
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+and
+</ins>
+the
+<del class="diff-old">lexical
+</del>
+value
+<del class="diff-old">of
+</del>
+<ins class="diff-chg">associated
+with
+</ins><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+'s
+key
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+and
+return.
+</ins></li></ol></li><li><ins class="diff-chg">
+Set
+</ins>
+the
+<a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">
+<ins class="diff-chg">reverse
+</ins>
+property
+<del class="diff-old">.
+</del>
+</a>
+<ins class="diff-chg">flag
+of
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>.
+</li>
+<li>
+If
+<del class="diff-old">the
+</del>
+<i>
+value
+<del class="diff-old">has
+a
+@language
+property
+but
+no
+</del>
+</i>
+<ins class="diff-chg">contains
+the
+key
+</ins>
+<code>
+<del class="diff-old">@type
+property,
+</del>
+<ins class="diff-chg">@id
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins>
+the
+value
+<del class="diff-old">of
+</del>
+<ins class="diff-chg">associated
+with
+</ins>
+the
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@id
+</ins>
+</code>
+<del class="diff-old">property
+must
+be
+</del>
+<ins class="diff-chg">key
+is
+not
+</ins>
+a
+<a class="tref internalDFN" title="string" href="#dfn-string">
+string
+</a>,
+<ins class="diff-new">an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping"><ins class="diff-new">
+invalid
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+mapping
+</ins>
+</a>
+<del class="diff-old">or
+null
+.
+Merge
+</del>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Otherwise,
+set
+</ins>
+the
+<del class="diff-old">language
+</del>
+<a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr>
+mapping
+</a>
+<del class="diff-old">into
+</del>
+<ins class="diff-chg">of
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<del class="diff-old">local
+context
+</del>
+<ins class="diff-chg">result
+of
+</ins>
+using
+the
+<del class="diff-old">lexical
+</del>
+<a href="#iri-expansion">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr><ins class="diff-chg">
+Expansion
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<ins class="diff-chg">
+the
+</ins>
+value
+<del class="diff-old">of
+</del>
+<ins class="diff-chg">associated
+with
+</ins>
+the
+<del class="diff-old">property
+.
+</del>
+<code>
+<ins class="diff-chg">@id
+</ins></code><ins class="diff-chg">
+key
+for
+</ins><i><ins class="diff-chg">
+value
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+vocab
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+document
+relative
+</ins></i>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+defined
+</ins></i>.
+</li>
+</ol>
+</li>
+<li>
+<del class="diff-old">Merge
+</del>
+<ins class="diff-chg">Otherwise
+if
+</ins>
+the
+<i>
+<ins class="diff-chg">term
+</ins></i><ins class="diff-chg">
+contains
+a
+colon
+(
+</ins><code>:</code><ins class="diff-chg">
+):
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+with
+a
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
+prefix
+</ins></a><ins class="diff-chg">
+that
+is
+a
+key
+in
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+local
+context
+</a>
+<del class="diff-old">into
+the
+</del>
+<ins class="diff-chg">a
+dependency
+has
+been
+found.
+Use
+this
+algorithm
+recursively
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+<del class="diff-old">.
+</del>
+</a>,
+<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+<ins class="diff-chg">local
+context
+</ins></a>,<ins class="diff-chg">
+the
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
+prefix
+</ins></a><ins class="diff-chg">
+as
+</ins><i><ins class="diff-chg">
+term
+</ins></i>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+defined
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Repeat
+Step
+2.4.2
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+'s
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
+prefix
+</ins>
+</a>
+<del class="diff-old">until
+no
+entries
+are
+added
+to
+the
+local
+</del>
+<ins class="diff-chg">has
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+</ins>
+context
+<del class="diff-old">.
+Note
+</del>
+</a>,
+<ins class="diff-chg">set
+the
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<del class="diff-old">It
+can
+be
+difficult
+to
+distinguish
+between
+a
+compact
+</del>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<ins class="diff-new">mapping
+</ins></a><ins class="diff-new">
+of
+</ins><i><ins class="diff-new">
+definition
+</ins></i><ins class="diff-new">
+to
+the
+result
+of
+concatenating
+the
+value
+associated
+with
+the
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-new">
+prefix
+</ins></a><ins class="diff-new">
+'s
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-new">IRI
+</ins></abbr><ins class="diff-new">
+mapping
+</ins>
+</a>
+and
+<ins class="diff-new">the
+</ins><i><ins class="diff-new">
+term
+</ins></i><ins class="diff-new">
+'s
+</ins><i><ins class="diff-new">
+suffix
+</ins></i>.</li><li><ins class="diff-new">
+Otherwise,
+</ins><i><ins class="diff-new">
+term
+</ins></i><ins class="diff-new">
+is
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">,
+as
+a
+compact
+</del>
+</a>.
+<ins class="diff-chg">Set
+the
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<ins class="diff-chg">mapping
+</ins>
+</a>
+<del class="diff-old">may
+seem
+</del>
+<ins class="diff-chg">of
+</ins><i><ins class="diff-chg">
+definition
+</ins></i>
+to
+<del class="diff-old">be
+</del>
+<i>
+<ins class="diff-chg">term
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+has
+</ins>
+a
+<del class="diff-old">valid
+IRI
+scheme
+.
+When
+performing
+repeated
+</del>
+<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">
+<ins class="diff-chg">vocabulary
+mapping
+</ins></a>,<ins class="diff-chg">
+the
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">expansion,
+a
+</del>
+<ins class="diff-chg">mapping
+</ins></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+is
+set
+to
+the
+result
+of
+concatenating
+the
+value
+associated
+with
+the
+</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
+vocabulary
+mapping
+</ins></a><ins class="diff-chg">
+and
+</ins><i>
+term
+<del class="diff-old">used
+as
+a
+prefix
+may
+</del>
+</i>.
+<ins class="diff-chg">If
+it
+does
+</ins>
+not
+have
+a
+<del class="diff-old">valid
+</del>
+<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">
+<ins class="diff-chg">vocabulary
+</ins>
+mapping
+<del class="diff-old">due
+</del>
+</a>,
+<ins class="diff-chg">an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping"><ins class="diff-chg">
+invalid
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></a></code><ins class="diff-chg">
+error
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins><code><ins class="diff-chg">
+@type
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+type
+</ins></i>
+to
+<del class="diff-old">dependencies
+in
+resolving
+term
+definitions.
+By
+continuing
+Step
+2.3.2
+</del>
+<ins class="diff-chg">the
+value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+key,
+which
+must
+be
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>.<ins class="diff-chg">
+Otherwise,
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-mapping"><ins class="diff-chg">
+invalid
+type
+mapping
+</ins>
+</a>
+<del class="diff-old">until
+no
+changes
+are
+made,
+mappings
+</del>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Set
+</ins><i><ins class="diff-chg">
+type
+</ins></i>
+to
+<del class="diff-old">IRIs
+created
+</del>
+<ins class="diff-chg">the
+result
+of
+</ins>
+using
+<ins class="diff-new">the
+</ins><a href="#iri-expansion"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+Expansion
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<i><ins class="diff-new">
+type
+</ins></i><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+value
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+vocab
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+document
+relative
+</ins></i>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
+local
+context
+</ins></a>,<ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+defined
+</ins></i>.<ins class="diff-new">
+If
+the
+expanded
+</ins><i><ins class="diff-new">
+type
+</ins></i><ins class="diff-new">
+is
+neither
+</ins><code><ins class="diff-new">
+@id
+</ins></code>,<ins class="diff-new">
+nor
+</ins><code><ins class="diff-new">
+@vocab
+</ins></code>,<ins class="diff-new">
+nor
+</ins>
+an
+<del class="diff-old">undefined
+term
+prefix
+will
+eventually
+resolve
+to
+</del>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">s.
+</del>
+</a>,
+<ins class="diff-chg">an
+</ins><code class="error">
+<a href="#idl-def-JsonLdErrorCode.invalid-type-mapping">
+<ins class="diff-chg">invalid
+type
+mapping
+</ins></a>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Set
+the
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+type
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins><code><ins class="diff-chg">
+@container
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+container
+</ins></i><ins class="diff-chg">
+to
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@container
+</ins></code><ins class="diff-chg">
+key,
+which
+must
+be
+either
+</ins><code><ins class="diff-chg">
+@list
+</ins></code>,<code><ins class="diff-chg">
+@set
+</ins></code>,<code><ins class="diff-chg">
+@index
+</ins></code>,<ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@language
+</ins></code>.<ins class="diff-chg">
+Otherwise,
+an
+</ins><code class="error">
+<del class="diff-old">Issue
+6
+</del>
+<a href="#idl-def-JsonLdErrorCode.invalid-container-mapping">
+<ins class="diff-chg">invalid
+container
+mapping
+</ins></a>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Set
+the
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+container
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+and
+does
+not
+contain
+the
+key
+</ins><code><ins class="diff-chg">
+@type
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+language
+</ins></i><ins class="diff-chg">
+to
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+key,
+which
+must
+be
+either
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+or
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>.<ins class="diff-chg">
+Otherwise,
+an
+</ins><code class="error">
+<a href="#idl-def-JsonLdErrorCode.invalid-language-mapping">
+<ins class="diff-chg">invalid
+language
+mapping
+</ins></a>
+<del class="diff-old">Issue
+43
+</del>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+language
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins>
+</a>
+<del class="diff-old">concerns
+performing
+IRI
+expansion
+in
+</del>
+<ins class="diff-chg">set
+it
+to
+lowercased
+</ins><i><ins class="diff-chg">
+language
+</ins></i>.<ins class="diff-chg">
+Set
+</ins>
+the
+<del class="diff-old">key
+position
+</del>
+<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
+<ins class="diff-chg">language
+mapping
+</ins></a>
+of
+<del class="diff-old">a
+</del>
+<i>
+<ins class="diff-chg">definition
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+language
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Set
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+</ins>
+context
+<del class="diff-old">definition.
+</del>
+</a>
+<ins class="diff-chg">to
+</ins><i><ins class="diff-chg">
+definition
+</ins></i><ins class="diff-chg">
+and
+set
+the
+value
+associated
+with
+</ins><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+'s
+key
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>.</li></ol></section></section><section id="iri-expansion">
+<h3>
+<span class="secno">
+<del class="diff-old">4.3
+</del>
+<ins class="diff-chg">6.3
+</ins>
+</span>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+Expansion
+</h3>
+<p>
+<del class="diff-old">Keys
+and
+</del>
+<ins class="diff-chg">In
+JSON-LD
+documents,
+</ins>
+some
+<ins class="diff-new">keys
+and
+</ins>
+values
+<del class="diff-old">are
+evaluated
+to
+produce
+an
+</del>
+<ins class="diff-chg">may
+represent
+</ins>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<del class="diff-old">IRI
+</del>
+<ins class="diff-chg">IRIs
+</ins>
+</a>.
+This
+section
+defines
+an
+algorithm
+for
+transforming
+a
+<del class="diff-old">value
+representing
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">string
+</ins></a><ins class="diff-chg">
+that
+represents
+</ins>
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+into
+an
+<del class="diff-old">actual
+</del>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+<del class="diff-old">.
+</del>
+</abbr>
+</a>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>.<ins class="diff-chg">
+It
+also
+covers
+transforming
+</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
+keyword
+aliases
+</ins></a><ins class="diff-chg">
+into
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a>.
+</p>
+<p>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">s
+</del>
+<ins class="diff-chg">expansion
+</ins>
+may
+<ins class="diff-new">occur
+during
+context
+processing
+or
+during
+any
+of
+the
+other
+JSON-LD
+algorithms.
+If
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+expansion
+occurs
+during
+context
+processing,
+then
+the
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
+local
+context
+</ins></a><ins class="diff-new">
+and
+its
+related
+</ins><i><ins class="diff-new">
+defined
+</ins></i><ins class="diff-new">
+map
+from
+the
+</ins><a href="#context-processing-algorithm"><ins class="diff-new">
+Context
+Processing
+algorithm
+</ins></a><ins class="diff-new">
+are
+passed
+to
+this
+algorithm.
+This
+allows
+for
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
+term
+definition
+</ins></a><ins class="diff-new">
+dependencies
+to
+</ins>
+be
+<del class="diff-old">represented
+as
+</del>
+<ins class="diff-chg">processed
+via
+the
+</ins><a href="#create-term-definition"><ins class="diff-chg">
+Create
+Term
+Definition
+algorithm
+</ins></a>.</p><section class="informative"><h4 id="overview-2"><ins class="diff-chg">
+Overview
+</ins></h4><p><em><ins class="diff-chg">
+This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+In
+order
+to
+expand
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>,
+<ins class="diff-new">we
+must
+first
+determine
+if
+it
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,
+a
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+<del class="diff-old">or
+</del>
+</a>,
+a
+<del class="diff-old">compact
+</del>
+<a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">
+<ins class="diff-chg">keyword
+alias
+</ins></a>,<ins class="diff-chg">
+or
+some
+form
+of
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+<del class="diff-old">An
+</del>
+<ins class="diff-chg">Based
+on
+what
+we
+find,
+we
+handle
+the
+specific
+kind
+of
+expansion;
+for
+example,
+we
+expand
+a
+</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
+keyword
+alias
+</ins></a><ins class="diff-chg">
+to
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+and
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+to
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<ins class="diff-chg">according
+to
+its
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></a><ins class="diff-chg">
+in
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>.<ins class="diff-chg">
+While
+inspecting
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+we
+may
+also
+find
+that
+we
+need
+to
+create
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+dependencies
+because
+we're
+running
+this
+algorithm
+during
+context
+processing.
+We
+can
+tell
+whether
+or
+not
+we're
+running
+during
+context
+processing
+by
+checking
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+against
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.<ins class="diff-chg">
+We
+know
+we
+need
+to
+create
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+in
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+when
+</ins><i><ins class="diff-chg">
+value
+</ins></i>
+is
+<del class="diff-old">defined
+</del>
+<ins class="diff-chg">a
+key
+</ins>
+in
+<del class="diff-old">[
+RFC3987
+</del>
+<ins class="diff-chg">the
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins>
+</a>
+<del class="diff-old">]
+containing
+</del>
+<ins class="diff-chg">and
+the
+</ins><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+map
+does
+not
+have
+</ins>
+a
+<del class="diff-old">scheme
+along
+</del>
+<ins class="diff-chg">key
+for
+</ins><i><ins class="diff-chg">
+value
+</ins></i>
+with
+<del class="diff-old">path
+</del>
+<ins class="diff-chg">an
+associated
+value
+of
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>.<ins class="diff-chg">
+The
+</ins><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+map
+is
+used
+during
+</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
+Context
+Processing
+</ins></a><ins class="diff-chg">
+to
+keep
+track
+of
+which
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a><ins class="diff-chg">
+have
+already
+been
+defined
+or
+are
+in
+the
+process
+of
+being
+defined.
+We
+create
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+by
+using
+the
+</ins><a href="#create-term-definition"><ins class="diff-chg">
+Create
+Term
+Definition
+algorithm
+</ins></a>.</p></section><section><h4 id="algorithm-2"><ins class="diff-chg">
+Algorithm
+</ins></h4><p><ins class="diff-chg">
+The
+algorithm
+takes
+two
+required
+</ins>
+and
+<ins class="diff-new">four
+</ins>
+optional
+<del class="diff-old">query
+</del>
+<ins class="diff-chg">input
+variables.
+The
+required
+inputs
+are
+an
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>
+and
+<del class="diff-old">fragment
+segments.
+A
+</del>
+<ins class="diff-chg">a
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+be
+expanded.
+The
+optional
+inputs
+are
+two
+flags,
+</ins><i><ins class="diff-chg">
+document
+relative
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+vocab
+</ins></i>,<ins class="diff-chg">
+that
+specifying
+whether
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+can
+be
+interpreted
+as
+a
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
+relative
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">is
+an
+IRI
+that
+is
+relative
+some
+other
+absolute
+</del>
+</a>
+<ins class="diff-chg">against
+the
+document's
+base
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">;
+in
+</del>
+<ins class="diff-chg">or
+</ins>
+the
+<del class="diff-old">case
+of
+JSON-LD
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context's
+</ins></a><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
+vocabulary
+mapping
+</ins></a>,<ins class="diff-chg">
+respectively,
+and
+a
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+and
+a
+map
+</ins><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+to
+be
+used
+when
+</ins>
+this
+<ins class="diff-new">algorithm
+</ins>
+is
+<ins class="diff-new">used
+during
+</ins><a href="#context-processing-algorithm"><ins class="diff-new">
+Context
+Processing
+</ins></a>.<ins class="diff-new">
+If
+not
+passed,
+</ins>
+the
+<del class="diff-old">base
+location
+of
+the
+document.
+</del>
+<ins class="diff-chg">two
+flags
+are
+set
+to
+</ins><code><ins class="diff-chg">
+false
+</ins></code><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+are
+initialized
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.
+</p>
+<del class="diff-old">The
+</del>
+<ol class="algorithm">
+<li>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+return
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+as
+is.
+</ins></li><li><ins class="diff-chg">
+If
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+is
+not
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+it
+contains
+a
+key
+that
+equals
+</ins><i><ins class="diff-chg">
+value
+</ins></i>,<ins class="diff-chg">
+and
+the
+value
+associated
+with
+the
+key
+that
+equals
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+is
+not
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<ins class="diff-chg">
+invoke
+the
+</ins><a href="#create-term-definition"><ins class="diff-chg">
+Create
+Term
+Definition
+</ins>
+algorithm
+</a>,
+<ins class="diff-new">passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
+local
+context
+</ins></a>,<i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+as
+</ins><i><ins class="diff-new">
+term
+</ins></i>,<ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+defined
+</ins></i>.<ins class="diff-new">
+This
+will
+ensure
+that
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
+term
+definition
+</ins></a><ins class="diff-new">
+is
+created
+</ins>
+for
+<del class="diff-old">generating
+an
+IRI
+is:
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+during
+</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
+Context
+Processing
+</ins></a>.</li>
+<li>
+If
+<i>
+<ins class="diff-new">vocab
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+and
+</ins>
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+<del class="diff-old">contains
+</del>
+<ins class="diff-chg">has
+</ins>
+a
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+term
+<ins class="diff-new">definition
+</ins>
+</a>
+<del class="diff-old">mapping
+</del>
+for
+<del class="diff-old">the
+</del>
+<i>
+value
+<del class="diff-old">using
+a
+case-sensitive
+comparison,
+use
+</del>
+</i>,
+<ins class="diff-chg">return
+</ins>
+the
+<del class="diff-old">mapped
+</del>
+<ins class="diff-chg">associated
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></a>.</li><li><ins class="diff-chg">
+If
+</ins><i>
+value
+<del class="diff-old">as
+</del>
+</i>
+<ins class="diff-chg">contains
+a
+colon
+(
+</ins><code>:</code><ins class="diff-chg">
+),
+it
+is
+either
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-new">absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+<del class="diff-old">.
+</del>
+</abbr>
+</a>
+<ins class="diff-chg">or
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>:<ol class="algorithm">
+<li>
+<del class="diff-old">Otherwise,
+split
+the
+</del>
+<ins class="diff-chg">Split
+</ins><i>
+value
+</i>
+into
+a
+<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
+prefix
+</a>
+and
+<i>
+suffix
+<del class="diff-old">from
+</del>
+</i>
+<ins class="diff-chg">at
+</ins>
+the
+first
+occurrence
+of
+<del class="diff-old">':'.
+</del>
+<ins class="diff-chg">a
+colon
+(
+</ins><code>:</code><ins class="diff-chg">
+).
+</ins>
+</li>
+<li>
+If
+<del class="diff-old">the
+</del>
+<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
+prefix
+</a>
+is
+<del class="diff-old">a
+'_'
+(underscore),
+the
+</del>
+<ins class="diff-chg">underscore
+(
+</ins><code><ins class="diff-chg">
+_
+</ins></code><ins class="diff-chg">
+)
+or
+</ins><i><ins class="diff-chg">
+suffix
+</ins></i><ins class="diff-chg">
+begins
+with
+double-forward-slash
+(
+</ins><code><ins class="diff-chg">
+//
+</ins></code><ins class="diff-chg">
+),
+return
+</ins><i>
+value
+<del class="diff-old">represents
+</del>
+</i>
+<ins class="diff-chg">as
+it
+is
+already
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+</ins>
+a
+<del class="diff-old">named
+</del>
+<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
+blank
+node
+<ins class="diff-new">identifier
+</ins>
+</a>.
+</li>
+<li>
+If
+<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+<ins class="diff-new">local
+context
+</ins></a><ins class="diff-new">
+is
+not
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+it
+contains
+a
+key
+that
+equals
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-new">
+prefix
+</ins></a>,<ins class="diff-new">
+and
+</ins>
+the
+<ins class="diff-chg">value
+associated
+with
+the
+key
+that
+equals
+</ins><i><ins class="diff-chg">
+prefix
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+defined
+</ins></i><ins class="diff-chg">
+is
+not
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<ins class="diff-chg">
+invoke
+the
+</ins><a href="#create-term-definition"><ins class="diff-chg">
+Create
+Term
+Definition
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>,<i><ins class="diff-chg">
+prefix
+</ins></i><ins class="diff-chg">
+as
+</ins><i><ins class="diff-chg">
+term
+</ins></i>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+defined
+</ins></i>.<ins class="diff-chg">
+This
+will
+ensure
+that
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+is
+created
+for
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
+prefix
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+during
+</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
+Context
+Processing
+</ins></a>.</li><li><ins class="diff-chg">
+If
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+contains
+a
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+term
+<ins class="diff-new">definition
+</ins>
+</a>
+<del class="diff-old">mapping
+</del>
+for
+<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
+prefix
+<del class="diff-old">using
+a
+case-sensitive
+comparison,
+</del>
+</a>,
+<ins class="diff-chg">return
+the
+result
+of
+concatenating
+the
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></a><ins class="diff-chg">
+associated
+with
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
+prefix
+</ins></a>
+and
+<i>
+suffix
+<del class="diff-old">does
+not
+does
+not
+begin
+with
+'//'
+(i.e.,
+</del>
+</i>.
+</li>
+<li>
+<ins class="diff-chg">Return
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+as
+</ins>
+it
+<del class="diff-old">does
+not
+match
+</del>
+<ins class="diff-chg">is
+already
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.</li></ol></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+vocab
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+has
+</ins>
+a
+<del class="diff-old">hier-part
+including
+authority
+(as
+defined
+</del>
+<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">
+<ins class="diff-chg">vocabulary
+mapping
+</ins></a>,<ins class="diff-chg">
+return
+the
+result
+of
+concatenating
+the
+</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
+vocabulary
+mapping
+</ins></a><ins class="diff-chg">
+with
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+document
+relative
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<ins class="diff-chg">
+set
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+resolving
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+against
+the
+</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.<ins class="diff-chg">
+Only
+the
+basic
+algorithm
+</ins>
+in
+<cite>
+<a href="http://tools.ietf.org/html/rfc3986#section-5.2">
+<ins class="diff-new">section
+5.2
+</ins></a></cite><ins class="diff-new">
+of
+</ins>
+[
+<cite>
+<a class="bibref" href="#bib-RFC3986">
+RFC3986
+</a>
+</cite>
+<del class="diff-old">]),
+generate
+an
+</del>
+<ins class="diff-chg">]
+is
+used;
+neither
+</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.2"><ins class="diff-chg">
+Syntax-Based
+Normalization
+</ins></a>
+</cite>
+<ins class="diff-new">nor
+</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.3"><ins class="diff-new">
+Scheme-Based
+Normalization
+</ins></a></cite><ins class="diff-new">
+are
+performed.
+Characters
+additionally
+allowed
+in
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">by
+prepending
+the
+mapped
+prefix
+to
+</del>
+<ins class="diff-chg">references
+are
+treated
+in
+</ins>
+the
+<del class="diff-old">(possibly
+empty)
+suffix
+using
+textual
+concatenation.
+Note
+</del>
+<ins class="diff-chg">same
+way
+</ins>
+that
+<del class="diff-old">an
+empty
+suffix
+and
+no
+suffix
+(meaning
+the
+value
+contains
+no
+':'
+string
+at
+all)
+</del>
+<ins class="diff-chg">unreserved
+characters
+</ins>
+are
+treated
+<del class="diff-old">equivalently.
+</del>
+<ins class="diff-chg">in
+URI
+references,
+per
+</ins><cite><a href="http://tools.ietf.org/html/rfc3987#section-6.5"><ins class="diff-chg">
+section
+6.5
+</ins></a></cite><ins class="diff-chg">
+of
+[
+</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-chg">
+RFC3987
+</ins></a></cite><ins class="diff-chg">
+].
+</ins>
+</li>
+<li>
+<del class="diff-old">Otherwise,
+use
+the
+</del>
+<ins class="diff-chg">If
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+is
+not
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+and
+</ins><i>
+value
+<del class="diff-old">directly
+as
+</del>
+</i>
+<ins class="diff-chg">is
+not
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-new">absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+<del class="diff-old">.
+Note
+</del>
+</abbr>
+</a>,
+<ins class="diff-chg">an
+</ins><code class="error">
+<del class="diff-old">Previous
+versions
+of
+this
+specification
+used
+@base
+and
+@vocab
+to
+define
+</del>
+<a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">
+<ins class="diff-chg">invalid
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">prefixes
+used
+to
+resolve
+relative
+IRIs
+.
+It
+was
+determined
+that
+this
+added
+too
+much
+complexity,
+but
+the
+issue
+can
+be
+re-examined
+in
+the
+future
+based
+on
+community
+input.
+</del>
+<ins class="diff-chg">mapping
+</ins></a>
+</code>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+Otherwise,
+return
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+as
+is.
+</ins></li></ol></section></section></section><section id="expansion-algorithms"><h2>
+<span class="secno">
+<del class="diff-old">4.4
+</del>
+<ins class="diff-chg">7.
+</ins>
+</span>
+<ins class="diff-new">Expansion
+Algorithms
+</ins></h2><section id="expansion-algorithm"><h3>
+<del class="diff-old">IRI
+Compaction
+</del>
+<span class="secno">
+<ins class="diff-chg">7.1
+</ins></span><ins class="diff-chg">
+Expansion
+Algorithm
+</ins>
+</h3>
+<p>
+<del class="diff-old">Some
+keys
+</del>
+<ins class="diff-chg">This
+algorithm
+expands
+a
+JSON-LD
+document,
+such
+that
+all
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+definitions
+are
+removed,
+all
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a>
+and
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+<ins class="diff-new">compact
+IRIs
+</ins></a><ins class="diff-new">
+are
+expanded
+to
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
+absolute
+IRIs
+</ins></a>,<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
+blank
+node
+identifiers
+</ins></a>,<ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
+keywords
+</ins></a><ins class="diff-new">
+and
+all
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-new">
+JSON-LD
+</ins>
+values
+</a>
+are
+expressed
+<del class="diff-old">using
+</del>
+<ins class="diff-chg">in
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+arrays
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form"><ins class="diff-chg">
+expanded
+form
+</ins></a>.</p><section class="informative"><h4 id="overview-3"><ins class="diff-chg">
+Overview
+</ins></h4>
+<del class="diff-old">IRI
+</del>
+<p>
+<del class="diff-old">s.
+</del>
+<em>
+This
+section
+<del class="diff-old">defines
+</del>
+<ins class="diff-chg">is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+Starting
+with
+its
+root
+</ins><i><ins class="diff-chg">
+element
+</ins></i>,<ins class="diff-chg">
+we
+can
+process
+the
+JSON-LD
+document
+recursively,
+until
+we
+have
+a
+fully
+</ins><a class="tref internalDFN" title="expansion" href="#dfn-expansion"><ins class="diff-chg">
+expanded
+</ins></a><i><ins class="diff-chg">
+result
+</ins></i>.<ins class="diff-chg">
+When
+</ins><a class="tref internalDFN" title="expansion" href="#dfn-expansion"><ins class="diff-chg">
+expanding
+</ins></a>
+an
+<i>
+<ins class="diff-new">element
+</ins></i>,<ins class="diff-new">
+we
+can
+treat
+each
+one
+differently
+according
+to
+its
+type,
+in
+order
+to
+break
+down
+the
+problem:
+</ins></p><ol><li><ins class="diff-new">
+If
+the
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+there
+is
+nothing
+to
+expand.
+</ins></li><li><ins class="diff-new">
+Otherwise,
+if
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+is
+a
+</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-new">
+scalar
+</ins></a>,<ins class="diff-new">
+we
+expand
+it
+according
+to
+the
+</ins><a href="#value-expansion"><ins class="diff-new">
+Value
+Expansion
+</ins>
+algorithm
+<del class="diff-old">for
+transforming
+</del>
+</a>.
+</li>
+<li>
+<ins class="diff-chg">Otherwise,
+if
+the
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+is
+</ins>
+an
+<del class="diff-old">IRI
+(
+iri
+)
+to
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a>,<ins class="diff-chg">
+then
+we
+expand
+each
+of
+its
+items
+recursively
+and
+return
+them
+in
+a
+new
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.</li><li><ins class="diff-chg">
+Otherwise,
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+is
+</ins>
+a
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-new">JSON
+object
+</ins></a>.<ins class="diff-new">
+We
+expand
+each
+of
+its
+keys,
+adding
+them
+to
+our
+</ins><i><ins class="diff-new">
+result
+</ins></i>,<ins class="diff-new">
+and
+then
+we
+expand
+each
+value
+for
+each
+key
+recursively.
+Some
+of
+the
+keys
+will
+be
+</ins>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">terms
+</ins>
+</a>
+or
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+compact
+<del class="diff-old">IRI
+</del>
+<ins class="diff-chg">IRIs
+</ins>
+</a>
+<del class="diff-old">using
+the
+term
+</del>
+<ins class="diff-chg">and
+others
+will
+be
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins>
+</a>
+<del class="diff-old">s
+specified
+</del>
+<ins class="diff-chg">or
+simply
+ignored
+because
+they
+do
+not
+have
+definitions
+</ins>
+in
+the
+<del class="diff-old">active
+</del>
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>.
+<ins class="diff-new">Any
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
+IRIs
+</ins>
+</a>
+<ins class="diff-new">will
+be
+expanded
+</ins>
+using
+<del class="diff-old">an
+optional
+value
+.
+4.4.1
+</del>
+<ins class="diff-chg">the
+</ins><a href="#iri-expansion">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">Compaction
+</del>
+<ins class="diff-chg">Expansion
+algorithm
+</ins></a>.</li></ol><p><ins class="diff-chg">
+Finally,
+after
+ensuring
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+is
+in
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>,<ins class="diff-chg">
+we
+return
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</p></section><section><h4 id="algorithm-3">
+Algorithm
+</h4>
+<p>
+The
+algorithm
+<del class="diff-old">for
+generating
+a
+compact
+IRI
+</del>
+<ins class="diff-chg">takes
+three
+input
+variables:
+an
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<ins class="diff-chg">
+an
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>,<ins class="diff-chg">
+and
+an
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+to
+be
+expanded.
+To
+begin,
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+is
+set
+to
+the
+result
+of
+performing,
+</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
+Context
+Processing
+</ins></a><ins class="diff-chg">
+on
+the
+passed
+</ins><code class="idlMemberName">
+<a href="#widl-JsonLdOptions-expandContext">
+<ins class="diff-new">expandContext
+</ins>
+</a>
+<del class="diff-old">is:
+</del>
+</code>,
+<ins class="diff-new">or
+empty
+if
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-new">
+expandContext
+</ins></a></code><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a><ins class="diff-new">
+is
+set
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+is
+set
+to
+the
+</ins><a class="tref internalDFN" title="json-ld-input" href="#dfn-json-ld-input"><ins class="diff-new">
+JSON-LD
+input
+</ins></a>.</p>
+<ol class="algorithm">
+<li>
+<del class="diff-old">Create
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+return
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
+scalar
+</ins></a>,<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code>,<ins class="diff-chg">
+drop
+the
+free-floating
+</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
+scalar
+</ins></a><ins class="diff-chg">
+by
+returning
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</li><li><ins class="diff-chg">
+Return
+the
+result
+of
+the
+</ins><a href="#value-expansion"><ins class="diff-chg">
+Value
+Expansion
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+as
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+is
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>,<ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins>
+an
+empty
+<del class="diff-old">list
+</del>
+<ins class="diff-chg">array,
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li><li><ins class="diff-chg">
+For
+each
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+element
+</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+expanded
+item
+</ins></i><ins class="diff-chg">
+to
+the
+result
+</ins>
+of
+<del class="diff-old">terms
+terms
+that
+will
+</del>
+<ins class="diff-chg">using
+this
+algorithm
+recursively,
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+as
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.</li><li><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+is
+</ins><code><ins class="diff-chg">
+@list
+</ins></code><ins class="diff-chg">
+or
+its
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+is
+set
+to
+</ins><code><ins class="diff-chg">
+@list
+</ins></code>,<ins class="diff-chg">
+the
+</ins><i><ins class="diff-chg">
+expanded
+item
+</ins></i><ins class="diff-chg">
+must
+not
+</ins>
+be
+<del class="diff-old">populated
+with
+term
+</del>
+<ins class="diff-chg">an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins>
+</a>
+<del class="diff-old">s
+that
+are
+ranked
+according
+</del>
+<ins class="diff-chg">or
+a
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins></a>,<ins class="diff-chg">
+otherwise
+a
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists"><ins class="diff-chg">
+list
+of
+lists
+</ins></a></code><ins class="diff-chg">
+error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+expanded
+item
+</ins></i><ins class="diff-chg">
+is
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>,<ins class="diff-chg">
+append
+each
+of
+its
+items
+</ins>
+to
+<del class="diff-old">how
+closely
+they
+match
+value
+.
+Initialize
+highest
+rank
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i>.<ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+expanded
+item
+</ins></i><ins class="diff-chg">
+is
+not
+null,
+append
+it
+</ins>
+to
+<i>
+<ins class="diff-new">result
+</ins></i>.</li></ol></li><li><ins class="diff-new">
+Return
+</ins><i><ins class="diff-new">
+result
+</ins></i>.</li></ol></li><li><ins class="diff-new">
+Otherwise
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+is
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+contains
+the
+key
+</ins>
+<code>
+<del class="diff-old">0
+</del>
+<ins class="diff-chg">@context
+</ins>
+</code>,
+<del class="diff-old">and
+</del>
+set
+<del class="diff-old">a
+flag
+list
+container
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context
+</ins></a>
+to
+<ins class="diff-new">the
+result
+of
+the
+</ins><a href="#context-processing-algorithm"><ins class="diff-new">
+Context
+Processing
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a><ins class="diff-new">
+and
+the
+value
+of
+the
+</ins>
+<code>
+<del class="diff-old">false
+.
+</del>
+<ins class="diff-chg">@context
+</ins></code><ins class="diff-chg">
+key
+as
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>.</li><li><ins class="diff-chg">
+Initialize
+an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>,<i><ins class="diff-chg">
+result
+</ins></i>.
+</li>
+<li>
+For
+each
+<del class="diff-old">term
+</del>
+<i>
+<ins class="diff-chg">key
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i>
+in
+<del class="diff-old">the
+active
+context
+:
+</del>
+<i>
+<ins class="diff-chg">element
+</ins></i>,<ins class="diff-chg">
+ordered
+lexicographically
+by
+</ins><i><ins class="diff-chg">
+key
+</ins></i>:
+<ol class="algorithm">
+<li>
+If
+<i>
+<ins class="diff-new">key
+</ins></i><ins class="diff-new">
+is
+</ins><code><ins class="diff-new">
+@context
+</ins></code>,<ins class="diff-new">
+continue
+to
+</ins>
+the
+<del class="diff-old">term
+'s
+</del>
+<ins class="diff-chg">next
+</ins><i><ins class="diff-chg">
+key
+</ins></i>.</li><li><ins class="diff-chg">
+Set
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+using
+the
+</ins><a href="#iri-expansion">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<ins class="diff-chg">Expansion
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+value
+</ins></i>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins>
+</a>
+<ins class="diff-new">for
+</ins><i><ins class="diff-new">
+vocab
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i>
+is
+<del class="diff-old">not
+</del>
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-chg">null
+</ins></a><ins class="diff-chg">
+or
+it
+neither
+contains
+</ins>
+a
+<del class="diff-old">complete
+match
+against
+iri
+,
+continue
+</del>
+<ins class="diff-chg">colon
+(
+</ins><code>:</code><ins class="diff-chg">
+)
+nor
+it
+is
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>,<ins class="diff-chg">
+drop
+</ins><i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+by
+continuing
+</ins>
+to
+the
+next
+<del class="diff-old">term
+.
+</del>
+<i>
+<ins class="diff-chg">key
+</ins></i>.
+</li>
+<li>
+If
+<del class="diff-old">value
+</del>
+<i>
+<ins class="diff-chg">expanded
+property
+</ins></i>
+is
+a
+<del class="diff-old">JSON
+object
+containing
+only
+the
+</del>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-chg">keyword
+</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+</ins>
+property
+</a>
+<ins class="diff-new">equals
+</ins>
+<code>
+<del class="diff-old">@list
+:
+</del>
+<ins class="diff-chg">@reverse
+</ins></code>,<ins class="diff-chg">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-map"><ins class="diff-chg">
+invalid
+reverse
+property
+map
+</ins></a></code><ins class="diff-chg">
+error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li>
+<li>
+If
+<del class="diff-old">term
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i>
+has
+<ins class="diff-new">already
+an
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i><ins class="diff-new">
+member,
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.colliding-keywords"><ins class="diff-new">
+colliding
+keywords
+</ins></a></code><ins class="diff-new">
+error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i><ins class="diff-new">
+is
+</ins><code><ins class="diff-new">
+@id
+</ins></code><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+is
+not
+</ins>
+a
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-new">string
+</ins></a>,<ins class="diff-new">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--id-value"><ins class="diff-new">
+invalid
+@id
+value
+</ins></a></code><ins class="diff-new">
+error
+has
+been
+detected
+and
+processing
+is
+aborted.
+Otherwise,
+set
+</ins><i><ins class="diff-new">
+expanded
+value
+</ins></i><ins class="diff-new">
+to
+the
+result
+of
+using
+the
+</ins><a href="#iri-expansion"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+Expansion
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<i><ins class="diff-new">
+value
+</ins></i>,<ins class="diff-new">
+and
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+document
+relative
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i><ins class="diff-new">
+is
+</ins>
+<code>
+<del class="diff-old">@container
+</del>
+<ins class="diff-chg">@type
+</ins></code><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+neither
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+nor
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+of
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+strings
+</ins></a>,<ins class="diff-chg">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-value"><ins class="diff-chg">
+invalid
+type
+value
+</ins></a>
+</code>
+<ins class="diff-new">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+Otherwise,
+</ins>
+set
+<i>
+<ins class="diff-new">expanded
+value
+</ins></i><ins class="diff-new">
+to
+the
+result
+of
+using
+the
+</ins><a href="#iri-expansion"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+Expansion
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+vocab
+</ins></i>,<ins class="diff-new">
+and
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+document
+relative
+</ins></i>
+to
+<ins class="diff-new">expand
+the
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+or
+each
+of
+its
+items.
+</ins></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i><ins class="diff-new">
+is
+</ins>
+<code>
+<del class="diff-old">@set
+</del>
+<ins class="diff-chg">@graph
+</ins>
+</code>,
+<del class="diff-old">continue
+</del>
+<ins class="diff-chg">set
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i>
+to
+the
+<del class="diff-old">next
+term
+.
+</del>
+<ins class="diff-chg">result
+of
+using
+this
+algorithm
+recursively
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+for
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.
+</li>
+<li>
+If
+<del class="diff-old">list
+container
+</del>
+<i>
+<ins class="diff-chg">expanded
+property
+</ins></i>
+is
+<code>
+<del class="diff-old">true
+</del>
+<ins class="diff-chg">@value
+</ins>
+</code>
+and
+<del class="diff-old">term
+does
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i><ins class="diff-chg">
+is
+</ins>
+not
+<del class="diff-old">have
+</del>
+a
+<del class="diff-old">container
+</del>
+<a class="tref internalDFN" title="scalar" href="#dfn-scalar">
+<ins class="diff-chg">scalar
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object-value"><ins class="diff-chg">
+invalid
+value
+object
+value
+</ins></a>
+</code>
+<ins class="diff-new">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+Otherwise,
+</ins>
+set
+<i>
+<ins class="diff-new">expanded
+value
+</ins></i>
+to
+<i>
+<ins class="diff-new">value
+</ins></i>.<ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+value
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+set
+the
+</ins>
+<code>
+<del class="diff-old">@list
+,
+continue
+</del>
+<ins class="diff-chg">@value
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+result
+</ins></i>
+to
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-new">null
+</ins></a><ins class="diff-new">
+and
+continue
+with
+</ins>
+the
+next
+<del class="diff-old">term
+.
+</del>
+<i>
+<ins class="diff-chg">key
+</ins></i><ins class="diff-chg">
+from
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.<ins class="diff-chg">
+Null
+values
+need
+to
+be
+preserved
+in
+this
+case
+as
+the
+meaning
+of
+an
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+member
+depends
+on
+the
+existence
+of
+an
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+member.
+</ins>
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+term
+has
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i><ins class="diff-chg">
+is
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+not
+</ins>
+a
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-new">string
+</ins></a>,<ins class="diff-new">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-string"><ins class="diff-new">
+invalid
+language-tagged
+string
+</ins></a></code><ins class="diff-new">
+error
+has
+been
+detected
+and
+processing
+is
+aborted.
+Otherwise,
+set
+</ins><i><ins class="diff-new">
+expanded
+value
+</ins></i><ins class="diff-new">
+to
+lowercased
+</ins><i><ins class="diff-new">
+value
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i><ins class="diff-new">
+is
+</ins>
+<code>
+<del class="diff-old">container
+</del>
+<ins class="diff-chg">@index
+</ins></code><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+not
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,<ins class="diff-chg">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--index-value"><ins class="diff-chg">
+invalid
+@index
+value
+</ins></a>
+</code>
+<ins class="diff-new">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+Otherwise,
+</ins>
+set
+<i>
+<ins class="diff-new">expanded
+value
+</ins></i>
+to
+<i>
+<ins class="diff-new">value
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i><ins class="diff-new">
+is
+</ins>
+<code>
+@list
+</code>:
+<ol class="algorithm">
+<li>
+<ins class="diff-new">If
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a><ins class="diff-new">
+or
+</ins><code><ins class="diff-new">
+@graph
+</ins>
+</code>,
+continue
+<del class="diff-old">to
+</del>
+<ins class="diff-chg">with
+</ins>
+the
+next
+<del class="diff-old">term
+.
+</del>
+<i>
+<ins class="diff-chg">key
+</ins></i><ins class="diff-chg">
+from
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+to
+remove
+the
+free-floating
+list..
+</ins>
+</li>
+<li>
+<del class="diff-old">Set
+rank
+</del>
+<ins class="diff-chg">Otherwise,
+initialize
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i>
+to
+the
+<del class="diff-old">term
+rank
+</del>
+<ins class="diff-chg">result
+</ins>
+of
+<del class="diff-old">value
+by
+passing
+</del>
+<ins class="diff-chg">using
+this
+algorithm
+recursively
+</ins>
+passing
+<del class="diff-old">term
+,
+value
+,
+and
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+<del class="diff-old">to
+the
+Term
+Rank
+Algorithm
+.
+</del>
+</a>,
+<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+<ins class="diff-chg">active
+property
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.
+</li>
+<li>
+If
+<del class="diff-old">rank
+</del>
+<i>
+<ins class="diff-chg">expanded
+value
+</ins></i>
+is
+<del class="diff-old">greater
+than
+0
+:
+If
+term
+has
+</del>
+a
+<del class="diff-old">container
+</del>
+<a class="tref internalDFN" title="list-object" href="#dfn-list-object">
+<ins class="diff-chg">list
+object
+</ins></a>,<ins class="diff-chg">
+a
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists"><ins class="diff-chg">
+list
+of
+lists
+</ins></a>
+</code>
+<del class="diff-old">set
+to
+</del>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li></ol></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i><ins class="diff-chg">
+is
+</ins>
+<code>
+@set
+</code>,
+<del class="diff-old">then
+add
+1
+</del>
+<ins class="diff-chg">set
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i>
+to
+<del class="diff-old">rank
+.
+</del>
+<ins class="diff-chg">the
+result
+of
+using
+this
+algorithm
+recursively,
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.
+</li>
+<li>
+If
+<i>
+<ins class="diff-chg">expanded
+property
+</ins></i><ins class="diff-chg">
+is
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+and
+</ins><i>
+value
+</i>
+is
+<ins class="diff-new">not
+</ins>
+a
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>,
+<ins class="diff-new">an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value"><ins class="diff-new">
+invalid
+@reverse
+value
+</ins>
+</a>
+<del class="diff-old">containing
+only
+the
+property
+@list
+</del>
+</code>
+<ins class="diff-new">error
+has
+been
+detected
+</ins>
+and
+<del class="diff-old">list
+container
+</del>
+<ins class="diff-chg">processing
+</ins>
+is
+<ins class="diff-new">aborted.
+Otherwise
+</ins><ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+expanded
+value
+</ins></i><ins class="diff-new">
+to
+the
+result
+of
+using
+this
+algorithm
+recursively,
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,
+<code>
+<del class="diff-old">false
+</del>
+<ins class="diff-chg">@reverse
+</ins>
+</code>
+<ins class="diff-new">as
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a>,
+and
+<del class="diff-old">term
+has
+a
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i><ins class="diff-chg">
+as
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i><ins class="diff-chg">
+contains
+an
+</ins>
+<code>
+<del class="diff-old">container
+</del>
+<ins class="diff-chg">@reverse
+</ins>
+</code>
+<ins class="diff-new">member,
+i.e.,
+properties
+that
+are
+reversed
+twice,
+execute
+for
+each
+of
+its
+</ins><i><ins class="diff-new">
+property
+</ins></i><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+the
+following
+steps:
+</ins><ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+result
+</ins></i><ins class="diff-new">
+does
+not
+have
+a
+</ins><i><ins class="diff-new">
+property
+</ins></i><ins class="diff-new">
+member,
+create
+one
+and
+</ins>
+set
+<ins class="diff-new">its
+value
+</ins>
+to
+<del class="diff-old">@list
+,
+then
+set
+list
+container
+</del>
+<ins class="diff-chg">an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.</li><li><ins class="diff-chg">
+Append
+</ins><i><ins class="diff-chg">
+item
+</ins></i>
+to
+<ins class="diff-new">the
+value
+of
+the
+</ins><i><ins class="diff-new">
+property
+</ins></i><ins class="diff-new">
+member
+of
+</ins><i><ins class="diff-new">
+result
+</ins></i>.</li></ol></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+value
+</ins></i><ins class="diff-new">
+contains
+members
+other
+than
+</ins>
+<code>
+<del class="diff-old">true
+,
+clear
+terms
+,
+set
+highest
+rank
+to
+rank
+,
+</del>
+<ins class="diff-chg">@reverse
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+does
+not
+have
+an
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+member,
+create
+one
+</ins>
+and
+<del class="diff-old">add
+term
+</del>
+<ins class="diff-chg">set
+its
+value
+</ins>
+to
+<del class="diff-old">terms
+.
+</del>
+<ins class="diff-chg">an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+rank
+is
+greater
+</del>
+<ins class="diff-chg">Reference
+the
+value
+of
+the
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+reverse
+map
+</ins></i>.</li><li><ins class="diff-chg">
+For
+each
+</ins><i><ins class="diff-chg">
+property
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+items
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i><ins class="diff-chg">
+other
+</ins>
+than
+<del class="diff-old">or
+equal
+to
+highest
+rank
+:
+</del>
+<code>
+<ins class="diff-chg">@reverse
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+For
+each
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+items
+</ins></i>:
+<ol class="algorithm">
+<li>
+If
+<del class="diff-old">rank
+</del>
+<i>
+<ins class="diff-chg">item
+</ins></i>
+is
+<del class="diff-old">greater
+than
+highest
+rank
+,
+clear
+terms
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins></a>,<ins class="diff-chg">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value"><ins class="diff-chg">
+invalid
+reverse
+property
+value
+</ins></a></code><ins class="diff-chg">
+has
+been
+detected
+</ins>
+and
+<del class="diff-old">set
+highest
+rank
+</del>
+<ins class="diff-chg">processing
+is
+aborted.
+</ins></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+reverse
+map
+</ins></i><ins class="diff-chg">
+has
+no
+</ins><i><ins class="diff-chg">
+property
+</ins></i><ins class="diff-chg">
+member,
+create
+one
+and
+initialize
+its
+value
+</ins>
+to
+<del class="diff-old">rank
+.
+</del>
+<ins class="diff-chg">an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.
+</li>
+<li>
+<del class="diff-old">Add
+term
+</del>
+<ins class="diff-chg">Append
+</ins><i><ins class="diff-chg">
+item
+</ins></i>
+to
+<del class="diff-old">terms
+.
+</del>
+<ins class="diff-chg">the
+value
+of
+the
+</ins><i><ins class="diff-chg">
+property
+</ins></i><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+reverse
+map
+</ins></i>.
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+<li>
+<del class="diff-old">If
+terms
+</del>
+<ins class="diff-chg">Continue
+with
+the
+next
+</ins><i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+from
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Unless
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i>
+is
+<del class="diff-old">empty,
+add
+a
+compact
+IRI
+representation
+</del>
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-chg">null
+</ins></a>,<ins class="diff-chg">
+set
+the
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i><ins class="diff-chg">
+member
+</ins>
+of
+<del class="diff-old">iri
+for
+each
+term
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i>.</li><li><ins class="diff-chg">
+Continue
+with
+the
+next
+</ins><i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+from
+</ins><i><ins class="diff-chg">
+element.
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+'s
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins>
+</a>
+in
+<del class="diff-old">the
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+<del class="diff-old">which
+maps
+to
+an
+IRI
+</del>
+<ins class="diff-chg">is
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins>
+</a>
+<del class="diff-old">which
+</del>
+<ins class="diff-chg">then
+</ins><i><ins class="diff-chg">
+value
+</ins></i>
+is
+<ins class="diff-new">expanded
+from
+</ins>
+a
+<del class="diff-old">prefix
+for
+iri
+where
+the
+resulting
+compact
+IRI
+</del>
+<a class="tref externalDFN" title="language-map" href="../json-ld/#dfn-language-map">
+<ins class="diff-chg">language
+map
+</ins>
+</a>
+<ins class="diff-new">as
+follows:
+</ins><ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+expanded
+value
+</ins></i><ins class="diff-new">
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>.</li><li><ins class="diff-new">
+For
+each
+key-value
+pair
+</ins><i><ins class="diff-new">
+language
+</ins></i><ins class="diff-new">
+-
+</ins><i><ins class="diff-new">
+language
+value
+</ins></i><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+value
+</ins></i>,<ins class="diff-new">
+ordered
+lexicographically
+by
+</ins><i><ins class="diff-new">
+language
+</ins></i>:<ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+language
+value
+</ins></i>
+is
+not
+<del class="diff-old">a
+term
+</del>
+<ins class="diff-chg">an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+set
+it
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins>
+</a>
+<ins class="diff-new">containing
+only
+</ins><i><ins class="diff-new">
+language
+value
+</ins></i>.</li><li><ins class="diff-new">
+For
+each
+</ins><i><ins class="diff-new">
+item
+</ins></i>
+in
+<del class="diff-old">the
+active
+context
+.
+The
+resulting
+compact
+IRI
+</del>
+<i>
+<ins class="diff-chg">language
+value
+</ins></i>:<ol class="algorithm"><li>
+<i>
+<ins class="diff-new">item
+</ins></i><ins class="diff-new">
+must
+be
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+string
+</ins></a>,<ins class="diff-new">
+otherwise
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-map-value"><ins class="diff-new">
+invalid
+language
+map
+value
+</ins>
+</a>
+</code>
+<ins class="diff-new">error
+has
+been
+detected
+and
+processing
+</ins>
+is
+<del class="diff-old">the
+term
+</del>
+<ins class="diff-chg">aborted.
+</ins></li><li><ins class="diff-chg">
+Append
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i><ins class="diff-chg">
+that
+consists
+of
+two
+key-value
+pairs:
+(
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+-
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+)
+and
+(
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+-lowercased
+</ins><i><ins class="diff-chg">
+language
+</ins></i><ins class="diff-chg">
+).
+</ins></li></ol></li></ol></li></ol></li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+'s
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins>
+</a>
+<del class="diff-old">associated
+with
+the
+partially
+matched
+IRI
+</del>
+in
+<del class="diff-old">the
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+<del class="diff-old">concatenated
+with
+a
+colon
+(:)
+character
+</del>
+<ins class="diff-chg">is
+</ins><code><ins class="diff-chg">
+@index
+</ins></code>
+and
+<del class="diff-old">the
+unmatched
+part
+of
+iri
+.
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+then
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+expanded
+from
+an
+index
+map
+as
+follows:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i><ins class="diff-chg">
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.
+</li>
+<li>
+<ins class="diff-new">For
+each
+key-value
+pair
+</ins><i><ins class="diff-new">
+index
+</ins></i><ins class="diff-new">
+-
+</ins><i><ins class="diff-new">
+index
+value
+</ins></i><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+value
+</ins></i>,<ins class="diff-new">
+ordered
+lexicographically
+by
+</ins><i><ins class="diff-new">
+index
+</ins></i>:<ol class="algorithm"><li>
+If
+<del class="diff-old">terms
+</del>
+<i>
+<ins class="diff-chg">index
+value
+</ins></i>
+is
+<del class="diff-old">empty,
+return
+iri
+.
+</del>
+<ins class="diff-chg">not
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+set
+it
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+containing
+only
+</ins><i><ins class="diff-chg">
+index
+value
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+return
+</del>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+index
+value
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<del class="diff-old">shortest
+</del>
+<ins class="diff-chg">result
+of
+using
+this
+algorithm
+recursively,
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+as
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>,
+and
+<del class="diff-old">lexicographically
+least
+</del>
+<i>
+<ins class="diff-chg">index
+</ins>
+value
+<del class="diff-old">in
+terms
+.
+</del>
+</i>
+<ins class="diff-chg">as
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.
+</li>
+<del class="diff-old">4.4.2
+Term
+Rank
+Algorithm
+When
+selecting
+among
+multiple
+possible
+terms
+for
+a
+given
+property,
+it
+may
+be
+that
+multiple
+terms
+are
+defined
+with
+the
+same
+IRI
+,
+but
+differ
+</del>
+<li>
+<ins class="diff-chg">For
+each
+</ins><i><ins class="diff-chg">
+item
+</ins></i>
+in
+<i>
+<ins class="diff-new">index
+value
+</ins></i>:<ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+does
+not
+have
+the
+key
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@index
+</ins>
+</code>,
+<ins class="diff-new">add
+the
+key-value
+pair
+(
+</ins>
+<code>
+<del class="diff-old">@container
+</del>
+<ins class="diff-chg">@index
+</ins>
+</code>
+<del class="diff-old">or
+@language
+.
+The
+purpose
+</del>
+<ins class="diff-chg">-
+</ins><i><ins class="diff-chg">
+index
+</ins></i><ins class="diff-chg">
+)
+to
+</ins><i><ins class="diff-chg">
+item
+</ins></i>.</li><li><ins class="diff-chg">
+Append
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i>.</li></ol></li></ol></li></ol></li><li><ins class="diff-chg">
+Otherwise,
+initialize
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i><ins class="diff-chg">
+to
+the
+result
+</ins>
+of
+<ins class="diff-new">using
+</ins>
+this
+algorithm
+<ins class="diff-new">recursively,
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<i><ins class="diff-new">
+key
+</ins></i><ins class="diff-new">
+for
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a>,<ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+element
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+value
+</ins></i>
+is
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-new">null
+</ins></a>,<ins class="diff-new">
+ignore
+</ins><i><ins class="diff-new">
+key
+</ins></i><ins class="diff-new">
+by
+continuing
+</ins>
+to
+<del class="diff-old">take
+a
+term
+</del>
+<ins class="diff-chg">the
+next
+</ins><i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+from
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.</li><li><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+associated
+to
+</ins><i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins>
+</a>
+<ins class="diff-new">is
+</ins><code><ins class="diff-new">
+@list
+</ins></code>
+and
+<i>
+<ins class="diff-new">expanded
+value
+</ins></i><ins class="diff-new">
+is
+not
+already
+</ins>
+a
+<a class="tref internalDFN" title="list-object" href="#dfn-list-object">
+<ins class="diff-new">list
+object
+</ins></a>,<ins class="diff-new">
+convert
+</ins><i><ins class="diff-new">
+expanded
+</ins>
+value
+</i>
+<ins class="diff-new">to
+a
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
+list
+object
+</ins></a><ins class="diff-new">
+by
+first
+setting
+it
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+containing
+only
+</ins><i><ins class="diff-new">
+expanded
+value
+</ins></i><ins class="diff-new">
+if
+it
+is
+not
+already
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>,
+and
+<del class="diff-old">give
+</del>
+<ins class="diff-chg">then
+by
+setting
+</ins>
+it
+<ins class="diff-new">to
+</ins>
+a
+<del class="diff-old">term
+rank
+.
+The
+selection
+can
+then
+be
+based,
+partly,
+on
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins></a><ins class="diff-chg">
+containing
+</ins>
+the
+<del class="diff-old">term
+having
+</del>
+<ins class="diff-chg">key-value
+pair
+</ins><code><ins class="diff-chg">
+@list
+</ins></code><ins class="diff-chg">
+-
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins>
+the
+<del class="diff-old">highest
+</del>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+term
+<del class="diff-old">rank
+.
+Given
+</del>
+<ins class="diff-chg">definition
+</ins></a><ins class="diff-chg">
+associated
+to
+</ins><i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+indicates
+that
+it
+is
+</ins>
+a
+<del class="diff-old">term
+</del>
+<a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">
+<ins class="diff-chg">reverse
+property
+</ins>
+</a>
+<del class="diff-old">term
+,
+value
+,
+</del>
+<ol class="algorithm">
+<li>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+has
+no
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+member,
+create
+one
+</ins>
+and
+<del class="diff-old">active
+context
+determine
+</del>
+<ins class="diff-chg">initialize
+its
+value
+to
+an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>.</li><li><ins class="diff-chg">
+Reference
+</ins>
+the
+<del class="diff-old">term
+rank
+</del>
+<ins class="diff-chg">value
+of
+the
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+result
+</ins></i>
+using
+the
+<del class="diff-old">following
+steps:
+</del>
+<ins class="diff-chg">variable
+</ins><i><ins class="diff-chg">
+reverse
+map
+</ins></i>.</li>
+<li>
+If
+<i>
+<ins class="diff-chg">expanded
+</ins>
+value
+</i>
+is
+<del class="diff-old">null
+</del>
+<ins class="diff-chg">not
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins>
+</a>,
+<del class="diff-old">term
+rank
+</del>
+<ins class="diff-chg">set
+it
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins>
+</a>
+<del class="diff-old">is
+3
+.
+</del>
+<ins class="diff-chg">containing
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+</del>
+<ins class="diff-chg">For
+each
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+expanded
+</ins>
+value
+</i>
+<ol class="algorithm">
+<li>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+item
+</ins></i>
+is
+a
+<del class="diff-old">JSON
+</del>
+<a class="tref internalDFN" title="value-object" href="#dfn-value-object">
+<ins class="diff-chg">value
+</ins>
+object
+</a>
+<del class="diff-old">containing
+only
+the
+</del>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins></a>,<ins class="diff-chg">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value"><ins class="diff-chg">
+invalid
+reverse
+</ins>
+property
+<del class="diff-old">@list
+:
+</del>
+<ins class="diff-chg">value
+</ins></a></code><ins class="diff-chg">
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li>
+<li>
+If
+<del class="diff-old">the
+@list
+</del>
+<i>
+<ins class="diff-chg">reverse
+map
+</ins></i><ins class="diff-chg">
+has
+no
+</ins><i><ins class="diff-chg">
+expanded
+</ins>
+property
+<del class="diff-old">is
+</del>
+</i>
+<ins class="diff-chg">member,
+create
+one
+and
+initialize
+its
+value
+to
+</ins>
+an
+empty
+<del class="diff-old">array,
+if
+term
+has
+@container
+set
+to
+@list
+,
+term
+rank
+is
+1
+,
+otherwise
+0
+.
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+return
+</del>
+<ins class="diff-chg">Append
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<del class="diff-old">sum
+</del>
+<ins class="diff-chg">value
+</ins>
+of
+the
+<del class="diff-old">term
+rank
+s
+for
+every
+entry
+in
+the
+list.
+</del>
+<i>
+<ins class="diff-chg">expanded
+property
+</ins></i><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+reverse
+map
+</ins></i>.</li></ol>
+</li>
+</ol>
+</li>
+<li>
+Otherwise,
+<del class="diff-old">value
+must
+be
+a
+subject
+definition
+,
+subject
+reference
+,
+or
+a
+JSON
+object
+having
+</del>
+<ins class="diff-chg">if
+</ins><i><ins class="diff-chg">
+key
+</ins></i><ins class="diff-chg">
+is
+not
+</ins>
+a
+<del class="diff-old">@value
+.
+</del>
+<a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">
+<ins class="diff-chg">reverse
+property
+</ins></a>:
+<ol class="algorithm">
+<li>
+If
+<i>
+<ins class="diff-chg">result
+</ins></i><ins class="diff-chg">
+does
+not
+have
+an
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i><ins class="diff-chg">
+member,
+create
+one
+and
+initialize
+its
+</ins>
+value
+<del class="diff-old">has
+a
+@value
+property:
+</del>
+<ins class="diff-chg">to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.</li>
+<li>
+<del class="diff-old">If
+</del>
+<ins class="diff-chg">Append
+</ins><i><ins class="diff-chg">
+expanded
+</ins>
+value
+<del class="diff-old">has
+a
+@type
+</del>
+</i>
+<ins class="diff-chg">to
+value
+of
+the
+</ins><i><ins class="diff-chg">
+expanded
+</ins>
+property
+<del class="diff-old">matching
+a
+</del>
+</i>
+<ins class="diff-chg">member
+of
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li></ol></li></ol></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins>
+<code>
+<del class="diff-old">@type
+coercion
+for
+term
+,
+term
+rank
+is
+</del>
+<ins class="diff-chg">@value
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+The
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+must
+not
+contain
+any
+keys
+other
+than
+</ins>
+<code>
+<del class="diff-old">3
+</del>
+<ins class="diff-chg">@value
+</ins>
+</code>,
+<del class="diff-old">otherwise
+if
+term
+has
+no
+@type
+coercion
+and
+no
+</del>
+<code>
+@language
+</code>,
+<del class="diff-old">term
+rank
+is
+</del>
+<code>
+<del class="diff-old">1
+</del>
+<ins class="diff-chg">@type
+</ins>
+</code>,
+<del class="diff-old">otherwise
+</del>
+<ins class="diff-chg">and
+</ins>
+<code>
+<del class="diff-old">0
+</del>
+<ins class="diff-chg">@index
+</ins>
+</code>.
+<del class="diff-old">Otherwise,
+if
+</del>
+<ins class="diff-chg">It
+must
+not
+contain
+both
+the
+</ins>
+<code>
+<del class="diff-old">@value
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<del class="diff-old">is
+not
+a
+string
+,
+if
+term
+has
+no
+</del>
+<ins class="diff-chg">key
+and
+the
+</ins>
+<code>
+@type
+</code>
+<del class="diff-old">or
+@language
+</del>
+<ins class="diff-chg">key.
+Otherwise,
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object"><ins class="diff-chg">
+invalid
+value
+object
+</ins></a>
+</code>
+<del class="diff-old">it
+</del>
+<ins class="diff-chg">error
+has
+been
+detected
+and
+processing
+</ins>
+is
+<del class="diff-old">2
+,
+otherwise
+1
+.
+</del>
+<ins class="diff-chg">aborted.
+</ins>
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+</del>
+<ins class="diff-chg">If
+the
+</ins>
+value
+<del class="diff-old">has
+no
+@language
+property,
+if
+term
+has
+</del>
+<ins class="diff-chg">of
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+'s
+</ins>
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@value
+</ins>
+</code>
+<ins class="diff-new">key
+is
+</ins>
+<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>,
+<del class="diff-old">or
+term
+has
+no
+@type
+or
+</del>
+<ins class="diff-chg">then
+set
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+the
+value
+of
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+'s
+</ins>
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@value
+</ins>
+</code>
+<ins class="diff-new">member
+is
+not
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+string
+</ins></a>
+and
+<i>
+<ins class="diff-new">result
+</ins></i><ins class="diff-new">
+contains
+</ins>
+the
+<del class="diff-old">active
+context
+has
+no
+</del>
+<ins class="diff-chg">key
+</ins>
+<code>
+@language
+</code>,
+<del class="diff-old">term
+rank
+</del>
+<ins class="diff-chg">an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-value"><ins class="diff-chg">
+invalid
+language-tagged
+value
+</ins></a></code><ins class="diff-chg">
+error
+has
+been
+detected
+(only
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+strings
+</ins>
+</a>
+<ins class="diff-new">can
+be
+language-tagged)
+and
+processing
+</ins>
+is
+<del class="diff-old">3
+,
+otherwise
+0
+.
+</del>
+<ins class="diff-chg">aborted.
+</ins>
+</li>
+<li>
+Otherwise,
+if
+<del class="diff-old">value
+</del>
+<ins class="diff-chg">the
+</ins><i><ins class="diff-chg">
+result
+</ins></i>
+has
+a
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@type
+</ins>
+</code>
+<del class="diff-old">property
+matching
+</del>
+<ins class="diff-chg">member
+and
+its
+value
+is
+not
+</ins>
+a
+<del class="diff-old">@language
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">string
+</ins></a>,<ins class="diff-chg">
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-typed-value"><ins class="diff-chg">
+invalid
+typed
+value
+</ins></a>
+</code>
+<del class="diff-old">definition
+for
+term
+(or
+term
+</del>
+<ins class="diff-chg">error
+</ins>
+has
+<del class="diff-old">no
+</del>
+<ins class="diff-chg">been
+detected
+and
+processing
+is
+aborted.
+</ins></li></ol></li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins>
+<code>
+@type
+</code>
+<del class="diff-old">or
+@language
+definition
+</del>
+and
+<del class="diff-old">@language
+in
+the
+active
+context
+matches
+the
+</del>
+<ins class="diff-chg">its
+associated
+</ins>
+value
+<del class="diff-old">@language
+),
+term
+rank
+</del>
+is
+<del class="diff-old">3
+,
+otherwise
+</del>
+<ins class="diff-chg">not
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>,<ins class="diff-chg">
+set
+it
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+containing
+only
+the
+associated
+value.
+</ins></li><li><ins class="diff-chg">
+Otherwise,
+</ins>
+if
+<del class="diff-old">term
+has
+no
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@set
+</ins>
+</code>
+<del class="diff-old">coercion
+</del>
+<ins class="diff-chg">or
+</ins><code><ins class="diff-chg">
+@list
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+The
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+must
+contain
+at
+most
+one
+other
+key
+</ins>
+and
+<del class="diff-old">no
+</del>
+<ins class="diff-chg">that
+key
+must
+be
+</ins>
+<code>
+<del class="diff-old">@language
+,
+term
+rank
+</del>
+<ins class="diff-chg">@index
+</ins></code>.<ins class="diff-chg">
+Otherwise,
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-set-or-list-object"><ins class="diff-chg">
+invalid
+set
+or
+list
+object
+</ins>
+</a>
+</code>
+<ins class="diff-new">error
+has
+been
+detected
+and
+processing
+</ins>
+is
+<ins class="diff-new">aborted.
+</ins></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+result
+</ins></i><ins class="diff-new">
+contains
+the
+key
+</ins>
+<code>
+<del class="diff-old">1
+</del>
+<ins class="diff-chg">@set
+</ins>
+</code>,
+<del class="diff-old">otherwise
+0
+.
+</del>
+<ins class="diff-chg">then
+set
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+the
+key's
+associated
+value.
+</ins>
+</li>
+</ol>
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+term
+has
+@type
+coerced
+to
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+contains
+only
+the
+key
+</ins>
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>,
+<del class="diff-old">term
+rank
+</del>
+<ins class="diff-chg">set
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</li><li><ins class="diff-chg">
+If
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins>
+</a>
+is
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-new">null
+</ins></a><ins class="diff-new">
+or
+</ins>
+<code>
+<del class="diff-old">3
+</del>
+<ins class="diff-chg">@graph
+</ins>
+</code>,
+<del class="diff-old">otherwise
+if
+term
+has
+no
+</del>
+<ins class="diff-chg">drop
+free-floating
+values
+as
+follows:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+is
+an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+or
+contains
+the
+keys
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@value
+</ins>
+</code>
+<del class="diff-old">coercion
+and
+no
+</del>
+<ins class="diff-chg">or
+</ins>
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@list
+</ins>
+</code>,
+<del class="diff-old">term
+rank
+</del>
+<ins class="diff-chg">set
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins>
+</a>
+<ins class="diff-new">whose
+only
+key
+</ins>
+is
+<code>
+<del class="diff-old">1
+</del>
+<ins class="diff-chg">@id
+</ins>
+</code>,
+<del class="diff-old">otherwise
+0
+.
+</del>
+<ins class="diff-chg">set
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.
+</li>
+</ol>
+</li>
+<li>
+Return
+<del class="diff-old">term
+rank
+.
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i>.
+</li>
+</ol>
+<p>
+<ins class="diff-chg">If,
+after
+the
+above
+algorithm
+is
+run,
+the
+result
+is
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+that
+contains
+only
+an
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+key,
+set
+the
+result
+to
+the
+value
+of
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+'s
+value.
+Otherwise,
+if
+the
+result
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+set
+it
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.<ins class="diff-chg">
+Finally,
+if
+the
+result
+is
+not
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>,<ins class="diff-chg">
+then
+set
+the
+result
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+containing
+only
+the
+result.
+</ins></p></section></section><section id="value-expansion">
+<h3>
+<span class="secno">
+<del class="diff-old">4.5
+</del>
+<ins class="diff-chg">7.2
+</ins>
+</span>
+Value
+Expansion
+</h3>
+<p>
+Some
+values
+in
+JSON-LD
+can
+be
+expressed
+in
+a
+<a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form">
+compact
+<del class="diff-old">form.
+</del>
+<ins class="diff-chg">form
+</ins></a>.
+These
+values
+are
+required
+to
+be
+<a class="tref internalDFN" title="expansion" href="#dfn-expansion">
+expanded
+</a>
+at
+times
+when
+processing
+JSON-LD
+documents.
+<del class="diff-old">The
+algorithm
+for
+expanding
+a
+</del>
+<ins class="diff-chg">A
+</ins>
+value
+<del class="diff-old">takes
+an
+active
+property
+and
+active
+context
+.
+It
+</del>
+is
+<del class="diff-old">implemented
+as
+follows:
+</del>
+<ins class="diff-chg">said
+to
+be
+in
+</ins><dfn title="expanded-form" id="dfn-expanded-form"><ins class="diff-chg">
+expanded
+form
+</ins></dfn><ins class="diff-chg">
+after
+the
+application
+of
+this
+algorithm.
+</ins>
+</p>
+<del class="diff-old">If
+</del>
+<section class="informative">
+<h4 id="overview-4">
+<ins class="diff-chg">Overview
+</ins></h4><p>
+<em>
+<del class="diff-old">value
+</del>
+<ins class="diff-chg">This
+section
+</ins>
+is
+<del class="diff-old">null
+,
+the
+value
+</del>
+<ins class="diff-chg">non-normative.
+</ins>
+</em>
+<del class="diff-old">is
+already
+expanded.
+</del>
+</p>
+<p>
+If
+<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+property
+</a>
+<del class="diff-old">is
+@graph
+or
+</del>
+<ins class="diff-chg">has
+a
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+in
+</ins>
+the
+<del class="diff-old">target
+of
+an
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context
+</ins></a><ins class="diff-chg">
+set
+to
+</ins>
+<code>
+@id
+</code>
+<del class="diff-old">coercion,
+expand
+the
+value
+into
+an
+</del>
+<ins class="diff-chg">or
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+</ins>
+object
+</a>
+with
+a
+<del class="diff-old">key-value
+pair
+where
+the
+key
+is
+</del>
+<ins class="diff-chg">single
+member
+</ins>
+<code>
+@id
+</code>
+<del class="diff-old">and
+the
+</del>
+<ins class="diff-chg">whose
+</ins>
+value
+is
+the
+<del class="diff-old">expanded
+IRI
+according
+to
+</del>
+<ins class="diff-chg">result
+of
+using
+</ins>
+the
+<a href="#iri-expansion">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+Expansion
+<ins class="diff-new">algorithm
+</ins>
+</a>
+<del class="diff-old">rules.
+Otherwise,
+if
+active
+property
+</del>
+<ins class="diff-chg">on
+</ins><i><ins class="diff-chg">
+value
+</ins></i>
+is
+<del class="diff-old">not
+</del>
+<ins class="diff-chg">returned.
+</ins></p><p><ins class="diff-chg">
+Otherwise,
+the
+result
+will
+be
+</ins>
+a
+<del class="diff-old">keyword
+,
+then
+expand
+value
+into
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins></a><ins class="diff-chg">
+containing
+</ins>
+an
+<del class="diff-old">object:
+Set
+the
+first
+key-value
+pair
+to
+</del>
+<code>
+@value
+</code>
+<del class="diff-old">and
+the
+unexpanded
+</del>
+<ins class="diff-chg">member
+whose
+</ins>
+value
+<del class="diff-old">.
+If
+the
+active
+property
+</del>
+is
+the
+<del class="diff-old">target
+of
+typed
+literal
+coercion,
+set
+the
+second
+key-value
+pair
+to
+</del>
+<ins class="diff-chg">passed
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.<ins class="diff-chg">
+Additionally,
+an
+</ins>
+<code>
+@type
+</code>
+<del class="diff-old">and
+the
+associated
+coercion
+datatype
+expanded
+according
+to
+the
+IRI
+Expansion
+rules.
+Otherwise,
+</del>
+<ins class="diff-chg">member
+will
+be
+included
+</ins>
+if
+<ins class="diff-new">there
+is
+a
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+associated
+with
+</ins>
+the
+<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+property
+</a>
+<del class="diff-old">is
+the
+target
+of
+language
+tagging,
+set
+the
+second
+key-value
+pair
+to
+</del>
+<ins class="diff-chg">or
+an
+</ins>
+<code>
+@language
+</code>
+<del class="diff-old">and
+</del>
+<ins class="diff-chg">member
+if
+</ins><i>
+value
+<del class="diff-old">of
+the
+</del>
+</i>
+<ins class="diff-chg">is
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+and
+there
+is
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
+language
+<del class="diff-old">tagging
+from
+</del>
+<ins class="diff-chg">mapping
+</ins></a><ins class="diff-chg">
+associated
+with
+</ins>
+the
+<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+<del class="diff-old">context
+</del>
+<ins class="diff-chg">property
+</ins>
+</a>.
+<del class="diff-old">Otherwise,
+value
+is
+already
+expanded.
+4.6
+Value
+Compaction
+Some
+values,
+such
+as
+IRIs
+and
+typed
+literals
+,
+may
+be
+expressed
+in
+an
+expanded
+form
+in
+JSON-LD.
+These
+values
+are
+required
+to
+be
+compacted
+at
+times
+when
+processing
+JSON-LD
+documents.
+</del>
+</p>
+</section>
+<section>
+<h4 id="algorithm-4">
+<ins class="diff-new">Algorithm
+</ins></h4>
+<p>
+The
+algorithm
+<del class="diff-old">for
+compacting
+an
+expanded
+value
+value
+</del>
+takes
+<ins class="diff-new">three
+required
+inputs:
+</ins>
+an
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context
+</ins></a>,<ins class="diff-chg">
+an
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+property
+</a>,
+and
+<del class="diff-old">active
+context
+.
+It
+is
+implemented
+as
+follows:
+</del>
+<ins class="diff-chg">a
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+expand.
+</ins>
+</p>
+<ol class="algorithm">
+<li>
+If
+<del class="diff-old">value
+only
+has
+one
+property
+and
+</del>
+the
+<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+<del class="diff-old">context
+</del>
+<ins class="diff-chg">property
+</ins>
+</a>
+has
+<del class="diff-old">no
+default
+language,
+then
+the
+compacted
+value
+is
+the
+value
+of
+@value
+.
+Otherwise,
+if
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">context
+</ins>
+</a>
+<ins class="diff-new">that
+</ins>
+is
+<code>
+<del class="diff-old">@graph
+</del>
+<ins class="diff-chg">@id
+</ins>
+</code>,
+<ins class="diff-new">return
+a
+new
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a><ins class="diff-new">
+containing
+a
+single
+key-value
+pair
+where
+</ins>
+the
+<del class="diff-old">compacted
+value
+</del>
+<ins class="diff-chg">key
+</ins>
+is
+<del class="diff-old">the
+value
+associated
+with
+the
+</del>
+<code>
+@id
+</code>
+<del class="diff-old">key,
+processed
+according
+to
+</del>
+<ins class="diff-chg">and
+</ins>
+the
+<ins class="diff-chg">value
+is
+the
+result
+of
+using
+the
+</ins><a href="#iri-expansion">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">Compaction
+</del>
+<ins class="diff-chg">Expansion
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<i><ins class="diff-chg">
+value
+</ins></i>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins>
+</a>
+<del class="diff-old">steps.
+</del>
+<ins class="diff-chg">for
+</ins><i><ins class="diff-chg">
+document
+relative
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+the
+</del>
+<ins class="diff-chg">If
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+has
+a
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+<del class="diff-old">contains
+</del>
+<ins class="diff-chg">that
+is
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code>,<ins class="diff-chg">
+return
+</ins>
+a
+<del class="diff-old">coercion
+target
+for
+</del>
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+containing
+a
+single
+key-value
+pair
+where
+</ins>
+the
+key
+<del class="diff-old">that
+matches
+the
+expression
+of
+the
+value,
+compact
+the
+value
+using
+the
+following
+steps:
+If
+the
+coercion
+target
+</del>
+is
+<del class="diff-old">an
+</del>
+<code>
+@id
+<del class="diff-old">,
+</del>
+</code>
+<ins class="diff-chg">and
+</ins>
+the
+<del class="diff-old">compacted
+</del>
+value
+is
+the
+<del class="diff-old">value
+associated
+with
+the
+@id
+key,
+processed
+according
+to
+</del>
+<ins class="diff-chg">result
+of
+using
+</ins>
+the
+<a href="#iri-expansion">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">Compaction
+</del>
+<ins class="diff-chg">Expansion
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<i><ins class="diff-chg">
+value
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins>
+</a>
+<del class="diff-old">steps.
+</del>
+<ins class="diff-chg">for
+</ins><i><ins class="diff-chg">
+vocab
+</ins></i>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+document
+relative
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">If
+the
+coercion
+target
+</del>
+<ins class="diff-chg">Otherwise,
+initialize
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+with
+an
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+member
+whose
+value
+</ins>
+is
+<ins class="diff-new">set
+to
+</ins><i><ins class="diff-new">
+value
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a><ins class="diff-new">
+has
+</ins>
+a
+<del class="diff-old">typed
+literal
+</del>
+<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
+<ins class="diff-chg">type
+mapping
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins>
+</a>,
+<del class="diff-old">the
+compacted
+</del>
+<ins class="diff-chg">add
+an
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+member
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+and
+set
+its
+</ins>
+value
+<del class="diff-old">is
+</del>
+<ins class="diff-chg">to
+</ins>
+the
+value
+associated
+with
+the
+<del class="diff-old">@value
+key.
+</del>
+<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
+<ins class="diff-chg">type
+mapping
+</ins></a>.
+</li>
+<li>
+Otherwise,
+if
+<i>
+value
+<del class="diff-old">contains
+</del>
+</i>
+<ins class="diff-chg">is
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+a
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+is
+associated
+with
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<ins class="diff-chg">
+add
+</ins>
+an
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<del class="diff-old">key,
+the
+compacted
+value
+is
+</del>
+<ins class="diff-chg">to
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+and
+set
+its
+</ins>
+value
+<ins class="diff-chg">to
+the
+language
+code
+associated
+</ins>
+with
+the
+<del class="diff-old">value
+of
+@id
+processed
+according
+to
+</del>
+<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
+<ins class="diff-chg">language
+mapping
+</ins></a><ins class="diff-chg">
+;
+unless
+</ins>
+the
+<del class="diff-old">IRI
+Compaction
+</del>
+<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
+<ins class="diff-chg">language
+mapping
+</ins>
+</a>
+<del class="diff-old">steps.
+</del>
+<ins class="diff-chg">is
+set
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+in
+which
+case
+no
+member
+is
+added.
+</ins>
+</li>
+<li>
+Otherwise,
+if
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+<del class="diff-old">contains
+</del>
+<ins class="diff-chg">has
+</ins>
+a
+<del class="diff-old">@language
+,
+which
+matches
+the
+</del>
+<a class="tref internalDFN" title="default-language" href="#dfn-default-language">
+<ins class="diff-chg">default
+language
+</ins></a>,<ins class="diff-chg">
+add
+an
+</ins>
+<code>
+@language
+</code>
+<del class="diff-old">of
+</del>
+<ins class="diff-chg">to
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+and
+set
+its
+value
+to
+</ins>
+the
+<del class="diff-old">value,
+</del>
+<a class="tref internalDFN" title="default-language" href="#dfn-default-language">
+<ins class="diff-chg">default
+language
+</ins></a>.</li></ol></li><li><ins class="diff-chg">
+Return
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li></ol></section></section></section><section id="compaction-algorithms"><h2><span class="secno"><ins class="diff-chg">
+8.
+</ins></span><ins class="diff-chg">
+Compaction
+Algorithms
+</ins></h2><section id="compaction-algorithm"><h3><span class="secno"><ins class="diff-chg">
+8.1
+</ins></span><ins class="diff-chg">
+Compaction
+Algorithm
+</ins></h3><p><ins class="diff-chg">
+This
+algorithm
+compacts
+a
+JSON-LD
+document,
+such
+that
+the
+given
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+is
+applied.
+This
+must
+result
+in
+shortening
+any
+applicable
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a>
+or
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+<ins class="diff-new">compact
+IRIs
+</ins></a>,<ins class="diff-new">
+any
+applicable
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
+keywords
+</ins></a><ins class="diff-new">
+to
+</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-new">
+keyword
+aliases
+</ins></a>,<ins class="diff-new">
+and
+any
+applicable
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-new">
+JSON-LD
+values
+</ins></a><ins class="diff-new">
+expressed
+in
+</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form"><ins class="diff-new">
+expanded
+form
+</ins></a><ins class="diff-new">
+to
+simple
+values
+such
+as
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+strings
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
+numbers
+</ins></a>.</p><section class="informative"><h4 id="overview-5"><ins class="diff-new">
+Overview
+</ins></h4><p><em><ins class="diff-new">
+This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-new">
+Starting
+with
+its
+root
+</ins><i><ins class="diff-new">
+element
+</ins></i>,<ins class="diff-new">
+we
+can
+process
+</ins>
+the
+<del class="diff-old">value
+has
+only
+</del>
+<ins class="diff-chg">JSON-LD
+document
+recursively,
+until
+we
+have
+</ins>
+a
+<del class="diff-old">@value
+key,
+the
+</del>
+<ins class="diff-chg">fully
+</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction">
+compacted
+<del class="diff-old">value
+is
+</del>
+</a>
+<i>
+<ins class="diff-chg">result
+</ins></i>.<ins class="diff-chg">
+When
+</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
+compacting
+</ins></a><ins class="diff-chg">
+an
+</ins><i><ins class="diff-chg">
+element
+</ins></i>,<ins class="diff-chg">
+we
+can
+treat
+each
+one
+differently
+according
+to
+its
+type,
+in
+order
+to
+break
+down
+</ins>
+the
+<del class="diff-old">value
+associated
+with
+</del>
+<ins class="diff-chg">problem:
+</ins></p><ol><li><ins class="diff-chg">
+If
+</ins>
+the
+<del class="diff-old">@value
+key.
+</del>
+<i>
+<ins class="diff-chg">element
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
+scalar
+</ins></a>,<ins class="diff-chg">
+it
+is
+already
+in
+</ins><a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form"><ins class="diff-chg">
+compacted
+form
+</ins></a>,<ins class="diff-chg">
+so
+we
+simply
+return
+it.
+</ins>
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+</del>
+<ins class="diff-chg">If
+</ins>
+the
+<del class="diff-old">value
+contains
+</del>
+<i>
+<ins class="diff-chg">element
+</ins></i><ins class="diff-chg">
+is
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>,<ins class="diff-chg">
+we
+compact
+each
+of
+its
+items
+recursively
+and
+return
+them
+in
+</ins>
+a
+<del class="diff-old">@type
+key,
+the
+compacted
+value
+</del>
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.</li><li><ins class="diff-chg">
+Otherwise
+</ins><i><ins class="diff-chg">
+element
+</ins></i>
+is
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>.<ins class="diff-chg">
+The
+</ins>
+value
+<del class="diff-old">with
+</del>
+<ins class="diff-chg">of
+each
+key
+in
+element
+is
+compacted
+recursively.
+Some
+of
+</ins>
+the
+<del class="diff-old">@type
+value
+processed
+according
+to
+</del>
+<ins class="diff-chg">keys
+will
+be
+compacted,
+using
+</ins>
+the
+<a href="#iri-compaction">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+Compaction
+<ins class="diff-new">algorithm
+</ins></a>,<ins class="diff-new">
+to
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+terms
+</ins>
+</a>
+<del class="diff-old">steps.
+Otherwise,
+the
+value
+is
+</del>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+IRIs
+</ins></a><ins class="diff-chg">
+and
+others
+will
+be
+compacted
+from
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
+keyword
+aliases
+</ins></a><ins class="diff-chg">
+or
+simply
+left
+unchanged
+because
+they
+do
+</ins>
+not
+<del class="diff-old">modified.
+</del>
+<ins class="diff-chg">have
+definitions
+in
+the
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>.<ins class="diff-chg">
+Values
+will
+be
+converted
+to
+</ins><a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form"><ins class="diff-chg">
+compacted
+form
+</ins></a><ins class="diff-chg">
+via
+the
+</ins><a href="#value-compaction"><ins class="diff-chg">
+Value
+Compaction
+algorithm
+</ins></a>.<ins class="diff-chg">
+Some
+data
+will
+be
+reshaped
+based
+on
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mappings
+</ins></a><ins class="diff-chg">
+specified
+in
+the
+context
+such
+as
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+maps.
+</ins>
+</li>
+</ol>
+<del class="diff-old">4.7
+Expansion
+</del>
+<p>
+<del class="diff-old">Expansion
+</del>
+<ins class="diff-chg">The
+final
+output
+</ins>
+is
+<del class="diff-old">the
+process
+of
+taking
+</del>
+a
+<del class="diff-old">JSON-LD
+document
+and
+applying
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins></a><ins class="diff-chg">
+with
+a
+</ins><code><ins class="diff-chg">
+@context
+</ins></code><ins class="diff-chg">
+key,
+if
+</ins>
+a
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+<del class="diff-old">such
+that
+all
+IRI
+,
+datatypes,
+and
+literal
+values
+are
+expanded
+so
+that
+</del>
+</a>
+<ins class="diff-chg">was
+given,
+where
+</ins>
+the
+<del class="diff-old">context
+is
+no
+longer
+necessary.
+JSON-LD
+document
+expansion
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins></a>
+is
+<del class="diff-old">typically
+used
+as
+</del>
+<ins class="diff-chg">either
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+or
+</ins>
+a
+<del class="diff-old">part
+of
+other
+JSON-LD
+API
+methods.
+For
+example,
+assume
+the
+following
+JSON-LD
+input
+document:
+{
+   &quot;@context&quot;:
+   {
+      &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+      &quot;homepage&quot;: {
+        &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+        &quot;@type&quot;, &quot;@id&quot;
+      }
+   },
+   &quot;name&quot;: &quot;Manu Sporny&quot;,
+   &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+}
+Running
+the
+JSON-LD
+Expansion
+algorithm
+against
+</del>
+<ins class="diff-chg">wrapper
+for
+it
+where
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+appears
+as
+</ins>
+the
+<del class="diff-old">JSON-LD
+input
+document
+provided
+above
+would
+</del>
+<ins class="diff-chg">value
+of
+an
+(aliased)
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+key
+because
+</ins><i>
+result
+</i>
+<ins class="diff-new">contained
+two
+or
+more
+items
+</ins>
+in
+<del class="diff-old">the
+following
+output:
+</del>
+<ins class="diff-chg">an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.
+</p>
+<del class="diff-old">{
+   &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Manu Sporny&quot;,
+   &quot;http://xmlns.com/foaf/0.1/homepage&quot;: {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
+   }
+}
+4.7.1
+Expansion
+</del>
+</section>
+<section>
+<h4 id="algorithm-5">
+Algorithm
+</h4>
+<p>
+The
+algorithm
+takes
+<del class="diff-old">three
+</del>
+<ins class="diff-chg">five
+required
+</ins>
+input
+variables:
+an
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>,
+an
+<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
+<ins class="diff-chg">inverse
+context
+</ins></a>,<ins class="diff-chg">
+an
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+property
+</a>,
+<del class="diff-old">and
+</del>
+an
+<i>
+element
+</i>
+to
+be
+<del class="diff-old">expanded.
+</del>
+<ins class="diff-chg">compacted,
+and
+a
+flag
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-chg">
+compactArrays
+</ins></a></code>.
+To
+begin,
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+is
+set
+to
+the
+result
+of
+<del class="diff-old">performing,
+</del>
+<ins class="diff-chg">performing
+</ins><a href="#context-processing-algorithm">
+Context
+Processing
+</a>
+on
+the
+passed
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+<del class="diff-old">,
+or
+to
+</del>
+</a>,
+the
+<del class="diff-old">initial
+</del>
+<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
+<ins class="diff-chg">inverse
+</ins>
+context
+</a>
+<del class="diff-old">if
+context
+</del>
+is
+<del class="diff-old">null
+</del>
+<ins class="diff-chg">set
+to
+the
+result
+of
+performing
+the
+</ins><a href="#inverse-context-creation"><ins class="diff-chg">
+Inverse
+Context
+Creation
+algorithm
+</ins></a><ins class="diff-chg">
+on
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins>
+</a>,
+<ins class="diff-chg">the
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+property
+</a>
+is
+set
+to
+<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>,
+<del class="diff-old">and
+</del>
+<i>
+element
+</i>
+is
+set
+to
+the
+<ins class="diff-chg">result
+of
+performing
+the
+</ins><a href="#expansion-algorithm"><ins class="diff-chg">
+Expansion
+algorithm
+</ins></a><ins class="diff-chg">
+on
+the
+</ins><a class="tref internalDFN" title="json-ld-input" href="#dfn-json-ld-input">
+JSON-LD
+input
+</a>,
+<ins class="diff-new">and,
+if
+not
+passed,
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-new">
+compactArrays
+</ins></a></code><ins class="diff-new">
+is
+set
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins>
+</a>.
+</p>
+<ol class="algorithm">
+<li>
+If
+<i>
+element
+</i>
+<ins class="diff-chg">is
+a
+</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
+scalar
+</ins></a>,<ins class="diff-chg">
+it
+is
+already
+in
+its
+most
+compact
+form,
+so
+simply
+return
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+element
+</ins></i>
+is
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+<del class="diff-old">,
+process
+</del>
+</a>:
+<ol class="algorithm">
+<li>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.</li><li><ins class="diff-chg">
+For
+</ins>
+each
+<del class="diff-old">entry
+</del>
+<i>
+<ins class="diff-chg">item
+</ins></i>
+in
+<i>
+element
+<del class="diff-old">recursively
+</del>
+</i>:
+<ol class="algorithm">
+<li>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+</ins>
+using
+this
+<del class="diff-old">algorithm,
+</del>
+<ins class="diff-chg">algorithm
+recursively,
+</ins>
+passing
+<del class="diff-old">copies
+of
+the
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+<del class="diff-old">and
+</del>
+</a>,
+<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
+<ins class="diff-chg">inverse
+context
+</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+property
+<del class="diff-old">.
+</del>
+</a>,
+<ins class="diff-chg">and
+em&gt;item
+for
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+is
+not
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+then
+append
+it
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li></ol></li><li>
+If
+<i>
+<ins class="diff-new">result
+</ins></i><ins class="diff-new">
+contains
+only
+one
+item
+(it
+</ins>
+has
+a
+<ins class="diff-new">length
+of
+</ins>
+<code>
+<del class="diff-old">@container
+</del>
+<ins class="diff-chg">1
+</ins>
+</code>
+<ins class="diff-new">),
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a><ins class="diff-new">
+has
+no
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mapping
+</ins></a><ins class="diff-new">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<ins class="diff-new">
+and
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-new">
+compactArrays
+</ins></a></code><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a>,
+set
+<i>
+<ins class="diff-new">result
+</ins></i>
+to
+<del class="diff-old">@list
+and
+any
+entry
+in
+</del>
+<ins class="diff-chg">its
+only
+item.
+</ins></li><li><ins class="diff-chg">
+Return
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Otherwise
+</ins><i>
+element
+</i>
+is
+<ins class="diff-new">a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+has
+</ins>
+an
+<del class="diff-old">array
+,
+</del>
+<code>
+<ins class="diff-chg">@value
+</ins></code>
+or
+<code>
+<ins class="diff-new">@id
+</ins></code><ins class="diff-new">
+member
+and
+the
+result
+of
+using
+the
+</ins><a href="#value-compaction"><ins class="diff-new">
+Value
+Compaction
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a>,and<i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+as
+</ins><i><ins class="diff-new">
+value
+</ins></i>
+is
+a
+<a class="tref internalDFN" title="scalar" href="#dfn-scalar">
+<ins class="diff-chg">scalar
+</ins></a>,<ins class="diff-chg">
+return
+that
+result.
+</ins></li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+inside
+reverse
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+if
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+equals
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code>,<ins class="diff-chg">
+otherwise
+to
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>.</li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+<del class="diff-old">containing
+a
+</del>
+</a>.
+</li>
+<li>
+<ins class="diff-chg">For
+each
+key
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i><ins class="diff-chg">
+and
+value
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+element
+</ins></i>,<ins class="diff-chg">
+ordered
+lexicographically
+by
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i><ins class="diff-chg">
+is
+</ins>
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@id
+</ins>
+</code>
+<del class="diff-old">property,
+throw
+an
+exception,
+as
+lists
+of
+lists
+are
+not
+allowed.
+</del>
+<ins class="diff-chg">or
+</ins><code><ins class="diff-chg">
+@type
+</ins></code>:<ol class="algorithm"><li>
+If
+<i>
+<ins class="diff-new">expanded
+value
+</ins></i><ins class="diff-new">
+is
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+string
+</ins></a>,<ins class="diff-new">
+then
+initialize
+</ins><i><ins class="diff-new">
+compacted
+value
+</ins></i><ins class="diff-new">
+to
+</ins>
+the
+<ins class="diff-new">result
+of
+using
+the
+</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins></a>,<i>
+expanded
+<del class="diff-old">entry
+</del>
+<ins class="diff-chg">value
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+iri
+</ins></i>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+vocab
+</ins></i><ins class="diff-chg">
+if
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i>
+is
+<del class="diff-old">null,
+drop
+it.
+If
+it's
+an
+array,
+merge
+its
+entries
+with
+element
+'s
+entries.
+</del>
+<code>
+<ins class="diff-chg">@type
+</ins></code>,<a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a><ins class="diff-chg">
+otherwise.
+</ins>
+</li>
+<li>
+Otherwise,
+<del class="diff-old">if
+element
+is
+an
+object
+</del>
+<i>
+<ins class="diff-chg">expanded
+value
+</ins></i><ins class="diff-chg">
+must
+be
+a
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>:
+<ol class="algorithm">
+<li>
+<ins class="diff-new">Initialize
+</ins><i><ins class="diff-new">
+compacted
+value
+</ins></i><ins class="diff-new">
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>.</li><li><ins class="diff-new">
+For
+each
+item
+</ins><i><ins class="diff-new">
+expanded
+type
+</ins></i><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+expanded
+value
+</ins></i>,<ins class="diff-new">
+append
+the
+result
+of
+of
+using
+the
+</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins></a>,<i><ins class="diff-new">
+expanded
+type
+</ins></i><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+iri
+</ins></i>,<ins class="diff-new">
+and
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+vocab
+</ins></i>,<ins class="diff-new">
+to
+</ins><i><ins class="diff-new">
+compacted
+value
+</ins></i>.</li><li>
+If
+<del class="diff-old">element
+</del>
+<i>
+<ins class="diff-chg">compacted
+value
+</ins></i><ins class="diff-chg">
+contains
+only
+one
+item
+(it
+</ins>
+has
+a
+<ins class="diff-new">length
+of
+</ins>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">1
+</ins>
+</code>
+<del class="diff-old">property,
+update
+</del>
+<ins class="diff-chg">),
+then
+set
+</ins><i><ins class="diff-chg">
+compacted
+value
+</ins></i><ins class="diff-chg">
+to
+its
+only
+item.
+</ins></li></ol></li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+alias
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<ins class="diff-chg">result
+of
+using
+the
+</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+<del class="diff-old">according
+</del>
+</a>,
+<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
+<ins class="diff-chg">inverse
+context
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+iri
+</ins></i>.</li><li><ins class="diff-chg">
+Add
+a
+member
+</ins><i><ins class="diff-chg">
+alias
+</ins></i>
+to
+<del class="diff-old">the
+steps
+outlined
+in
+Context
+Processing
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i><ins class="diff-chg">
+whose
+value
+is
+set
+to
+</ins><i><ins class="diff-chg">
+compacted
+value
+</ins></i>
+and
+<del class="diff-old">remove
+</del>
+<ins class="diff-chg">continue
+to
+</ins>
+the
+<ins class="diff-new">next
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i>.</li></ol></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i><ins class="diff-new">
+is
+</ins>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">@reverse
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+compacted
+value
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+using
+this
+algorithm
+recursively,
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<code><ins class="diff-chg">
+@reverse
+</ins>
+</code>
+<del class="diff-old">property.
+</del>
+<ins class="diff-chg">for
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Then,
+proceed
+and
+process
+</del>
+<ins class="diff-chg">For
+</ins>
+each
+<i>
+property
+</i>
+and
+<i>
+value
+</i>
+in
+<del class="diff-old">element
+as
+follows:
+</del>
+<i>
+<ins class="diff-chg">compacted
+value
+</ins></i>:
+<ol class="algorithm">
+<li>
+<del class="diff-old">Remove
+property
+from
+element
+,
+expand
+property
+according
+to
+</del>
+<ins class="diff-chg">If
+</ins>
+the
+<del class="diff-old">steps
+outlined
+</del>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+<ins class="diff-chg">term
+definition
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+property
+</ins></i>
+in
+<del class="diff-old">IRI
+Expansion
+.
+Set
+</del>
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">context
+</ins>
+</a>
+<del class="diff-old">to
+the
+original
+un-expanded
+</del>
+<ins class="diff-chg">indicates
+that
+</ins><i>
+property
+<del class="diff-old">if
+</del>
+</i>
+<ins class="diff-chg">is
+a
+</ins><a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property"><ins class="diff-chg">
+reverse
+</ins>
+property
+</a>
+<ol class="algorithm">
+<li>
+<ins class="diff-chg">If
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-chg">
+compactArrays
+</ins></a></code><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i>
+is
+not
+<ins class="diff-new">an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>,<ins class="diff-new">
+set
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+to
+</ins>
+a
+<del class="diff-old">keyword
+.
+</del>
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+containing
+only
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.
+</li>
+<li>
+If
+<i>
+property
+<del class="diff-old">does
+</del>
+</i>
+<ins class="diff-chg">is
+</ins>
+not
+<del class="diff-old">expand
+to
+</del>
+a
+<del class="diff-old">keyword
+or
+</del>
+<ins class="diff-chg">member
+of
+</ins><i><ins class="diff-chg">
+result
+</ins></i>,<ins class="diff-chg">
+add
+one
+and
+set
+its
+value
+to
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+the
+value
+of
+the
+</ins><i><ins class="diff-chg">
+property
+</ins></i><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+is
+not
+</ins>
+an
+<del class="diff-old">absolute
+IRI
+(i.e.,
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a>,<ins class="diff-chg">
+set
+</ins>
+it
+<del class="diff-old">doesn't
+contain
+</del>
+<ins class="diff-chg">to
+</ins>
+a
+<del class="diff-old">colon),
+continue
+with
+</del>
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+containing
+only
+</ins>
+the
+<del class="diff-old">next
+</del>
+<ins class="diff-chg">value.
+Then
+append
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+its
+value
+if
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+not
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>,<ins class="diff-chg">
+otherwise
+append
+each
+of
+its
+items.
+</ins></li><li><ins class="diff-chg">
+Remove
+the
+</ins><i>
+property
+</i>
+<ins class="diff-new">member
+</ins>
+from
+<del class="diff-old">element
+.
+</del>
+<i>
+<ins class="diff-chg">compacted
+value
+</ins></i>.</li></ol></li></ol>
+</li>
+<li>
+If
+<i>
+<ins class="diff-chg">compacted
+</ins>
+value
+<del class="diff-old">is
+null
+and
+property
+</del>
+</i>
+<ins class="diff-chg">has
+some
+remaining
+members,
+i.e.,
+it
+</ins>
+is
+not
+<ins class="diff-new">an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+alias
+</ins></i><ins class="diff-new">
+to
+the
+result
+of
+using
+the
+</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins></a>,<ins class="diff-new">
+and
+</ins>
+<code>
+<del class="diff-old">@value
+,
+</del>
+<ins class="diff-chg">@reverse
+</ins></code><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+iri
+</ins></i>.</li><li><ins class="diff-chg">
+Set
+the
+value
+of
+the
+</ins><i><ins class="diff-chg">
+alias
+</ins></i><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+compacted
+value
+</ins></i><ins class="diff-chg">
+and
+</ins>
+continue
+with
+the
+next
+<i>
+<ins class="diff-new">expanded
+</ins>
+property
+</i>
+from
+<i>
+element
+<del class="diff-old">.
+</del>
+</i>.
+</li>
+</ol>
+</li>
+</ol>
+</li>
+<li>
+If
+<del class="diff-old">the
+</del>
+<i>
+<ins class="diff-chg">expanded
+</ins>
+property
+</i>
+is
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">@index
+</ins>
+</code>
+<ins class="diff-new">and
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a><ins class="diff-new">
+has
+a
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mapping
+</ins></a><ins class="diff-new">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a><ins class="diff-new">
+that
+is
+</ins><code><ins class="diff-new">
+@index
+</ins></code>,<ins class="diff-new">
+then
+</ins>
+the
+<del class="diff-old">value
+must
+</del>
+<ins class="diff-chg">compacted
+result
+will
+</ins>
+be
+<del class="diff-old">a
+string
+.
+Expand
+</del>
+<ins class="diff-chg">inside
+of
+an
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+container,
+drop
+</ins>
+the
+<del class="diff-old">value
+according
+</del>
+<code>
+<ins class="diff-chg">@index
+</ins></code><ins class="diff-chg">
+property
+by
+continuing
+</ins>
+to
+<del class="diff-old">IRI
+Expansion
+.
+</del>
+<ins class="diff-chg">the
+next
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i>.
+</li>
+<li>
+Otherwise,
+if
+<del class="diff-old">the
+</del>
+<i>
+<ins class="diff-chg">expanded
+</ins>
+property
+</i>
+is
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@index
+</ins></code>,<code><ins class="diff-chg">
+@value
+</ins></code>,<ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@language
+</ins>
+</code>:
+<ol class="algorithm">
+<li>
+<del class="diff-old">If
+value
+is
+a
+string
+,
+expand
+according
+</del>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+alias
+</ins></i>
+to
+<ins class="diff-chg">the
+result
+of
+using
+the
+</ins><a href="#iri-compaction">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">Expansion
+.
+</del>
+<ins class="diff-chg">Compaction
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+expanded
+property
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+iri
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+</del>
+<ins class="diff-chg">Add
+a
+member
+</ins><i><ins class="diff-chg">
+alias
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+whose
+</ins>
+value
+is
+<del class="diff-old">a
+subject
+reference
+,
+</del>
+<ins class="diff-chg">set
+to
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i><ins class="diff-chg">
+and
+continue
+with
+</ins>
+the
+<ins class="diff-new">next
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i>.</li></ol></li><li><ins class="diff-new">
+If
+</ins><i>
+expanded
+value
+</i>
+is
+<ins class="diff-new">an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+item
+active
+property
+</ins></i><ins class="diff-new">
+to
+</ins>
+the
+result
+of
+<del class="diff-old">performing
+</del>
+<ins class="diff-chg">using
+the
+</ins><a href="#iri-compaction">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">Expansion
+on
+the
+value
+of
+@id
+.
+Otherwise,
+if
+value
+is
+a
+JSON
+Object
+</del>
+<ins class="diff-chg">Compaction
+algorithm
+</ins>
+</a>,
+<del class="diff-old">it
+must
+be
+empty
+(used
+</del>
+<ins class="diff-chg">passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<i><ins class="diff-chg">
+expanded
+property
+</ins></i>
+for
+<del class="diff-old">Framing
+</del>
+<i>
+<ins class="diff-chg">iri
+</ins></i>,<i><ins class="diff-chg">
+expanded
+value
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+value
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins>
+</a>
+<del class="diff-old">).
+</del>
+<ins class="diff-chg">for
+</ins><i><ins class="diff-chg">
+vocab
+</ins></i>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+inside
+reverse
+</ins></i>.
+</li>
+<li>
+<ins class="diff-new">If
+</ins><i><ins class="diff-new">
+result
+</ins></i><ins class="diff-new">
+does
+not
+have
+the
+key
+that
+equals
+</ins><i><ins class="diff-new">
+item
+active
+property
+</ins></i>,<ins class="diff-new">
+set
+this
+key's
+value
+in
+</ins><i><ins class="diff-new">
+result
+</ins></i><ins class="diff-new">
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>.
+Otherwise,
+if
+<ins class="diff-chg">the
+key's
+</ins>
+value
+is
+<ins class="diff-new">not
+</ins>
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>,
+<del class="diff-old">all
+elements
+must
+be
+either
+a
+string
+or
+subject
+reference
+.
+Expand
+value
+for
+each
+of
+its
+entries
+using
+</del>
+<ins class="diff-chg">then
+set
+it
+to
+one
+containing
+only
+</ins>
+the
+<del class="diff-old">previous
+three
+steps.
+</del>
+<ins class="diff-chg">value.
+</ins>
+</li>
+</ol>
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+the
+property
+is
+@value
+or
+@language
+the
+</del>
+<ins class="diff-chg">At
+this
+point,
+</ins><i><ins class="diff-chg">
+expanded
+</ins>
+value
+</i>
+must
+<del class="diff-old">not
+</del>
+be
+<del class="diff-old">a
+JSON
+object
+or
+</del>
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+<ins class="diff-new">due
+to
+the
+</ins><a href="#expansion-algorithm"><ins class="diff-new">
+Expansion
+algorithm
+</ins>
+</a>.
+<ins class="diff-chg">For
+each
+item
+</ins><i><ins class="diff-chg">
+expanded
+item
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+expanded
+value
+</ins></i>:<ol class="algorithm">
+<li>
+<del class="diff-old">Otherwise,
+if
+the
+</del>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+item
+active
+</ins>
+property
+<del class="diff-old">is
+@list
+or
+@set
+expand
+value
+recursively
+using
+this
+algorithm,
+passing
+copies
+</del>
+</i>
+<ins class="diff-chg">to
+the
+result
+</ins>
+of
+<ins class="diff-new">using
+</ins>
+the
+<a href="#iri-compaction">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr><ins class="diff-chg">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>,
+<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
+<ins class="diff-new">inverse
+context
+</ins></a>,<i><ins class="diff-new">
+expanded
+property
+</ins></i><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+iri
+</ins></i>,<i><ins class="diff-new">
+expanded
+item
+</ins></i><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+value
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins>
+</a>
+<ins class="diff-new">for
+</ins><i><ins class="diff-new">
+vocab
+</ins></i>,
+and
+<i>
+<ins class="diff-chg">inside
+reverse
+</ins></i>.</li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+container
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.<ins class="diff-chg">
+If
+there
+is
+a
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+item
+</ins>
+active
+property
+<del class="diff-old">.
+If
+</del>
+</i>
+<ins class="diff-chg">in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<ins class="diff-chg">
+set
+</ins><i><ins class="diff-chg">
+container
+</ins></i><ins class="diff-chg">
+to
+its
+value.
+</ins></li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<ins class="diff-new">result
+of
+using
+this
+algorithm
+recursively,
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins></a>,<i><ins class="diff-new">
+item
+active
+property
+</ins></i><ins class="diff-new">
+for
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a>,<i>
+expanded
+<ins class="diff-chg">item
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+if
+it
+does
+not
+contain
+the
+key
+</ins><code><ins class="diff-chg">
+@list
+</ins></code>,<ins class="diff-chg">
+otherwise
+pass
+the
+key's
+associated
+</ins>
+value
+<ins class="diff-chg">for
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+expanded
+item
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i>
+is
+not
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>,
+<del class="diff-old">convert
+</del>
+<ins class="diff-chg">then
+set
+</ins>
+it
+to
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+<del class="diff-old">.
+</del>
+</a>
+<ins class="diff-chg">containing
+only
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i>.</li><li>
+If
+<del class="diff-old">property
+</del>
+<i>
+<ins class="diff-chg">container
+</ins></i>
+is
+<ins class="diff-new">not
+</ins>
+<code>
+@list
+<del class="diff-old">and
+any
+entry
+in
+value
+is
+</del>
+</code>:
+<ol class="algorithm">
+<li>
+<ins class="diff-chg">Convert
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+to
+</ins>
+a
+<a class="tref internalDFN" title="list-object" href="#dfn-list-object">
+<ins class="diff-chg">list
+object
+</ins></a><ins class="diff-chg">
+by
+setting
+it
+to
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+containing
+<del class="diff-old">an
+</del>
+<ins class="diff-chg">key-value
+pair
+where
+the
+key
+is
+the
+result
+of
+the
+</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,
+<code>
+@list
+</code>
+<del class="diff-old">property,
+throw
+an
+exception,
+as
+lists
+of
+lists
+are
+not
+supported.
+</del>
+<ins class="diff-chg">for
+</ins><i><ins class="diff-chg">
+iri
+</ins></i>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+expand
+value
+recursively
+using
+this
+algorithm,
+passing
+copies
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+expanded
+item
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins><code><ins class="diff-chg">
+@index
+</ins></code>,<ins class="diff-chg">
+then
+add
+a
+key-value
+pair
+to
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+where
+the
+key
+is
+the
+result
+</ins>
+of
+the
+<a href="#iri-compaction">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr><ins class="diff-chg">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>,
+<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
+<ins class="diff-chg">inverse
+context
+</ins></a>,<code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+as
+</ins><i><ins class="diff-chg">
+iri
+</ins></i>,
+and
+<del class="diff-old">active
+property
+.
+</del>
+<ins class="diff-chg">the
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+key
+in
+</ins><i><ins class="diff-chg">
+expanded
+item
+</ins></i><ins class="diff-chg">
+as
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.</li></ol>
+</li>
+<li>
+<del class="diff-old">If
+</del>
+<ins class="diff-chg">Otherwise,
+</ins><i><ins class="diff-chg">
+item
+active
+</ins>
+property
+<del class="diff-old">is
+</del>
+</i>
+<ins class="diff-chg">must
+</ins>
+not
+<ins class="diff-new">be
+</ins>
+a
+<del class="diff-old">keyword
+and
+</del>
+<ins class="diff-chg">key
+in
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+because
+there
+cannot
+be
+two
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+objects
+</ins></a><ins class="diff-chg">
+associated
+with
+an
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+property
+</a>
+<ins class="diff-new">that
+</ins>
+has
+a
+<del class="diff-old">@container
+</del>
+<a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">
+<ins class="diff-chg">container
+mapping
+</ins></a><ins class="diff-chg">
+;
+a
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.compaction-to-list-of-lists"><ins class="diff-chg">
+compaction
+to
+list
+of
+lists
+</ins></a>
+</code>
+<ins class="diff-new">error
+has
+been
+detected
+and
+processing
+is
+aborted.
+</ins></li></ol></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+container
+</ins></i><ins class="diff-new">
+is
+</ins>
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<del class="diff-old">and
+the
+expanded
+value
+</del>
+<ins class="diff-chg">or
+</ins><code><ins class="diff-chg">
+@index
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+item
+active
+property
+</ins></i>
+is
+<del class="diff-old">not
+null
+,
+convert
+value
+</del>
+<ins class="diff-chg">a
+key
+in
+</ins><i><ins class="diff-chg">
+result
+</ins></i>,<ins class="diff-chg">
+then
+initialize
+</ins><i><ins class="diff-chg">
+map
+object
+</ins></i><ins class="diff-chg">
+to
+its
+associated
+value,
+otherwise
+initialize
+it
+</ins>
+to
+an
+<ins class="diff-chg">empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+</ins>
+object
+<del class="diff-old">with
+an
+</del>
+</a>.
+</li>
+<li>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+container
+</ins></i><ins class="diff-chg">
+is
+</ins>
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<del class="diff-old">property
+whose
+value
+is
+</del>
+<ins class="diff-chg">and
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins><code><ins class="diff-chg">
+@value
+</ins></code>,<ins class="diff-chg">
+then
+</ins>
+set
+<i>
+<ins class="diff-new">compacted
+item
+</ins></i>
+to
+<ins class="diff-chg">the
+</ins>
+value
+<del class="diff-old">(unless
+</del>
+<ins class="diff-chg">associated
+with
+its
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+key.
+</ins></li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+map
+key
+</ins></i><ins class="diff-chg">
+to
+the
+</ins>
+value
+<del class="diff-old">is
+already
+in
+</del>
+<ins class="diff-chg">associated
+with
+with
+the
+key
+</ins>
+that
+<del class="diff-old">form).
+</del>
+<ins class="diff-chg">equals
+</ins><i><ins class="diff-chg">
+container
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+expanded
+item
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Convert
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+map
+key
+</ins></i><ins class="diff-chg">
+is
+not
+a
+key
+in
+</ins><i><ins class="diff-chg">
+map
+object
+</ins></i>,<ins class="diff-chg">
+then
+set
+this
+key's
+</ins>
+value
+<ins class="diff-chg">in
+</ins><i><ins class="diff-chg">
+map
+object
+</ins></i>
+to
+<i>
+<ins class="diff-new">compacted
+item
+</ins></i>.<ins class="diff-new">
+Otherwise,
+if
+the
+value
+is
+not
+an
+</ins>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+<del class="diff-old">form
+unless
+</del>
+</a>,
+<ins class="diff-chg">then
+set
+it
+to
+one
+containing
+only
+the
+</ins>
+value
+<del class="diff-old">is
+null
+</del>
+<ins class="diff-chg">and
+then
+append
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+to
+it.
+</ins></li></ol></li><li><ins class="diff-chg">
+Otherwise,
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-chg">
+compactArrays
+</ins>
+</a>
+<del class="diff-old">or
+property
+</del>
+</code>
+<ins class="diff-chg">is
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>,<i><ins class="diff-chg">
+container
+</ins></i>
+is
+<code>
+<del class="diff-old">@id
+,
+</del>
+<ins class="diff-chg">@set
+</ins></code><ins class="diff-chg">
+or
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@list
+</ins>
+</code>,
+<ins class="diff-new">or
+</ins><i><ins class="diff-new">
+expanded
+property
+</ins></i><ins class="diff-new">
+is
+</ins>
+<code>
+<del class="diff-old">@value
+,
+</del>
+<ins class="diff-chg">@list
+</ins></code>
+or
+<code>
+<del class="diff-old">@language
+.
+If
+value
+</del>
+<ins class="diff-chg">@graph
+</ins></code><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i>
+is
+not
+<del class="diff-old">null
+,
+either
+merge
+value
+into
+</del>
+an
+<del class="diff-old">existing
+property
+property
+of
+element
+or
+create
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a>,<ins class="diff-chg">
+set
+it
+to
+</ins>
+a
+new
+<del class="diff-old">property
+property
+with
+value
+as
+value.
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a><ins class="diff-chg">
+containing
+only
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i>.
+</li>
+<li>
+If
+<del class="diff-old">the
+processed
+element
+has
+an
+@value
+</del>
+<i>
+<ins class="diff-chg">item
+active
+</ins>
+property
+<del class="diff-old">element
+must
+</del>
+</i>
+<ins class="diff-chg">is
+</ins>
+not
+<del class="diff-old">have
+more
+than
+one
+other
+property,
+which
+can
+either
+be
+@language
+or
+@type
+with
+</del>
+a
+<del class="diff-old">string
+value.
+</del>
+<ins class="diff-chg">key
+in
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+then
+add
+the
+key-value
+pair,
+(
+</ins><i><ins class="diff-chg">
+item
+active
+property
+</ins></i><ins class="diff-chg">
+-
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+),
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.
+</li>
+<li>
+<ins class="diff-new">Otherwise,
+</ins>
+if
+the
+value
+<del class="diff-old">of
+@value
+equals
+null
+,
+replace
+element
+</del>
+<ins class="diff-chg">associated
+</ins>
+with
+the
+<del class="diff-old">value
+of
+@value
+.
+Otherwise,
+if
+element
+has
+an
+@type
+</del>
+<ins class="diff-chg">key
+that
+equals
+</ins><i><ins class="diff-chg">
+item
+active
+</ins>
+property
+<del class="diff-old">and
+its
+value
+</del>
+</i>
+<ins class="diff-chg">in
+</ins><i><ins class="diff-chg">
+result
+</ins></i>
+is
+not
+<del class="diff-old">in
+the
+form
+of
+</del>
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>,
+<del class="diff-old">convert
+</del>
+<ins class="diff-chg">set
+</ins>
+it
+to
+<del class="diff-old">an
+</del>
+<ins class="diff-chg">a
+new
+</ins>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+<del class="diff-old">.
+If
+element
+has
+an
+@set
+or
+@list
+property,
+it
+must
+be
+the
+</del>
+</a>
+<ins class="diff-chg">containing
+</ins>
+only
+<del class="diff-old">property.
+Set
+element
+</del>
+<ins class="diff-chg">the
+value.
+Then
+append
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i>
+to
+the
+value
+<del class="diff-old">of
+@set
+;
+leave
+@list
+untouched.
+</del>
+<ins class="diff-chg">if
+</ins><i><ins class="diff-chg">
+compacted
+item
+</ins></i><ins class="diff-chg">
+is
+not
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>,<ins class="diff-chg">
+otherwise,
+concatenate
+it.
+</ins>
+</li>
+<del class="diff-old">If
+element
+has
+just
+a
+@language
+property,
+set
+element
+to
+null
+.
+</del>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+<li>
+<del class="diff-old">Otherwise,
+expand
+element
+according
+to
+the
+Value
+Expansion
+rules,
+passing
+copies
+of
+the
+active
+context
+and
+active
+property
+.
+</del>
+<ins class="diff-chg">Return
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.
+</li>
+</ol>
+<p>
+If,
+after
+the
+algorithm
+outlined
+above
+is
+run,
+the
+<del class="diff-old">resulting
+element
+</del>
+<ins class="diff-chg">result
+</ins><i><ins class="diff-chg">
+result
+</ins></i>
+is
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a>,<ins class="diff-chg">
+replace
+it
+with
+a
+new
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+with
+<del class="diff-old">just
+</del>
+a
+<del class="diff-old">@graph
+property,
+element
+</del>
+<ins class="diff-chg">single
+member
+whose
+key
+</ins>
+is
+<del class="diff-old">set
+to
+</del>
+the
+<del class="diff-old">value
+</del>
+<ins class="diff-chg">result
+</ins>
+of
+<ins class="diff-new">using
+the
+</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins></a>,<ins class="diff-new">
+and
+</ins>
+<code>
+@graph
+</code>
+<del class="diff-old">'s
+value.
+</del>
+<ins class="diff-chg">as
+</ins><i><ins class="diff-chg">
+iri
+</ins></i><ins class="diff-chg">
+and
+whose
+value
+is
+the
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><i><ins class="diff-chg">
+result
+</ins></i>.
+Finally,
+if
+<del class="diff-old">element
+is
+</del>
+a
+<del class="diff-old">JSON
+object
+,
+it
+is
+wrapped
+into
+</del>
+<i>
+<ins class="diff-chg">context
+</ins></i><ins class="diff-chg">
+has
+been
+passed,
+add
+</ins>
+an
+<del class="diff-old">array
+.
+</del>
+<code>
+<ins class="diff-chg">@context
+</ins></code><ins class="diff-chg">
+member
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+and
+set
+its
+value
+to
+the
+passed
+</ins><i><ins class="diff-chg">
+context
+</ins></i>.
+</p>
+</section>
+</section>
+<section id="inverse-context-creation">
+<h3>
+<span class="secno">
+<del class="diff-old">4.8
+</del>
+<ins class="diff-chg">8.2
+</ins>
+</span>
+<del class="diff-old">Compaction
+</del>
+<ins class="diff-chg">Inverse
+Context
+Creation
+</ins>
+</h3>
+<p>
+<del class="diff-old">Compaction
+</del>
+<ins class="diff-chg">When
+there
+</ins>
+is
+<ins class="diff-new">more
+than
+one
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+that
+could
+be
+chosen
+to
+compact
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>,<ins class="diff-new">
+it
+has
+to
+be
+ensured
+that
+</ins>
+the
+<del class="diff-old">process
+of
+taking
+a
+JSON-LD
+document
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a><ins class="diff-chg">
+selection
+is
+both
+deterministic
+</ins>
+and
+<del class="diff-old">applying
+a
+context
+such
+that
+</del>
+<ins class="diff-chg">represents
+</ins>
+the
+most
+<del class="diff-old">compact
+form
+of
+</del>
+<ins class="diff-chg">context-appropriate
+choice
+whilst
+taking
+into
+consideration
+algorithmic
+complexity.
+</ins></p><p><ins class="diff-chg">
+In
+order
+to
+make
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+selections,
+</ins>
+the
+<del class="diff-old">document
+</del>
+<ins class="diff-chg">concept
+of
+an
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>
+is
+<del class="diff-old">generated.
+JSON
+</del>
+<ins class="diff-chg">introduced.
+An
+</ins><dfn title="inverse-context" id="dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></dfn>
+is
+<del class="diff-old">typically
+expressed
+in
+</del>
+<ins class="diff-chg">essentially
+</ins>
+a
+<del class="diff-old">very
+compact,
+key-value
+format.
+That
+is,
+full
+IRIs
+are
+rarely
+used
+as
+keys.
+At
+times,
+</del>
+<ins class="diff-chg">reverse
+lookup
+table
+that
+maps
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mappings
+</ins></a>,<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mappings
+</ins></a>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mappings
+</ins></a><ins class="diff-chg">
+to
+</ins>
+a
+<del class="diff-old">JSON-LD
+document
+may
+</del>
+<ins class="diff-chg">simple
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+for
+a
+given
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>.<ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a><ins class="diff-chg">
+only
+needs
+to
+</ins>
+be
+<del class="diff-old">received
+that
+</del>
+<ins class="diff-chg">generated
+for
+an
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+if
+it
+</ins>
+is
+<del class="diff-old">not
+in
+its
+most
+compact
+form.
+JSON-LD,
+via
+</del>
+<ins class="diff-chg">being
+used
+for
+</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
+compaction
+</ins></a>.</p><p><ins class="diff-chg">
+To
+make
+use
+of
+an
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<ins class="diff-chg">
+a
+list
+of
+preferred
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mappings
+</ins></a><ins class="diff-chg">
+and
+</ins>
+the
+<del class="diff-old">API,
+provides
+</del>
+<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
+<ins class="diff-chg">type
+mapping
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+are
+gathered
+for
+</ins>
+a
+<del class="diff-old">way
+</del>
+<ins class="diff-chg">particular
+value
+associated
+with
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.<ins class="diff-chg">
+These
+parameters
+are
+then
+fed
+</ins>
+to
+<del class="diff-old">compact
+a
+JSON-LD
+document.
+For
+example,
+assume
+</del>
+the
+<del class="diff-old">following
+JSON-LD
+input
+document:
+</del>
+<a href="#term-selection">
+<ins class="diff-chg">Term
+Selection
+algorithm
+</ins></a>,<ins class="diff-chg">
+which
+will
+find
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+that
+most
+appropriately
+matches
+the
+value's
+mappings.
+</ins>
+</p>
+<del class="diff-old">{
+  &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Manu Sporny&quot;,
+  &quot;http://xmlns.com/foaf/0.1/homepage&quot;: {
+    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
+  }
+}
+</del>
+<section class="informative">
+<h4 id="overview-6">
+<ins class="diff-chg">Overview
+</ins></h4>
+<p>
+<del class="diff-old">Additionally,
+assume
+the
+following
+developer-supplied
+JSON-LD
+context:
+{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  }
+}
+</del>
+<em>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+<del class="diff-old">Running
+the
+JSON-LD
+Compaction
+algorithm
+</del>
+<ins class="diff-chg">To
+create
+an
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a><ins class="diff-chg">
+for
+a
+</ins>
+given
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-new">active
+context
+</ins></a>,<ins class="diff-new">
+each
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+in
+</ins>
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-new">active
+</ins>
+context
+<del class="diff-old">supplied
+above
+against
+</del>
+</a>
+<ins class="diff-chg">is
+visited,
+ordered
+by
+length,
+shortest
+first
+(ties
+are
+broken
+by
+choosing
+</ins>
+the
+<del class="diff-old">JSON-LD
+input
+document
+provided
+above
+</del>
+<ins class="diff-chg">lexicographically
+least
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+).
+For
+each
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>,<ins class="diff-chg">
+an
+entry
+is
+added
+to
+the
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a><ins class="diff-chg">
+for
+each
+possible
+combination
+of
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+that
+</ins>
+would
+<del class="diff-old">result
+in
+</del>
+<ins class="diff-chg">legally
+match
+</ins>
+the
+<del class="diff-old">following
+output:
+{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+}
+The
+compaction
+algorithm
+also
+enables
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a>.<ins class="diff-chg">
+Illegal
+matches
+include
+differences
+between
+a
+value's
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+and
+that
+of
+</ins>
+the
+<del class="diff-old">developer
+to
+map
+any
+expanded
+format
+into
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a>.<ins class="diff-chg">
+If
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+has
+no
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a>,<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a>,<ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+(or
+some
+combination
+of
+these),
+then
+it
+will
+have
+</ins>
+an
+<del class="diff-old">application-specific
+compacted
+format.
+While
+</del>
+<ins class="diff-chg">entry
+in
+</ins>
+the
+<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
+<ins class="diff-new">inverse
+</ins>
+context
+<del class="diff-old">provided
+above
+mapped
+</del>
+</a>
+<ins class="diff-chg">using
+the
+special
+key
+</ins>
+<code>
+<del class="diff-old">http://xmlns.com/foaf/0.1/name
+</del>
+<ins class="diff-chg">@none
+</ins></code>.<ins class="diff-chg">
+This
+allows
+the
+</ins><a href="#term-selection"><ins class="diff-chg">
+Term
+Selection
+algorithm
+</ins></a>
+to
+<del class="diff-old">name
+,
+it
+could
+have
+also
+mapped
+it
+</del>
+<ins class="diff-chg">fall
+back
+</ins>
+to
+<del class="diff-old">any
+arbitrary
+string
+provided
+by
+the
+developer.
+</del>
+<ins class="diff-chg">choosing
+more
+generic
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a><ins class="diff-chg">
+when
+a
+more
+specifically-matching
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+is
+not
+available
+for
+a
+particular
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
+<del class="diff-old">4.8.1
+Compaction
+</del>
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr></a><ins class="diff-chg">
+and
+value
+combination.
+</ins></p></section><section><h4 id="algorithm-6">
+Algorithm
+</h4>
+<p>
+The
+algorithm
+takes
+<del class="diff-old">three
+input
+variables:
+an
+</del>
+<ins class="diff-chg">one
+required
+input:
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+<del class="diff-old">,
+an
+active
+property
+,
+and
+</del>
+</a>
+<ins class="diff-chg">that
+the
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a><ins class="diff-chg">
+is
+being
+created
+for.
+</ins></p><ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+</ins>
+an
+<del class="diff-old">element
+</del>
+<ins class="diff-chg">empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>.</li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+default
+language
+</ins></i>
+to
+<del class="diff-old">be
+compacted.
+To
+begin,
+</del>
+<code>
+<ins class="diff-chg">@none
+</ins></code>.<ins class="diff-chg">
+If
+</ins>
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+<del class="diff-old">is
+</del>
+<ins class="diff-chg">has
+a
+</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
+default
+language
+</ins></a>,
+set
+<i>
+<ins class="diff-new">default
+language
+</ins></i>
+to
+<del class="diff-old">the
+result
+of
+performing
+Context
+Processing
+</del>
+<ins class="diff-chg">it.
+</ins></li><li><ins class="diff-chg">
+For
+each
+key
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins>
+</a>
+<del class="diff-old">on
+</del>
+<ins class="diff-chg">and
+value
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+in
+</ins>
+the
+<del class="diff-old">passed
+context
+,
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">context
+</ins></a>,<ins class="diff-chg">
+ordered
+by
+shortest
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+first
+(breaking
+ties
+by
+choosing
+the
+lexicographically
+least
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+):
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins>
+</a>
+is
+<del class="diff-old">set
+to
+</del>
+<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>,
+<del class="diff-old">and
+element
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a><ins class="diff-chg">
+cannot
+be
+selected
+during
+</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
+compaction
+</ins></a>,<ins class="diff-chg">
+so
+continue
+to
+the
+next
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>.</li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+container
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@none
+</ins></code>.<ins class="diff-chg">
+If
+there
+</ins>
+is
+<ins class="diff-new">a
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mapping
+</ins></a><ins class="diff-new">
+in
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
+term
+definition
+</ins></a>,
+set
+<i>
+<ins class="diff-new">container
+</ins></i><ins class="diff-new">
+to
+its
+associated
+value.
+</ins></li><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+iri
+</ins></i>
+to
+the
+<del class="diff-old">result
+</del>
+<ins class="diff-chg">value
+</ins>
+of
+<del class="diff-old">performing
+</del>
+the
+<del class="diff-old">Expansion
+Algorithm
+</del>
+<a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins>
+</a>
+<del class="diff-old">on
+</del>
+<ins class="diff-chg">for
+</ins>
+the
+<del class="diff-old">JSON-LD
+input
+</del>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+<ins class="diff-chg">term
+definition
+</ins>
+</a>.
+<del class="diff-old">This
+removes
+any
+existing
+context
+to
+allow
+the
+given
+active
+context
+to
+be
+cleanly
+applied.
+</del>
+</li>
+<li>
+If
+<del class="diff-old">element
+</del>
+<i>
+<ins class="diff-chg">iri
+</ins></i>
+is
+<del class="diff-old">an
+array
+,
+process
+each
+entry
+</del>
+<ins class="diff-chg">not
+a
+key
+</ins>
+in
+<del class="diff-old">element
+recursively
+using
+this
+algorithm,
+passing
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i>,<ins class="diff-chg">
+add
+</ins>
+a
+<del class="diff-old">copy
+of
+</del>
+<ins class="diff-chg">key-value
+pair
+where
+</ins>
+the
+<del class="diff-old">active
+context
+</del>
+<ins class="diff-chg">key
+is
+</ins><i><ins class="diff-chg">
+iri
+</ins></i>
+and
+the
+<del class="diff-old">active
+property
+.
+</del>
+<ins class="diff-chg">value
+is
+an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li><li><ins class="diff-chg">
+Reference
+the
+value
+associated
+with
+the
+</ins><i><ins class="diff-chg">
+iri
+</ins></i><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+container
+map
+</ins></i>.</li><li>
+If
+<del class="diff-old">element
+</del>
+<i>
+<ins class="diff-chg">container
+</ins></i>
+has
+<ins class="diff-new">no
+</ins><i><ins class="diff-new">
+container
+map
+</ins></i><ins class="diff-new">
+member,
+create
+one
+and
+set
+its
+value
+to
+</ins>
+a
+<del class="diff-old">single
+item,
+</del>
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+with
+two
+members.
+The
+first
+member
+is
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+and
+its
+value
+is
+a
+new
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>,
+the
+<del class="diff-old">compacted
+</del>
+<ins class="diff-chg">second
+member
+is
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+and
+its
+</ins>
+value
+is
+<ins class="diff-new">a
+new
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a>.</li><li><ins class="diff-new">
+Reference
+the
+value
+associated
+with
+the
+</ins><i><ins class="diff-new">
+container
+</ins></i><ins class="diff-new">
+member
+in
+</ins><i><ins class="diff-new">
+container
+map
+</ins></i><ins class="diff-new">
+using
+the
+variable
+</ins><i><ins class="diff-new">
+type/language
+map
+</ins></i>.</li><li><ins class="diff-new">
+If
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-new">
+term
+definition
+</ins></a><ins class="diff-new">
+indicates
+</ins>
+that
+<del class="diff-old">item;
+otherwise
+</del>
+the
+<del class="diff-old">compacted
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a><ins class="diff-chg">
+represents
+a
+</ins><a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property"><ins class="diff-chg">
+reverse
+property
+</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
+Reference
+the
+</ins>
+value
+<del class="diff-old">is
+element
+.
+</del>
+<ins class="diff-chg">associated
+with
+the
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+type/language
+map
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+type
+map
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+type
+map
+</ins></i><ins class="diff-chg">
+does
+not
+have
+a
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+member,
+create
+one
+and
+set
+its
+value
+to
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+being
+processed.
+</ins></li></ol>
+</li>
+<li>
+Otherwise,
+if
+<del class="diff-old">element
+is
+an
+object:
+</del>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+<ins class="diff-chg">term
+definition
+</ins></a><ins class="diff-chg">
+has
+a
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a>:
+<ol class="algorithm">
+<li>
+<del class="diff-old">If
+element
+has
+an
+</del>
+<ins class="diff-chg">Reference
+the
+value
+associated
+with
+the
+</ins>
+<code>
+<del class="diff-old">@value
+</del>
+<ins class="diff-chg">@type
+</ins>
+</code>
+<del class="diff-old">property
+or
+element
+is
+</del>
+<ins class="diff-chg">member
+in
+</ins><i><ins class="diff-chg">
+type/language
+map
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+type
+map
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+type
+map
+</ins></i><ins class="diff-chg">
+does
+not
+have
+</ins>
+a
+<del class="diff-old">subject
+reference
+</del>
+<ins class="diff-chg">member
+corresponding
+to
+the
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins>
+</a>,
+<del class="diff-old">return
+</del>
+<ins class="diff-chg">create
+one
+and
+set
+its
+value
+to
+</ins>
+the
+<del class="diff-old">result
+of
+performing
+Value
+Compaction
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins>
+</a>
+<del class="diff-old">on
+element
+using
+active
+property
+.
+</del>
+<ins class="diff-chg">being
+processed.
+</ins></li></ol>
+</li>
+<li>
+Otherwise,
+if
+<del class="diff-old">the
+active
+property
+</del>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+<ins class="diff-chg">term
+definition
+</ins>
+</a>
+has
+a
+<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
+<ins class="diff-new">language
+mapping
+</ins></a><ins class="diff-new">
+(might
+be
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a><ins class="diff-new">
+):
+</ins><ol class="algorithm"><li><ins class="diff-new">
+Reference
+the
+value
+associated
+with
+the
+</ins>
+<code>
+<del class="diff-old">@container
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<ins class="diff-new">member
+in
+</ins><i><ins class="diff-new">
+type/language
+map
+</ins></i><ins class="diff-new">
+using
+the
+variable
+</ins><i><ins class="diff-new">
+language
+map
+</ins></i>.</li><li><ins class="diff-new">
+If
+the
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+</ins>
+mapping
+</a>
+<ins class="diff-new">equals
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+set
+</ins><i><ins class="diff-new">
+language
+</ins></i>
+to
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@null
+</ins>
+</code>
+<ins class="diff-new">;
+otherwise
+set
+it
+to
+the
+language
+code
+in
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins></a>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+language
+map
+</ins></i><ins class="diff-new">
+does
+not
+have
+a
+</ins><i><ins class="diff-new">
+language
+</ins></i><ins class="diff-new">
+member,
+create
+one
+</ins>
+and
+<del class="diff-old">element
+has
+</del>
+<ins class="diff-chg">set
+its
+value
+to
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+being
+processed.
+</ins></li></ol></li><li><ins class="diff-chg">
+Otherwise:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+Reference
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+type/language
+map
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+language
+map
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+language
+map
+</ins></i><ins class="diff-chg">
+does
+not
+have
+a
+</ins><i><ins class="diff-chg">
+default
+language
+</ins></i><ins class="diff-chg">
+member,
+create
+one
+and
+set
+its
+value
+to
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+being
+processed.
+</ins></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+language
+map
+</ins></i><ins class="diff-chg">
+does
+not
+have
+</ins>
+a
+<del class="diff-old">corresponding
+</del>
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@none
+</ins>
+</code>
+<del class="diff-old">property,
+recursively
+</del>
+<ins class="diff-chg">member,
+create
+one
+and
+set
+its
+value
+to
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+being
+processed.
+</ins></li><li><ins class="diff-chg">
+Reference
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+type/language
+map
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+type
+map
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+type
+map
+</ins></i><ins class="diff-chg">
+does
+not
+have
+a
+</ins><code><ins class="diff-chg">
+@none
+</ins></code><ins class="diff-chg">
+member,
+create
+one
+and
+set
+its
+value
+to
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+being
+processed.
+</ins></li></ol></li></ol></li><li><ins class="diff-chg">
+Return
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li></ol></section></section><section id="iri-compaction"><h3><span class="secno"><ins class="diff-chg">
+8.3
+</ins></span><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+Compaction
+</ins></h3><p><ins class="diff-chg">
+This
+algorithm
+compacts
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+to
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+compact
+<del class="diff-old">that
+property's
+</del>
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr></a>,<ins class="diff-chg">
+or
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+to
+a
+</ins><a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias"><ins class="diff-chg">
+keyword
+alias
+</ins></a>.<ins class="diff-chg">
+A
+</ins>
+value
+<del class="diff-old">passing
+</del>
+<ins class="diff-chg">that
+is
+associated
+with
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+may
+be
+passed
+in
+order
+to
+assist
+in
+selecting
+the
+most
+context-appropriate
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>.</p><section class="informative"><h4 id="overview-7"><ins class="diff-chg">
+Overview
+</ins></h4><p><em><ins class="diff-chg">
+This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+If
+the
+passed
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+we
+simply
+return
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.<ins class="diff-chg">
+Otherwise,
+we
+first
+try
+to
+find
+</ins>
+a
+<del class="diff-old">copy
+of
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a><ins class="diff-chg">
+that
+</ins>
+the
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+can
+be
+compacted
+to
+if
+it
+is
+relative
+to
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+<del class="diff-old">context
+</del>
+<ins class="diff-chg">context's
+</ins>
+</a>
+<a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">
+<ins class="diff-new">vocabulary
+mapping
+</ins></a>.<ins class="diff-new">
+In
+order
+to
+select
+the
+most
+appropriate
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a>,<ins class="diff-new">
+we
+may
+have
+to
+collect
+information
+about
+the
+passed
+</ins><i><ins class="diff-new">
+value
+</ins></i>.<ins class="diff-new">
+This
+information
+includes
+which
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mappings
+</ins></a><ins class="diff-new">
+would
+be
+preferred
+for
+expressing
+the
+</ins><i><ins class="diff-new">
+value
+</ins></i>,
+and
+<ins class="diff-new">what
+its
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins></a><ins class="diff-new">
+is.
+For
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
+JSON-LD
+lists
+</ins></a>,
+the
+<del class="diff-old">active
+property
+</del>
+<a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">
+<ins class="diff-chg">type
+mapping
+</ins>
+</a>
+<del class="diff-old">ensuring
+</del>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+will
+be
+chosen
+based
+on
+the
+most
+specific
+values
+</ins>
+that
+<ins class="diff-new">work
+for
+all
+items
+in
+</ins>
+the
+<del class="diff-old">result
+</del>
+<ins class="diff-chg">list.
+Once
+this
+information
+is
+gathered,
+it
+</ins>
+is
+<ins class="diff-new">passed
+to
+the
+</ins><a href="#term-selection"><ins class="diff-new">
+Term
+Selection
+algorithm
+</ins></a>,<ins class="diff-new">
+which
+will
+return
+the
+most
+appropriate
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+to
+use.
+</ins></p><p><ins class="diff-new">
+If
+no
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+was
+found
+that
+could
+be
+used
+to
+compact
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>,
+an
+<del class="diff-old">array
+and
+removing
+null
+</del>
+<ins class="diff-chg">attempt
+is
+made
+compact
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>
+<del class="diff-old">values.
+Return
+either
+</del>
+<ins class="diff-chg">using
+</ins>
+the
+<del class="diff-old">result
+as
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context's
+</ins></a><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
+vocabulary
+mapping
+</ins></a>,<ins class="diff-chg">
+if
+there
+is
+one.
+If
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+could
+not
+be
+compacted,
+</ins>
+an
+<del class="diff-old">array,
+</del>
+<ins class="diff-chg">attempt
+is
+made
+to
+find
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.<ins class="diff-chg">
+If
+there
+is
+no
+appropriate
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+is
+transformed
+to
+a
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
+relative
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+using
+the
+document's
+</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.<ins class="diff-chg">
+Finally,
+if
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+still
+could
+not
+be
+compacted,
+it
+is
+returned
+</ins>
+as
+<ins class="diff-new">is.
+</ins></p></section><section><h4 id="algorithm-7"><ins class="diff-new">
+Algorithm
+</ins></h4><p><ins class="diff-new">
+This
+algorithm
+takes
+three
+required
+inputs
+and
+three
+optional
+inputs.
+The
+required
+inputs
+</ins>
+an
+<del class="diff-old">object
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context
+</ins></a>,<ins class="diff-chg">
+an
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<ins class="diff-chg">
+and
+the
+</ins><i><ins class="diff-chg">
+iri
+</ins></i><ins class="diff-chg">
+to
+be
+compacted.
+The
+optional
+inputs
+are
+a
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+associated
+</ins>
+with
+<ins class="diff-new">the
+</ins><i><ins class="diff-new">
+iri
+</ins></i>,<ins class="diff-new">
+a
+</ins><i><ins class="diff-new">
+vocab
+</ins></i><ins class="diff-new">
+flag
+which
+specifies
+whether
+the
+passed
+</ins><i><ins class="diff-new">
+iri
+</ins></i><ins class="diff-new">
+should
+be
+compacted
+using
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context's
+</ins></a><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
+vocabulary
+mapping
+</ins></a>,<ins class="diff-new">
+and
+a
+</ins><i><ins class="diff-new">
+reverse
+</ins></i><ins class="diff-new">
+flag
+which
+specifies
+whether
+a
+</ins><a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property"><ins class="diff-new">
+reverse
+property
+</ins></a><ins class="diff-new">
+is
+being
+compacted.
+If
+not
+passed,
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+is
+set
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+vocab
+</ins></i><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+reverse
+</ins></i><ins class="diff-new">
+are
+both
+set
+to
+</ins><code><ins class="diff-new">
+false
+</ins></code>.</p><ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+iri
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+return
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+vocab
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+iri
+</ins></i><ins class="diff-new">
+is
+</ins>
+a
+key
+<ins class="diff-new">in
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+default
+language
+</ins></i><ins class="diff-new">
+to
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context's
+</ins></a><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-new">
+default
+language
+</ins></a>,<ins class="diff-new">
+if
+it
+has
+one,
+otherwise
+to
+</ins><code><ins class="diff-new">
+@none
+</ins></code>.</li><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+containers
+</ins></i><ins class="diff-new">
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>.<ins class="diff-new">
+This
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+will
+be
+used
+to
+keep
+track
+of
+an
+ordered
+list
+</ins>
+of
+<ins class="diff-new">preferred
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mappings
+</ins></a><ins class="diff-new">
+for
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a>,<ins class="diff-new">
+based
+on
+what
+is
+compatible
+with
+</ins><i><ins class="diff-new">
+value
+</ins></i>.</li><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+type/language
+</ins></i><ins class="diff-new">
+to
+</ins>
+<code>
+<del class="diff-old">@list
+(or
+appropriate
+alias
+from
+active
+context
+</del>
+<ins class="diff-chg">@language
+</ins></code>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+type/language
+value
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@null
+</ins></code>.<ins class="diff-chg">
+These
+two
+variables
+will
+keep
+track
+of
+the
+preferred
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins>
+</a>
+<del class="diff-old">).
+</del>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+for
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>,<ins class="diff-chg">
+based
+on
+what
+is
+compatible
+with
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+construct
+output
+as
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+</ins>
+a
+<del class="diff-old">new
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+<del class="diff-old">used
+for
+returning
+</del>
+<ins class="diff-chg">that
+contains
+</ins>
+the
+<del class="diff-old">result
+of
+compacting
+element
+.
+For
+each
+property
+</del>
+<ins class="diff-chg">key
+</ins><code><ins class="diff-chg">
+@index
+</ins></code>,<ins class="diff-chg">
+then
+append
+the
+value
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+containers
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+reverse
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<ins class="diff-chg">
+set
+</ins><i><ins class="diff-chg">
+type/language
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@type
+</ins></code>,<i><ins class="diff-chg">
+type/language
+value
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code>,
+and
+<ins class="diff-chg">append
+</ins><code><ins class="diff-chg">
+@set
+</ins></code><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+containers
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i>
+value
+</i>
+<ins class="diff-chg">is
+a
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins></a>,<ins class="diff-chg">
+then
+set
+</ins><i><ins class="diff-chg">
+type/language
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+type/language
+value
+</ins></i><ins class="diff-chg">
+to
+the
+most
+specific
+values
+that
+work
+for
+all
+items
+</ins>
+in
+<del class="diff-old">element:
+</del>
+<ins class="diff-chg">the
+list
+as
+follows:
+</ins>
+<ol class="algorithm">
+<li>
+If
+<del class="diff-old">property
+</del>
+<code>
+<ins class="diff-chg">@index
+</ins></code>
+is
+<ins class="diff-new">a
+not
+key
+in
+</ins><i><ins class="diff-new">
+value
+</ins></i>,<ins class="diff-new">
+then
+append
+</ins>
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">@list
+</ins>
+</code>
+<del class="diff-old">or
+</del>
+<ins class="diff-chg">to
+</ins><i><ins class="diff-chg">
+containers
+</ins></i>.</li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+list
+</ins></i><ins class="diff-chg">
+to
+the
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+associated
+with
+the
+key
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@list
+</ins>
+</code>
+<ins class="diff-new">in
+</ins><i><ins class="diff-new">
+value
+</ins></i>.</li><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+common
+language
+</ins></i><ins class="diff-new">
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>.<ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+list
+</ins></i><ins class="diff-new">
+is
+empty,
+set
+</ins><i><ins class="diff-new">
+common
+language
+</ins></i><ins class="diff-new">
+to
+</ins><i><ins class="diff-new">
+default
+language
+</ins></i>.</li><li><ins class="diff-new">
+For
+each
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+list
+</ins></i>:
+<ol class="algorithm">
+<li>
+<del class="diff-old">Set
+active
+property
+</del>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+item
+language
+</ins></i>
+to
+<code>
+<ins class="diff-new">@none
+</ins></code><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+item
+type
+</ins></i><ins class="diff-new">
+to
+</ins><code><ins class="diff-new">
+@none
+</ins></code>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+contains
+</ins>
+the
+<del class="diff-old">result
+of
+performing
+IRI
+Compaction
+on
+property
+.
+</del>
+<ins class="diff-chg">key
+</ins><code><ins class="diff-chg">
+@value
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins><code><ins class="diff-chg">
+@language
+</ins></code>,<ins class="diff-chg">
+then
+set
+</ins><i><ins class="diff-chg">
+item
+language
+</ins></i><ins class="diff-chg">
+to
+its
+associated
+value.
+</ins></li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+contains
+the
+key
+</ins><code><ins class="diff-chg">
+@type
+</ins></code>,<ins class="diff-chg">
+set
+</ins><i><ins class="diff-chg">
+item
+type
+</ins></i><ins class="diff-chg">
+to
+its
+associated
+value.
+</ins></li><li><ins class="diff-chg">
+Otherwise,
+set
+</ins><i><ins class="diff-chg">
+item
+language
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@null
+</ins></code>.</li></ol></li><li><ins class="diff-chg">
+Otherwise,
+set
+</ins><i><ins class="diff-chg">
+item
+type
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@id
+</ins></code>.
+</li>
+<li>
+If
+<del class="diff-old">value
+</del>
+<i>
+<ins class="diff-chg">common
+language
+</ins></i>
+is
+<del class="diff-old">a
+string
+</del>
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-chg">null
+</ins>
+</a>,
+<ins class="diff-new">set
+it
+to
+</ins><i><ins class="diff-new">
+item
+language
+</ins></i>.</li><li><ins class="diff-new">
+Otherwise,
+if
+</ins><i><ins class="diff-new">
+item
+language
+</ins></i><ins class="diff-new">
+does
+not
+equal
+</ins><i><ins class="diff-new">
+common
+language
+</ins></i><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+contains
+</ins>
+the
+<del class="diff-old">compacted
+value
+</del>
+<ins class="diff-chg">key
+</ins><code><ins class="diff-chg">
+@value
+</ins></code>,<ins class="diff-chg">
+then
+set
+</ins><i><ins class="diff-chg">
+common
+language
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@none
+</ins></code><ins class="diff-chg">
+because
+list
+items
+have
+conflicting
+languages.
+</ins></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+common
+type
+</ins></i>
+is
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-new">null
+</ins></a>,<ins class="diff-new">
+set
+it
+to
+</ins><i><ins class="diff-new">
+item
+type
+</ins></i>.</li><li><ins class="diff-new">
+Otherwise,
+if
+</ins><i><ins class="diff-new">
+item
+type
+</ins></i><ins class="diff-new">
+does
+not
+equal
+</ins><i><ins class="diff-new">
+common
+type
+</ins></i>,<ins class="diff-new">
+then
+set
+</ins><i><ins class="diff-new">
+common
+type
+</ins></i><ins class="diff-new">
+to
+</ins><code><ins class="diff-new">
+@none
+</ins></code><ins class="diff-new">
+because
+list
+items
+have
+conflicting
+types.
+</ins></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+common
+language
+</ins></i><ins class="diff-new">
+is
+</ins><code><ins class="diff-new">
+@none
+</ins></code><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+common
+type
+</ins></i><ins class="diff-new">
+is
+</ins><code><ins class="diff-new">
+@none
+</ins></code>,<ins class="diff-new">
+then
+stop
+processing
+items
+in
+</ins>
+the
+<del class="diff-old">result
+of
+performing
+IRI
+Compaction
+on
+</del>
+<ins class="diff-chg">list
+because
+it
+has
+been
+detected
+that
+there
+is
+no
+common
+language
+or
+type
+amongst
+the
+items.
+</ins></li></ol></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+common
+language
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+set
+it
+to
+</ins><code><ins class="diff-chg">
+@none
+</ins></code>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+common
+type
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+set
+it
+to
+</ins><code><ins class="diff-chg">
+@none
+</ins></code>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+common
+type
+</ins></i><ins class="diff-chg">
+is
+not
+</ins><code><ins class="diff-chg">
+@none
+</ins></code><ins class="diff-chg">
+then
+set
+</ins><i><ins class="diff-chg">
+type/language
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+type/language
+</ins>
+value
+<del class="diff-old">.
+</del>
+</i>
+<ins class="diff-chg">to
+</ins><i><ins class="diff-chg">
+common
+type
+</ins></i>.
+</li>
+<li>
+Otherwise,
+<ins class="diff-chg">set
+</ins><i><ins class="diff-chg">
+type/language
+</ins>
+value
+<del class="diff-old">must
+be
+an
+array
+.
+Perform
+IRI
+Compaction
+on
+every
+entry
+of
+</del>
+</i>
+<ins class="diff-chg">to
+</ins><i><ins class="diff-chg">
+common
+language
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Otherwise:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i>
+value
+<del class="diff-old">.
+</del>
+</i>
+<ins class="diff-chg">is
+a
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins></a>:<ol class="algorithm"><li>
+If
+<i>
+value
+</i>
+contains
+<del class="diff-old">just
+one
+entry,
+value
+is
+</del>
+<ins class="diff-chg">the
+key
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+and
+does
+not
+contain
+the
+key
+</ins><code><ins class="diff-chg">
+@index
+</ins></code>,<ins class="diff-chg">
+then
+</ins>
+set
+<i>
+<ins class="diff-new">type/language
+value
+</ins></i>
+to
+<del class="diff-old">that
+entry.
+</del>
+<ins class="diff-chg">its
+associated
+value
+and
+append
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+containers
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Add
+active
+property
+and
+</del>
+<ins class="diff-chg">Otherwise,
+if
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+contains
+</ins>
+the
+<del class="diff-old">expanded
+</del>
+<ins class="diff-chg">key
+</ins><code><ins class="diff-chg">
+@type
+</ins></code>,<ins class="diff-chg">
+then
+set
+</ins><i><ins class="diff-chg">
+type/language
+</ins>
+value
+</i>
+to
+<del class="diff-old">output
+.
+</del>
+<ins class="diff-chg">its
+associated
+value
+and
+set
+</ins><i><ins class="diff-chg">
+type/language
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@type
+</ins></code>.
+</li>
+</ol>
+</li>
+<li>
+Otherwise,
+<ins class="diff-chg">set
+</ins><i><ins class="diff-chg">
+type/language
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+and
+set
+</ins><i><ins class="diff-chg">
+type/language
+</ins>
+value
+<del class="diff-old">must
+</del>
+</i>
+<ins class="diff-chg">to
+</ins><code><ins class="diff-chg">
+@id
+</ins></code>.</li><li><ins class="diff-chg">
+Append
+</ins><code><ins class="diff-chg">
+@set
+</ins></code><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+containers
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Append
+</ins><code><ins class="diff-chg">
+@none
+</ins></code><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+containers
+</ins></i>.<ins class="diff-chg">
+This
+represents
+the
+non-existence
+of
+a
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a>,<ins class="diff-chg">
+and
+it
+will
+</ins>
+be
+<ins class="diff-new">the
+last
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mapping
+</ins></a><ins class="diff-new">
+value
+to
+be
+checked
+as
+it
+is
+the
+most
+generic.
+</ins></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+type/language
+value
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+set
+it
+to
+</ins><code><ins class="diff-new">
+@null
+</ins></code>.<ins class="diff-new">
+This
+is
+the
+key
+under
+which
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a><ins class="diff-new">
+values
+are
+stored
+in
+the
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins></a><i><ins class="diff-new">
+entry
+</ins></i>.</li><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+preferred
+values
+</ins></i><ins class="diff-new">
+to
+</ins>
+an
+<ins class="diff-new">empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>.<ins class="diff-new">
+This
+</ins>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+<ins class="diff-new">will
+indicate,
+in
+order,
+the
+preferred
+values
+for
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term's
+</ins></a><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins>
+</a>.
+</li>
+<li>
+If
+<i>
+<ins class="diff-chg">type/language
+</ins>
+value
+</i>
+is
+<del class="diff-old">empty:
+</del>
+<code>
+<ins class="diff-chg">@reverse
+</ins></code>,<ins class="diff-chg">
+append
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+preferred
+values
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+type/language
+value
+</ins></i><ins class="diff-chg">
+is
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+has
+an
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+member:
+</ins>
+<ol class="algorithm">
+<li>
+<del class="diff-old">Set
+active
+property
+to
+</del>
+<ins class="diff-chg">If
+</ins>
+the
+result
+of
+<del class="diff-old">performing
+</del>
+<ins class="diff-chg">using
+the
+</ins>
+<a href="#iri-compaction">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">Compaction
+on
+property
+.
+Create
+an
+entry
+</del>
+<ins class="diff-chg">compaction
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<ins class="diff-chg">
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+key
+</ins>
+in
+<del class="diff-old">output
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i>
+for
+<del class="diff-old">active
+property
+</del>
+<i>
+<ins class="diff-chg">iri
+</ins></i>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins>
+</a>
+<ins class="diff-new">for
+</ins><i><ins class="diff-new">
+vocab
+</ins></i>,
+and
+<a class="tref internalDFN" title="true" href="#dfn-true">
+<ins class="diff-chg">true
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+document
+relative
+</ins></i><ins class="diff-chg">
+has
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+in
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+with
+an
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></a><ins class="diff-chg">
+that
+equals
+the
+</ins>
+value
+<del class="diff-old">.
+</del>
+<ins class="diff-chg">associated
+with
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+key
+in
+</ins><i><ins class="diff-chg">
+value
+</ins></i>,<ins class="diff-chg">
+then
+append
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code>,<code><ins class="diff-chg">
+@id
+</ins></code>,<ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+@none
+</ins></code>,<ins class="diff-chg">
+in
+that
+order,
+to
+</ins><i><ins class="diff-chg">
+preferred
+values
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+append
+</ins><code><ins class="diff-chg">
+@id
+</ins></code>,<code><ins class="diff-chg">
+@vocab
+</ins></code>,<ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+@none
+</ins></code>,<ins class="diff-chg">
+in
+that
+order,
+to
+</ins><i><ins class="diff-chg">
+preferred
+values
+</ins></i>.
+</li>
+</ol>
+</li>
+<li>
+<del class="diff-old">For
+each
+item
+in
+</del>
+<ins class="diff-chg">Otherwise,
+append
+</ins><i><ins class="diff-chg">
+type/language
+</ins>
+value
+<del class="diff-old">:
+</del>
+</i>
+<ins class="diff-chg">and
+</ins><code><ins class="diff-chg">
+@none
+</ins></code>,<ins class="diff-chg">
+in
+that
+order,
+to
+</ins><i><ins class="diff-chg">
+preferred
+values
+</ins></i>.</li>
+<li>
+<del class="diff-old">Set
+</del>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+the
+</ins><a href="#term-selection"><ins class="diff-chg">
+Term
+Selection
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<i><ins class="diff-chg">
+iri
+</ins></i>,<i><ins class="diff-chg">
+containers
+</ins></i>,<i><ins class="diff-chg">
+type/language
+</ins></i>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+preferred
+values
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+term
+</ins></i><ins class="diff-chg">
+is
+not
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+return
+</ins><i><ins class="diff-chg">
+term
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+At
+this
+point,
+there
+is
+no
+simple
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+that
+</ins><i><ins class="diff-chg">
+iri
+</ins></i><ins class="diff-chg">
+can
+be
+compacted
+to.
+If
+</ins><i><ins class="diff-chg">
+vocab
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">context
+</ins>
+</a>
+<ins class="diff-new">has
+a
+</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
+vocabulary
+mapping
+</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+iri
+</ins></i><ins class="diff-new">
+begins
+with
+the
+</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-new">
+vocabulary
+mapping's
+</ins></a><ins class="diff-new">
+value
+but
+is
+longer,
+then
+initialize
+</ins><i><ins class="diff-new">
+suffix
+</ins></i>
+to
+the
+<del class="diff-old">result
+</del>
+<ins class="diff-chg">substring
+</ins>
+of
+<del class="diff-old">performing
+</del>
+<i>
+<ins class="diff-chg">iri
+</ins></i><ins class="diff-chg">
+that
+does
+not
+match.
+If
+</ins><i><ins class="diff-chg">
+suffix
+</ins></i><ins class="diff-chg">
+does
+not
+have
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+in
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<ins class="diff-chg">
+then
+return
+</ins><i><ins class="diff-chg">
+suffix
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+The
+</ins><i><ins class="diff-chg">
+iri
+</ins></i><ins class="diff-chg">
+could
+not
+be
+compacted
+using
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context's
+</ins></a><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
+vocabulary
+mapping
+</ins></a>.<ins class="diff-chg">
+Try
+to
+create
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>,
+<ins class="diff-new">starting
+by
+initializing
+</ins><i><ins class="diff-new">
+compact
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">Compaction
+</del>
+</i>
+<ins class="diff-chg">to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.<ins class="diff-chg">
+This
+variable
+will
+be
+used
+to
+tore
+the
+created
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+if
+any.
+</ins></li><li><ins class="diff-chg">
+For
+each
+key
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins>
+</a>
+<del class="diff-old">for
+property
+</del>
+and
+<del class="diff-old">item
+using
+</del>
+<ins class="diff-chg">value
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+in
+</ins>
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>:
+<ol class="algorithm">
+<li>
+<ins class="diff-new">If
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+contains
+a
+colon
+(
+</ins><code>:</code><ins class="diff-new">
+),
+then
+continue
+to
+the
+next
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+because
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+terms
+</ins></a><ins class="diff-new">
+with
+colons
+can't
+be
+used
+as
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-new">
+prefixes
+</ins>
+</a>.
+</li>
+<li>
+<del class="diff-old">Compact
+item
+by
+recursively
+performing
+this
+algorithm
+passing
+</del>
+<ins class="diff-chg">If
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+its
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></a><ins class="diff-chg">
+equals
+</ins><i><ins class="diff-chg">
+iri
+</ins></i>,<ins class="diff-chg">
+or
+its
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></a><ins class="diff-chg">
+is
+not
+</ins>
+a
+<del class="diff-old">copy
+</del>
+<ins class="diff-chg">substring
+at
+the
+beginning
+</ins>
+of
+<i>
+<ins class="diff-new">iri
+</ins></i>,
+the
+<del class="diff-old">active
+context
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a><ins class="diff-chg">
+cannot
+be
+used
+as
+a
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
+prefix
+</ins>
+</a>
+<ins class="diff-new">because
+it
+is
+not
+a
+partial
+match
+with
+</ins><i><ins class="diff-new">
+iri
+</ins></i>.<ins class="diff-new">
+Continue
+with
+the
+next
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a>.</li><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+candidate
+</ins></i><ins class="diff-new">
+by
+concatenating
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a>,<ins class="diff-new">
+a
+colon
+(
+</ins><code>:</code><ins class="diff-new">
+),
+</ins>
+and
+the
+<del class="diff-old">active
+property
+</del>
+<ins class="diff-chg">substring
+of
+</ins><i><ins class="diff-chg">
+iri
+</ins></i><ins class="diff-chg">
+that
+follows
+after
+the
+value
+of
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition's
+</ins></a><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins>
+</a>.
+</li>
+<li>
+If
+<del class="diff-old">an
+entry
+already
+exists
+</del>
+<ins class="diff-chg">either
+</ins><i><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+or
+</ins><i><ins class="diff-chg">
+candidate
+</ins></i><ins class="diff-chg">
+is
+shorter
+or
+the
+same
+length
+but
+lexicographically
+less
+than
+</ins><i><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+candidate
+</ins></i><ins class="diff-chg">
+does
+not
+have
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a>
+in
+<del class="diff-old">output
+for
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+<del class="diff-old">property
+,
+convert
+it
+to
+an
+array
+</del>
+<ins class="diff-chg">context
+</ins>
+</a>
+<ins class="diff-new">or
+</ins>
+if
+<del class="diff-old">necessary,
+and
+append
+</del>
+the
+<del class="diff-old">compacted
+</del>
+<a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">
+<ins class="diff-chg">term
+definition
+</ins></a><ins class="diff-chg">
+has
+an
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></a><ins class="diff-chg">
+that
+equals
+</ins><i><ins class="diff-chg">
+iri
+</ins></i><ins class="diff-chg">
+and
+</ins><i>
+value
+<del class="diff-old">.
+</del>
+</i>
+<ins class="diff-chg">is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+set
+</ins><i><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+candidate
+</ins></i>.</li></ol>
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+the
+compacted
+value
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></i>
+is
+not
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-new">null
+</ins></a>,<ins class="diff-new">
+return
+</ins><i><ins class="diff-new">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+vocab
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
+false
+</ins></a><ins class="diff-new">
+then
+transform
+</ins><i><ins class="diff-new">
+iri
+</ins></i><ins class="diff-new">
+to
+a
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
+relative
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+using
+the
+document's
+base
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>.</li><li><ins class="diff-new">
+Finally,
+return
+</ins><i><ins class="diff-new">
+iri
+</ins></i><ins class="diff-new">
+as
+is.
+</ins></li></ol></section></section><section id="term-selection"><h3><span class="secno"><ins class="diff-new">
+8.4
+</ins></span><ins class="diff-new">
+Term
+Selection
+</ins></h3><p><ins class="diff-new">
+This
+algorithm,
+invoked
+via
+the
+</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-new">
+makes
+use
+of
+</ins>
+an
+<del class="diff-old">array
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context's
+</ins></a><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a><ins class="diff-chg">
+to
+find
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+that
+is
+best
+used
+to
+</ins><a class="tref internalDFN" title="compaction" href="#dfn-compaction"><ins class="diff-chg">
+compact
+</ins></a><ins class="diff-chg">
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.<ins class="diff-chg">
+Other
+information
+about
+a
+value
+associated
+with
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+is
+given,
+including
+which
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mappings
+</ins>
+</a>
+and
+<del class="diff-old">active
+property
+</del>
+<ins class="diff-chg">which
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins>
+</a>
+<ins class="diff-new">or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins></a><ins class="diff-new">
+would
+be
+best
+used
+to
+express
+the
+value.
+</ins></p><section class="informative"><h4 id="overview-8"><ins class="diff-new">
+Overview
+</ins></h4><p><em><ins class="diff-new">
+This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-new">
+The
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context's
+</ins></a><ins class="diff-new">
+entry
+for
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+will
+be
+first
+searched
+according
+to
+the
+preferred
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mappings
+</ins></a>,<ins class="diff-new">
+in
+the
+order
+that
+they
+are
+given.
+Amongst
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+terms
+</ins></a><ins class="diff-new">
+with
+a
+matching
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mapping
+</ins></a>,<ins class="diff-new">
+preference
+will
+be
+given
+to
+those
+with
+a
+matching
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins></a>,<ins class="diff-new">
+over
+those
+without
+a
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins></a>.<ins class="diff-new">
+If
+there
+is
+no
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+with
+a
+matching
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mapping
+</ins></a><ins class="diff-new">
+then
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+without
+a
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mapping
+</ins></a><ins class="diff-new">
+that
+matches
+the
+given
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins></a><ins class="diff-new">
+is
+selected.
+If
+there
+is
+still
+no
+selected
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a>,<ins class="diff-new">
+then
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+with
+no
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins></a><ins class="diff-new">
+will
+be
+selected
+if
+available.
+No
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+will
+be
+selected
+that
+</ins>
+has
+a
+<del class="diff-old">@container
+</del>
+<ins class="diff-chg">conflicting
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+</ins>
+mapping
+</a>.
+<ins class="diff-new">Ties
+between
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+terms
+</ins></a><ins class="diff-new">
+that
+have
+the
+same
+mappings
+are
+resolved
+by
+first
+choosing
+the
+shortest
+terms,
+and
+then
+by
+choosing
+the
+lexicographically
+least
+term.
+Note
+that
+these
+ties
+are
+resolved
+automatically
+because
+they
+were
+previously
+resolved
+when
+the
+</ins><a href="#inverse-context-creation"><ins class="diff-new">
+Inverse
+Context
+Creation
+algorithm
+</ins></a><ins class="diff-new">
+was
+used
+</ins>
+to
+<del class="diff-old">@set
+,
+</del>
+create
+<ins class="diff-new">the
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins></a>.</p></section><section><h4 id="algorithm-8"><ins class="diff-new">
+Algorithm
+</ins></h4><p><ins class="diff-new">
+This
+algorithm
+has
+five
+required
+inputs.
+They
+are:
+</ins>
+an
+<del class="diff-old">entry
+in
+output
+</del>
+<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">
+<ins class="diff-chg">inverse
+context
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><i><ins class="diff-chg">
+iri
+</ins></i>,<ins class="diff-chg">
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><i><ins class="diff-chg">
+containers
+</ins></i><ins class="diff-chg">
+that
+represents
+an
+ordered
+list
+of
+preferred
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mappings
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><i><ins class="diff-chg">
+type/language
+</ins></i><ins class="diff-chg">
+that
+indicates
+whether
+to
+look
+</ins>
+for
+<del class="diff-old">active
+property
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins>
+</a>
+<ins class="diff-new">with
+a
+matching
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins></a>,
+and
+<del class="diff-old">value
+as
+</del>
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+<ins class="diff-new">representing
+an
+ordered
+list
+of
+</ins><i><ins class="diff-new">
+preferred
+values
+</ins></i><ins class="diff-new">
+for
+the
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-new">
+language
+mapping
+</ins></a><ins class="diff-new">
+to
+look
+for.
+</ins></p><ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+container
+map
+</ins></i><ins class="diff-new">
+to
+the
+value
+associated
+with
+</ins><i><ins class="diff-new">
+iri
+</ins></i><ins class="diff-new">
+in
+the
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-new">
+inverse
+context
+</ins>
+</a>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+create
+an
+entry
+</del>
+<ins class="diff-chg">For
+each
+item
+</ins><i><ins class="diff-chg">
+container
+</ins></i>
+in
+<del class="diff-old">output
+for
+active
+property
+</del>
+<i>
+<ins class="diff-chg">containers
+</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+container
+</ins></i><ins class="diff-chg">
+is
+not
+a
+key
+in
+</ins><i><ins class="diff-chg">
+container
+map
+</ins></i>,<ins class="diff-chg">
+then
+there
+is
+no
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins>
+</a>
+<del class="diff-old">and
+value
+.
+</del>
+<ins class="diff-chg">with
+a
+matching
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+for
+it,
+so
+continue
+to
+the
+next
+</ins><i><ins class="diff-chg">
+container
+</ins></i>.
+</li>
+<li>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+type/language
+map
+</ins></i><ins class="diff-chg">
+to
+the
+value
+associated
+with
+the
+</ins><i><ins class="diff-chg">
+container
+</ins></i><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+container
+map
+</ins></i>.
+</li>
+<li>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+value
+map
+</ins></i><ins class="diff-chg">
+to
+the
+value
+associated
+with
+</ins><i><ins class="diff-chg">
+type/language
+</ins></i><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+type/language
+map
+</ins></i>.
+</li>
+<li>
+<ins class="diff-chg">For
+each
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+preferred
+values
+</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+is
+not
+a
+key
+in
+</ins><i><ins class="diff-chg">
+value
+map
+</ins></i>,<ins class="diff-chg">
+then
+there
+is
+no
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+with
+a
+matching
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a>,<ins class="diff-chg">
+so
+continue
+to
+the
+next
+</ins><i><ins class="diff-chg">
+item
+</ins></i>.
+</li>
+<li>
+Otherwise,
+<ins class="diff-new">a
+matching
+term
+has
+been
+found,
+</ins>
+return
+<del class="diff-old">element
+as
+</del>
+the
+<del class="diff-old">compacted
+element
+.
+</del>
+<ins class="diff-chg">value
+associated
+with
+the
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+value
+map
+</ins></i>.</li></ol></li></ol></li><li><ins class="diff-chg">
+No
+matching
+term
+has
+been
+found.
+Return
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</li></ol></section></section><section id="value-compaction"><h3>
+<del class="diff-old">Issue
+7
+</del>
+<span class="secno">
+<ins class="diff-chg">8.5
+</ins>
+</span>
+<del class="diff-old">Perhaps
+this
+should
+also
+call
+</del>
+Value
+Compaction
+</h3>
+<p>
+<a class="tref internalDFN" title="expansion" href="#dfn-expansion">
+<ins class="diff-new">Expansion
+</ins></a><ins class="diff-new">
+transforms
+all
+values
+into
+</ins><a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form"><ins class="diff-new">
+expanded
+form
+</ins>
+</a>
+<del class="diff-old">on
+native
+types
+and
+strings,
+which
+could
+consolidate
+potential
+transformation
+</del>
+in
+<del class="diff-old">one
+place.
+If,
+after
+</del>
+<ins class="diff-chg">JSON-LD.
+This
+algorithm
+performs
+</ins>
+the
+<ins class="diff-new">opposite
+operation,
+transforming
+a
+value
+into
+</ins><dfn title="compacted-form" id="dfn-compacted-form"><ins class="diff-new">
+compacted
+form
+</ins></dfn>.<ins class="diff-new">
+This
+</ins>
+algorithm
+<del class="diff-old">outlined
+above
+</del>
+<ins class="diff-chg">compacts
+a
+value
+according
+to
+the
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+in
+the
+given
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+that
+</ins>
+is
+<del class="diff-old">run,
+</del>
+<ins class="diff-chg">associated
+with
+</ins>
+the
+<del class="diff-old">resulting
+</del>
+<ins class="diff-chg">value's
+associated
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>.</p><section class="informative"><h4 id="overview-9"><ins class="diff-chg">
+Overview
+</ins></h4><p>
+<em>
+<del class="diff-old">element
+</del>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins>
+</em>
+</p>
+<p>
+<ins class="diff-new">The
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+to
+compact
+has
+either
+an
+</ins><code><ins class="diff-new">
+@id
+</ins></code><ins class="diff-new">
+or
+an
+</ins><code><ins class="diff-new">
+@value
+</ins></code><ins class="diff-new">
+member.
+</ins></p><p><ins class="diff-new">
+For
+the
+former
+case,
+if
+the
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+of
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a>
+is
+<ins class="diff-new">set
+to
+</ins><code><ins class="diff-new">
+@id
+</ins></code><ins class="diff-new">
+or
+</ins><code><ins class="diff-new">
+@vocab
+</ins></code><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+consists
+of
+only
+of
+</ins>
+an
+<del class="diff-old">array
+,
+put
+element
+</del>
+<code>
+<ins class="diff-chg">@id
+</ins></code><ins class="diff-chg">
+member
+and,
+if
+if
+the
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+of
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+is
+set
+to
+</ins><code><ins class="diff-chg">
+@index
+</ins></code>,<ins class="diff-chg">
+an
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+member,
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+can
+be
+compacted
+to
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+by
+returning
+the
+result
+of
+using
+the
+</ins><a href="#iri-compaction"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+Compaction
+algorithm
+</ins></a><ins class="diff-chg">
+to
+compact
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+member.
+Otherwise,
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+cannot
+be
+compacted
+and
+is
+returned
+as
+is.
+</ins></p><p><ins class="diff-chg">
+For
+the
+latter
+case,
+it
+might
+be
+possible
+to
+compact
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+just
+</ins>
+into
+the
+<ins class="diff-new">value
+associated
+with
+the
+</ins>
+<code>
+<del class="diff-old">@graph
+</del>
+<ins class="diff-chg">@value
+</ins>
+</code>
+<ins class="diff-new">member.
+This
+can
+be
+done
+if
+the
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+</ins>
+property
+<del class="diff-old">of
+</del>
+</a>
+<ins class="diff-chg">has
+</ins>
+a
+<del class="diff-old">new
+JSON
+object
+</del>
+<ins class="diff-chg">matching
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins>
+</a>
+and
+<del class="diff-old">then
+</del>
+<ins class="diff-chg">there
+is
+either
+no
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+member
+or
+the
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+of
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+is
+</ins>
+set
+<del class="diff-old">element
+</del>
+to
+<del class="diff-old">that
+JSON
+object
+</del>
+<code>
+<ins class="diff-chg">@index
+</ins></code>.<ins class="diff-chg">
+It
+can
+also
+be
+done
+if
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+is
+the
+only
+member
+in
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+(apart
+an
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+member
+in
+case
+the
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-chg">
+container
+mapping
+</ins></a><ins class="diff-chg">
+of
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+is
+set
+to
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+)
+and
+either
+its
+associated
+value
+is
+not
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,<ins class="diff-chg">
+there
+is
+no
+</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
+default
+language
+</ins></a>,<ins class="diff-chg">
+or
+there
+is
+an
+explicit
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+for
+the
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins>
+</a>.
+<del class="diff-old">Finally,
+add
+</del>
+</p>
+</section>
+<section>
+<h4 id="algorithm-9">
+<ins class="diff-chg">Algorithm
+</ins></h4><p><ins class="diff-chg">
+This
+algorithm
+has
+four
+required
+inputs:
+an
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<ins class="diff-chg">
+an
+</ins><a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<ins class="diff-chg">
+an
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>,<ins class="diff-chg">
+and
+</ins>
+a
+<i>
+<ins class="diff-new">value
+</ins></i><ins class="diff-new">
+to
+be
+compacted.
+</ins></p><ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+number
+members
+</ins></i><ins class="diff-new">
+to
+the
+number
+of
+members
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+contains.
+</ins></li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+has
+an
+</ins>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">@index
+</ins>
+</code>
+<ins class="diff-new">member
+and
+the
+</ins><a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping"><ins class="diff-new">
+container
+mapping
+</ins></a><ins class="diff-new">
+associated
+to
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+</ins>
+property
+</a>
+<ins class="diff-new">is
+set
+</ins>
+to
+<del class="diff-old">element
+</del>
+<code>
+<ins class="diff-chg">@index
+</ins></code>,<ins class="diff-chg">
+decrease
+</ins><i><ins class="diff-chg">
+number
+members
+</ins></i><ins class="diff-chg">
+by
+</ins><code><ins class="diff-chg">
+1
+</ins></code>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+number
+members
+</ins></i><ins class="diff-chg">
+is
+greater
+than
+</ins><code><ins class="diff-chg">
+2
+</ins></code>,<ins class="diff-chg">
+return
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+as
+it
+cannot
+be
+compacted.
+</ins></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+has
+an
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+member:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+number
+members
+</ins></i><ins class="diff-chg">
+is
+</ins><code><ins class="diff-chg">
+1
+</ins></code>
+and
+<ins class="diff-new">the
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-new">
+type
+mapping
+</ins></a><ins class="diff-new">
+of
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a><ins class="diff-new">
+is
+</ins>
+set
+<del class="diff-old">it
+</del>
+to
+<code>
+<ins class="diff-new">@id
+</ins></code>,<ins class="diff-new">
+return
+</ins>
+the
+<del class="diff-old">initially
+passed
+context
+.
+</del>
+<ins class="diff-chg">result
+of
+using
+the
+</ins><a href="#iri-compaction">
+<del class="diff-old">4.9
+RDF
+Conversion
+A
+JSON-LD
+document
+may
+be
+converted
+between
+other
+RDF-compatible
+document
+formats
+</del>
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr><ins class="diff-chg">
+compaction
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<ins class="diff-chg">
+and
+the
+value
+of
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+member
+for
+</ins><i><ins class="diff-chg">
+iri
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+number
+members
+</ins></i><ins class="diff-chg">
+is
+</ins><code><ins class="diff-chg">
+1
+</ins></code><ins class="diff-chg">
+and
+the
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins></a><ins class="diff-chg">
+of
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+is
+set
+to
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code>,<ins class="diff-chg">
+return
+the
+result
+of
+</ins>
+using
+the
+<del class="diff-old">algorithms
+specified
+in
+this
+section.
+The
+JSON-LD
+Processing
+Model
+describes
+processing
+rules
+</del>
+<a href="#iri-compaction">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr><ins class="diff-chg">
+compaction
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context"><ins class="diff-chg">
+inverse
+context
+</ins></a>,<ins class="diff-chg">
+the
+value
+of
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+member
+</ins>
+for
+<del class="diff-old">extracting
+RDF
+from
+a
+JSON-LD
+document,
+</del>
+<i>
+<ins class="diff-chg">iri
+</ins></i>,
+and
+<a class="tref internalDFN" title="true" href="#dfn-true">
+<ins class="diff-new">true
+</ins></a>
+for
+<del class="diff-old">transforming
+</del>
+<i>
+<ins class="diff-chg">vocab
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+return
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+as
+is.
+</ins></li></ol></li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+has
+</ins>
+an
+<del class="diff-old">array
+of
+</del>
+<code>
+<del class="diff-old">Quad
+</del>
+<ins class="diff-chg">@type
+</ins>
+</code>
+<ins class="diff-chg">member
+whose
+value
+matches
+the
+</ins><a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping"><ins class="diff-chg">
+type
+mapping
+</ins>
+</a>
+<del class="diff-old">retrieved
+by
+processing
+another
+serialization
+format
+into
+JSON-LD.
+Note
+that
+many
+uses
+</del>
+of
+<del class="diff-old">JSON-LD
+may
+not
+require
+generation
+</del>
+<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+<ins class="diff-chg">active
+property
+</ins></a>,<ins class="diff-chg">
+return
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+member
+</ins>
+of
+<del class="diff-old">RDF.
+The
+processing
+algorithms
+described
+in
+this
+section
+are
+provided
+in
+order
+to
+demonstrate
+how
+one
+might
+implement
+a
+JSON-LD
+to
+RDF
+processor.
+Conformant
+implementations
+are
+only
+required
+to
+produce
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+has
+an
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+member
+whose
+value
+matches
+</ins>
+the
+<del class="diff-old">same
+type
+and
+number
+</del>
+<a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">
+<ins class="diff-chg">language
+mapping
+</ins></a>
+of
+<del class="diff-old">quads
+during
+</del>
+<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+<ins class="diff-chg">active
+property
+</ins></a>,<ins class="diff-chg">
+return
+</ins>
+the
+<del class="diff-old">output
+process
+</del>
+<ins class="diff-chg">value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+number
+members
+</ins></i><ins class="diff-chg">
+equals
+</ins><code><ins class="diff-chg">
+1
+</ins></code>
+and
+<del class="diff-old">are
+</del>
+<ins class="diff-chg">either
+the
+value
+of
+the
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+member
+is
+</ins>
+not
+<del class="diff-old">required
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,<ins class="diff-chg">
+or
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+has
+no
+</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
+default
+language
+</ins></a>,<ins class="diff-chg">
+or
+the
+</ins><a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping"><ins class="diff-chg">
+language
+mapping
+</ins></a><ins class="diff-chg">
+of
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+is
+set
+</ins>
+to
+<del class="diff-old">implement
+</del>
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-chg">null
+</ins></a>,,<ins class="diff-chg">
+return
+</ins>
+the
+<del class="diff-old">algorithm
+exactly
+</del>
+<ins class="diff-chg">value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+member.
+</ins></li><li><ins class="diff-chg">
+Otherwise,
+return
+</ins><i><ins class="diff-chg">
+value
+</ins></i>
+as
+<del class="diff-old">described.
+</del>
+<ins class="diff-chg">is.
+</ins></li></ol></section></section></section><section id="flattening-algorithms"><h2>
+<span class="secno">
+<del class="diff-old">4.9.1
+</del>
+<ins class="diff-chg">9.
+</ins></span><ins class="diff-chg">
+Flattening
+Algorithms
+</ins></h2><section id="flattening-algorithm"><h3><span class="secno"><ins class="diff-chg">
+9.1
+</ins>
+</span>
+<ins class="diff-new">Flattening
+Algorithm
+</ins></h3><p><ins class="diff-new">
+This
+algorithm
+flattens
+an
+expanded
+JSON-LD
+document
+by
+collecting
+all
+properties
+of
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
+node
+</ins></a><ins class="diff-new">
+in
+a
+single
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a><ins class="diff-new">
+and
+labeling
+all
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-new">
+blank
+nodes
+</ins></a><ins class="diff-new">
+with
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
+blank
+node
+identifiers
+</ins></a>.<ins class="diff-new">
+This
+resulting
+uniform
+shape
+of
+the
+document,
+may
+drastically
+simplify
+the
+code
+required
+to
+process
+JSON-LD
+data
+in
+certain
+applications.
+</ins></p><section class="informative"><h4 id="overview-10">
+Overview
+</h4>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+<del class="diff-old">JSON-LD
+</del>
+<ins class="diff-chg">First,
+a
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i>
+is
+<del class="diff-old">intended
+to
+have
+an
+easy
+to
+parse
+grammar
+that
+closely
+models
+existing
+practice
+in
+</del>
+<ins class="diff-chg">generated
+</ins>
+using
+<ins class="diff-new">the
+</ins><a href="#node-map-generation"><ins class="diff-new">
+Node
+Map
+Generation
+algorithm
+</ins></a><ins class="diff-new">
+which
+collects
+all
+properties
+of
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
+node
+</ins></a><ins class="diff-new">
+in
+a
+single
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+<del class="diff-old">for
+describing
+</del>
+object
+<del class="diff-old">representations.
+This
+allows
+</del>
+</a>.
+<ins class="diff-chg">In
+</ins>
+the
+<del class="diff-old">use
+of
+existing
+libraries
+for
+parsing
+JSON.
+</del>
+<ins class="diff-chg">next
+step,
+the
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i><ins class="diff-chg">
+is
+converted
+to
+a
+JSON-LD
+document
+in
+</ins><a class="tref externalDFN" title="flattened-document-form" href="../json-ld/#flattened-document-form"><ins class="diff-chg">
+flattened
+document
+form
+</ins></a>.<ins class="diff-chg">
+Finally,
+if
+a
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+has
+been
+passed,
+the
+flattened
+document
+is
+compacted
+using
+the
+</ins><a href="#compaction-algorithm"><ins class="diff-chg">
+Compaction
+algorithm
+</ins></a><ins class="diff-chg">
+before
+being
+returned.
+</ins>
+</p>
+</section>
+<section>
+<h4 id="algorithm-10">
+<ins class="diff-new">Algorithm
+</ins></h4>
+<p>
+<del class="diff-old">As
+with
+other
+grammars
+</del>
+<ins class="diff-chg">The
+algorithm
+takes
+two
+input
+variables,
+an
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+to
+flatten
+and
+an
+optional
+</ins><i><ins class="diff-chg">
+context
+</ins></i>
+used
+<del class="diff-old">for
+describing
+Linked
+Data
+,
+</del>
+<ins class="diff-chg">to
+compact
+the
+flattened
+document.
+If
+not
+passed,
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+is
+set
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</p><ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i><ins class="diff-chg">
+to
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+consisting
+of
+</ins>
+a
+<ins class="diff-new">single
+member
+whose
+</ins>
+key
+<del class="diff-old">concept
+</del>
+is
+<del class="diff-old">that
+</del>
+<code>
+<ins class="diff-chg">@default
+</ins></code><ins class="diff-chg">
+and
+whose
+value
+is
+an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>.</li><li><ins class="diff-chg">
+Perform
+the
+</ins><a href="#node-map-generation"><ins class="diff-chg">
+Node
+Map
+Generation
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i>.</li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+default
+graph
+</ins></i><ins class="diff-chg">
+to
+the
+value
+</ins>
+of
+<del class="diff-old">a
+</del>
+<ins class="diff-chg">the
+</ins><code><ins class="diff-chg">
+@default
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i>
+node
+<ins class="diff-new">map
+</ins></i>,<ins class="diff-new">
+which
+is
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins>
+</a>
+<ins class="diff-new">representing
+the
+</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-new">
+default
+graph
+</ins></a>.</li><li><ins class="diff-new">
+For
+each
+key-value
+pair
+</ins><i><ins class="diff-new">
+graph
+name
+</ins></i><ins class="diff-new">
+-
+</ins><i><ins class="diff-new">
+graph
+</ins></i>
+in
+<i>
+<ins class="diff-new">node
+map
+</ins></i><ins class="diff-new">
+where
+</ins><i><ins class="diff-new">
+graph
+name
+</ins></i><ins class="diff-new">
+is
+not
+</ins><code><ins class="diff-new">
+@default
+</ins></code>,<ins class="diff-new">
+perform
+the
+following
+steps:
+</ins><ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+default
+graph
+</ins></i><ins class="diff-new">
+does
+not
+have
+</ins>
+a
+<del class="diff-old">linked
+data
+</del>
+<i>
+graph
+<del class="diff-old">.
+Nodes
+may
+be
+</del>
+<ins class="diff-chg">name
+</ins></i><ins class="diff-chg">
+member,
+create
+one
+and
+initialize
+its
+value
+to
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+consisting
+</ins>
+of
+<del class="diff-old">three
+basic
+types.
+The
+first
+</del>
+<ins class="diff-chg">an
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+member
+whose
+value
+</ins>
+is
+<ins class="diff-new">set
+to
+</ins><i><ins class="diff-new">
+graph
+name
+</ins></i>.</li><li><ins class="diff-new">
+Reference
+</ins>
+the
+<ins class="diff-chg">value
+associated
+with
+the
+</ins><i><ins class="diff-chg">
+graph
+name
+</ins></i><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+default
+graph
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+entry
+</ins></i>.</li><li><ins class="diff-chg">
+Add
+an
+</ins>
+<code>
+<del class="diff-old">IRI
+</del>
+<ins class="diff-chg">@graph
+</ins>
+</code>
+<del class="diff-old">,
+which
+is
+used
+</del>
+<ins class="diff-chg">member
+</ins>
+to
+<del class="diff-old">refer
+</del>
+<i>
+<ins class="diff-chg">entry
+</ins></i><ins class="diff-chg">
+and
+set
+it
+</ins>
+to
+<ins class="diff-chg">an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.</li><li><ins class="diff-chg">
+For
+each
+</ins><i><ins class="diff-chg">
+id
+</ins></i><ins class="diff-chg">
+-
+</ins><i>
+node
+<del class="diff-old">s
+</del>
+</i>
+<ins class="diff-chg">pair
+</ins>
+in
+<del class="diff-old">other
+linked
+data
+</del>
+<i>
+graph
+<del class="diff-old">s.
+The
+second
+is
+</del>
+</i>
+<ins class="diff-chg">ordered
+by
+</ins><i><ins class="diff-chg">
+id
+</ins></i>,<ins class="diff-chg">
+add
+</ins><i><ins class="diff-chg">
+node
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<del class="diff-old">blank
+</del>
+<code>
+<ins class="diff-chg">@graph
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+entry
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Initialize
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><i><ins class="diff-chg">
+flattened
+</ins></i>.</li><li><ins class="diff-chg">
+For
+each
+</ins><i><ins class="diff-chg">
+id
+</ins></i><ins class="diff-chg">
+-
+</ins><i>
+node
+</i>
+<ins class="diff-new">pair
+in
+</ins><i><ins class="diff-new">
+default
+graph
+</ins></i><ins class="diff-new">
+ordered
+by
+</ins><i><ins class="diff-new">
+id
+</ins></i>,<ins class="diff-new">
+add
+</ins><i><ins class="diff-new">
+node
+</ins></i><ins class="diff-new">
+to
+</ins><i><ins class="diff-new">
+flattened
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+context
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins>
+</a>,
+<del class="diff-old">which
+are
+nodes
+for
+which
+an
+external
+name
+does
+not
+exist,
+or
+</del>
+<ins class="diff-chg">return
+</ins><i><ins class="diff-chg">
+flattened
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+return
+the
+result
+of
+compacting
+</ins><i><ins class="diff-chg">
+flattened
+</ins></i><ins class="diff-chg">
+according
+the
+</ins><a href="#compaction-algorithm"><ins class="diff-chg">
+Compaction
+algorithm
+</ins></a><ins class="diff-chg">
+passing
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+ensuring
+that
+the
+compaction
+result
+uses
+the
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+keyword
+(or
+its
+alias)
+at
+the
+top-level,
+even
+if
+the
+context
+</ins>
+is
+<del class="diff-old">not
+known.
+The
+third
+</del>
+<ins class="diff-chg">empty
+or
+if
+there
+</ins>
+is
+<ins class="diff-new">only
+one
+element
+to
+put
+in
+the
+</ins><code><ins class="diff-new">
+@graph
+</ins></code><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>.<ins class="diff-new">
+This
+ensures
+that
+the
+returned
+document
+has
+</ins>
+a
+<del class="diff-old">Literal
+,
+which
+express
+values
+such
+as
+strings,
+dates
+and
+other
+information
+having
+a
+lexical
+form,
+possibly
+including
+an
+explicit
+language
+or
+datatype.
+</del>
+<ins class="diff-chg">deterministic
+structure.
+</ins></li></ol></section></section><section id="node-map-generation"><h3><span class="secno"><ins class="diff-chg">
+9.2
+</ins></span><ins class="diff-chg">
+Node
+Map
+Generation
+</ins></h3>
+<p>
+<del class="diff-old">Data
+described
+with
+JSON-LD
+may
+be
+considered
+to
+be
+</del>
+<ins class="diff-chg">This
+algorithm
+creates
+</ins>
+a
+<del class="diff-old">graph
+made
+up
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins></a><i><ins class="diff-chg">
+node
+map
+</ins></i><ins class="diff-chg">
+holding
+an
+indexed
+representation
+</ins>
+of
+<del class="diff-old">subject
+</del>
+<ins class="diff-chg">the
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+graphs
+</ins>
+</a>
+and
+<del class="diff-old">object
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">nodes
+</ins>
+</a>
+<ins class="diff-new">represented
+in
+the
+passed
+expanded
+document.
+All
+</ins>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+nodes
+</a>
+<del class="diff-old">related
+via
+</del>
+<ins class="diff-chg">that
+are
+not
+uniquely
+identified
+by
+an
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+get
+assigned
+</ins>
+a
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">(new)
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+</ins>
+node
+<ins class="diff-new">identifier
+</ins>
+</a>.
+<del class="diff-old">Specific
+implementations
+may
+also
+choose
+to
+operate
+on
+</del>
+<ins class="diff-chg">The
+resulting
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i><ins class="diff-chg">
+will
+have
+a
+member
+for
+every
+graph
+in
+</ins>
+the
+document
+<del class="diff-old">as
+</del>
+<ins class="diff-chg">whose
+value
+is
+another
+object
+with
+</ins>
+a
+<del class="diff-old">normal
+JSON
+description
+of
+objects
+having
+attributes.
+Both
+approaches
+</del>
+<ins class="diff-chg">member
+for
+every
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a><ins class="diff-chg">
+represented
+in
+the
+document.
+The
+default
+graph
+is
+stored
+under
+the
+</ins><code><ins class="diff-chg">
+@default
+</ins></code><ins class="diff-chg">
+member,
+all
+other
+graphs
+</ins>
+are
+<del class="diff-old">valid
+ways
+to
+interact
+with
+JSON-LD
+documents.
+</del>
+<ins class="diff-chg">stored
+under
+their
+</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
+graph
+name
+</ins></a>.
+</p>
+<del class="diff-old">4.9.2
+Parsing
+Examples
+</del>
+<section class="informative">
+<h4 id="overview-11">
+<ins class="diff-chg">Overview
+</ins>
+</h4>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+The
+<del class="diff-old">following
+examples
+show
+simple
+transformations
+of
+</del>
+<ins class="diff-chg">algorithm
+recursively
+runs
+over
+an
+expanded
+</ins>
+JSON-LD
+<del class="diff-old">documents
+to
+Turtle
+[
+TURTLE-TR
+].
+The
+first
+example
+uses
+a
+simple
+</del>
+document
+<del class="diff-old">containing
+a
+simple
+FOAF
+profile:
+{
+  &quot;@context&quot;: {&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;},
+  &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Gregg Kellogg&quot;,
+  &quot;foaf:knows&quot;: {
+    &quot;@type&quot;: &quot;foaf:Person&quot;,
+    &quot;foaf:name&quot;: &quot;Manu Sporny&quot;
+  }
+}
+This
+translates
+fairly
+directly
+</del>
+to
+<ins class="diff-new">collect
+all
+</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-new">
+properties
+</ins></a><ins class="diff-new">
+of
+</ins>
+a
+<del class="diff-old">similar
+Turtle
+document:
+@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt;.
+&lt;http://greggkellogg.net/foaf#me&gt; a foaf:Person;
+  foaf:name &quot;Gregg Kellogg&quot;;
+foaf:knows
+[
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">node
+</ins></a><ins class="diff-chg">
+in
+</ins>
+a
+<del class="diff-old">foaf:Person;
+foaf:name
+&quot;Manu
+Sporny&quot;].
+</del>
+<ins class="diff-chg">single
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>.
+The
+<del class="diff-old">actual
+parsing
+steps
+first
+require
+that
+</del>
+<ins class="diff-chg">algorithm
+constructs
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><i><ins class="diff-chg">
+node
+map
+</ins></i><ins class="diff-chg">
+whose
+keys
+represent
+the
+</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
+graph
+names
+</ins></a><ins class="diff-chg">
+used
+in
+</ins>
+the
+<del class="diff-old">JSON-LD
+</del>
+document
+<del class="diff-old">be
+expanded,
+to
+eliminate
+</del>
+<ins class="diff-chg">(the
+</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
+default
+graph
+</ins></a><ins class="diff-chg">
+is
+stored
+under
+</ins>
+the
+<ins class="diff-new">key
+</ins>
+<code>
+<del class="diff-old">@context
+:
+[{
+  &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+  &quot;@type&quot;: [&quot;http://xmlns.com/foaf/0.1/Person&quot;],
+  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{&quot;@value&quot;: &quot;Gregg Kellogg&quot;}],
+  &quot;http://xmlns.com/foaf/0.1/knows&quot;: [{
+    &quot;@type&quot;: [&quot;http://xmlns.com/foaf/0.1/Person&quot;],
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [{&quot;@value&quot;: &quot;Manu Sporny&quot;}]
+  }]
+}]
+The
+process
+of
+translating
+this
+to
+RDF
+then
+operates
+over
+each
+subject
+definition
+</del>
+<ins class="diff-chg">@default
+</ins></code><ins class="diff-chg">
+)
+and
+whose
+associated
+values
+are
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+objects
+</ins>
+</a>
+<del class="diff-old">to
+find
+</del>
+<ins class="diff-chg">which
+index
+the
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+nodes
+</ins></a><ins class="diff-chg">
+in
+the
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+graph
+</ins></a>.<ins class="diff-chg">
+If
+</ins>
+a
+<del class="diff-old">subject,
+each
+</del>
+<a class="tref internalDFN" title="property" href="#dfn-property">
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">property's
+</ins>
+</a>
+<del class="diff-old">to
+find
+an
+RDF
+predicate
+,
+and
+each
+</del>
+value
+<ins class="diff-new">is
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a>,<ins class="diff-new">
+it
+is
+replace
+by
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a><ins class="diff-new">
+consisting
+</ins>
+of
+<del class="diff-old">that
+property
+to
+find
+</del>
+<ins class="diff-chg">only
+</ins>
+an
+<code>
+<ins class="diff-chg">@id
+</ins></code><ins class="diff-chg">
+member.
+If
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+</ins>
+object
+<del class="diff-old">.
+In
+this
+case,
+each
+property
+</del>
+</a>
+has
+<del class="diff-old">just
+a
+single
+object:
+</del>
+<ins class="diff-chg">no
+</ins>
+<code>
+<del class="diff-old">foaf:name
+</del>
+<ins class="diff-chg">@id
+</ins>
+</code>
+<del class="diff-old">identifies
+</del>
+<ins class="diff-chg">member
+or
+it
+is
+identified
+by
+</ins>
+a
+<del class="diff-old">literal
+</del>
+<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
+<ins class="diff-chg">blank
+node
+identifier
+</ins>
+</a>,
+<del class="diff-old">and
+foaf:knows
+identifies
+</del>
+a
+<del class="diff-old">second
+subject
+definition
+</del>
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins>
+</a>
+<del class="diff-old">similar
+to
+Turtle's
+blankNodePropertyList
+.
+After
+expansion,
+JSON-LD
+numbers
+,
+booleans
+,
+typed-
+and
+language-tagged-
+literals
+,
+and
+IRIs
+</del>
+<ins class="diff-chg">is
+generated.
+This
+relabeling
+of
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins>
+</a>
+<del class="diff-old">become
+explicit,
+and
+can
+</del>
+<ins class="diff-chg">is
+also
+</ins>
+be
+<del class="diff-old">directly
+transformed
+into
+their
+RDF
+representations.
+[{
+  &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+  &quot;@type&quot;: [&quot;http://xmlns.com/foaf/0.1/Person&quot;],
+  &quot;http://xmlns.com/foaf/0.1/name&quot;: [{&quot;@value&quot;: &quot;Gregg Kellogg&quot;}],
+  &quot;http://xmlns.com/foaf/0.1/currentProject&quot;: [{&quot;@id&quot;: &quot;http://json-ld.org/&quot;}],
+  &quot;http://xmlns.com/foaf/0.1/birthday&quot;: [{
+    &quot;@value&quot;: &quot;1957-02-27&quot;,
+    &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#date&quot;
+  }],
+  &quot;http://xmlns.com/foaf/0.1/knows&quot;: [{
+    &quot;@type&quot;: [&quot;http://xmlns.com/foaf/0.1/Person&quot;],
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [{&quot;@value&quot;: &quot;Manu Sporny&quot;}]
+  }]
+}]
+Translates
+to:
+</del>
+<ins class="diff-chg">done
+for
+</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
+properties
+</ins></a><ins class="diff-chg">
+and
+values
+of
+</ins><code><ins class="diff-chg">
+@type
+</ins></code>.
+</p>
+<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt;.
+@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;.
+&lt;http://greggkellogg.net/foaf#me&gt; a foaf:Person;
+  foaf:name &quot;Gregg Kellogg&quot;;
+  foaf:currentProject &lt;http://json-ld.org/&gt;;
+  foaf:birthday &quot;1957-02-27&quot;^^xsd:date;
+foaf:knows
+[
+a
+foaf:Person;
+foaf:name
+&quot;Manu
+Sporny&quot;].
+4.9.3
+Convert
+to
+RDF
+</del>
+</section>
+<section>
+<h4 id="algorithm-11">
+Algorithm
+</h4>
+<p>
+The
+algorithm
+<del class="diff-old">below
+is
+designed
+for
+in-memory
+implementations
+with
+random
+access
+</del>
+<ins class="diff-chg">takes
+as
+input
+an
+expanded
+JSON-LD
+document
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+and
+a
+reference
+</ins>
+to
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+<del class="diff-old">elements.
+A
+conforming
+JSON-LD
+processor
+implementing
+RDF
+conversion
+must
+implement
+a
+processing
+algorithm
+that
+results
+in
+</del>
+<i>
+<ins class="diff-chg">node
+map
+</ins></i>.<ins class="diff-chg">
+Furthermore
+it
+has
+</ins>
+the
+<del class="diff-old">same
+set
+of
+RDF
+Quads
+</del>
+<ins class="diff-chg">optional
+parameters
+</ins><a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-chg">
+active
+graph
+</ins>
+</a>
+<del class="diff-old">that
+the
+following
+algorithm
+generates:
+The
+algorithm
+takes
+five
+input
+variables:
+a
+element
+</del>
+<ins class="diff-chg">(which
+defaults
+</ins>
+to
+<del class="diff-old">be
+converted,
+</del>
+<code>
+<ins class="diff-chg">@default
+</ins></code><ins class="diff-chg">
+),
+</ins>
+an
+<a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">
+active
+subject
+</a>,
+<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+property
+</a>,
+and
+<del class="diff-old">graph
+name
+.
+To
+begin,
+the
+</del>
+<ins class="diff-chg">a
+reference
+to
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><i><ins class="diff-chg">
+list
+</ins></i>.<ins class="diff-chg">
+If
+not
+passed,
+</ins><a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">
+active
+subject
+</a>,
+<a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+property
+</a>,
+and
+<del class="diff-old">graph
+name
+</del>
+<i>
+<ins class="diff-chg">list
+</ins></i>
+are
+set
+to
+<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>.
+</p>
+<ol class="algorithm">
+<li>
+<ins class="diff-new">If
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+is
+an
+array,
+process
+each
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+as
+follows
+and
+then
+return:
+</ins><ol class="algorithm"><li><ins class="diff-new">
+Run
+this
+algorithm
+recursively
+by
+passing
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+element
+</ins></i>,<i><ins class="diff-new">
+node
+map
+</ins></i>,<a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-new">
+active
+graph
+</ins></a>,<a class="tref internalDFN" title="active-subject" href="#dfn-active-subject"><ins class="diff-new">
+active
+subject
+</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins>
+</a>,
+and
+<i>
+<ins class="diff-chg">list
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Otherwise
+</ins><i>
+element
+</i>
+is
+<del class="diff-old">set
+to
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>.<ins class="diff-chg">
+Reference
+</ins>
+the
+<del class="diff-old">result
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins></a><ins class="diff-chg">
+which
+is
+the
+value
+</ins>
+of
+<del class="diff-old">performing
+</del>
+the
+<del class="diff-old">Expansion
+Algorithm
+</del>
+<a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">
+<ins class="diff-chg">active
+graph
+</ins>
+</a>
+<del class="diff-old">on
+</del>
+<ins class="diff-chg">member
+of
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i><ins class="diff-chg">
+using
+</ins>
+the
+<del class="diff-old">JSON-LD
+input
+.
+This
+removes
+any
+existing
+context
+to
+allow
+</del>
+<ins class="diff-chg">variable
+</ins><i><ins class="diff-chg">
+graph
+</ins></i>.<ins class="diff-chg">
+If
+</ins>
+the
+<del class="diff-old">given
+context
+</del>
+<a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">
+<ins class="diff-chg">active
+subject
+</ins></a><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+set
+</ins><i><ins class="diff-chg">
+node
+</ins></i>
+to
+<del class="diff-old">be
+cleanly
+applied.
+</del>
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-chg">null
+</ins></a><ins class="diff-chg">
+otherwise
+reference
+the
+</ins><a class="tref internalDFN" title="active-subject" href="#dfn-active-subject"><ins class="diff-chg">
+active
+subject
+</ins></a><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+graph
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+node
+</ins></i>.</li><li>
+If
+<i>
+element
+<del class="diff-old">is
+a
+JSON
+object
+,
+</del>
+</i>
+<ins class="diff-chg">has
+an
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+member,
+</ins>
+perform
+<ins class="diff-new">for
+each
+</ins><i><ins class="diff-new">
+item
+</ins></i>
+the
+following
+steps:
+<ol class="algorithm">
+<li>
+<del class="diff-old">Set
+active
+object
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>,<ins class="diff-chg">
+replace
+it
+with
+a
+newly
+</ins><a href="#generate-blank-node-identifier"><ins class="diff-chg">
+generated
+blank
+node
+identifier
+</ins>
+</a>
+<ins class="diff-new">passing
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+identifier
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+graph
+</ins></i><ins class="diff-new">
+has
+no
+member
+</ins><i><ins class="diff-new">
+item
+</ins></i>,<ins class="diff-new">
+create
+one
+and
+initialize
+its
+value
+</ins>
+to
+<del class="diff-old">null
+.
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+consisting
+of
+a
+single
+member
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+whose
+value
+is
+</ins><i><ins class="diff-chg">
+item
+</ins></i>.</li></ol>
+</li>
+<li>
+If
+<i>
+element
+</i>
+has
+<del class="diff-old">a
+</del>
+<ins class="diff-chg">an
+</ins>
+<code>
+@value
+</code>
+<del class="diff-old">property:
+</del>
+<ins class="diff-chg">member,
+perform
+the
+following
+steps:
+</ins>
+<ol class="algorithm">
+<li>
+If
+<del class="diff-old">the
+</del>
+<i>
+<ins class="diff-chg">list
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+node
+</ins></i><ins class="diff-chg">
+does
+not
+have
+an
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+member,
+create
+one
+and
+initialize
+its
+</ins>
+value
+<ins class="diff-new">to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+containing
+</ins><i><ins class="diff-new">
+element
+</ins></i>.</li><li><ins class="diff-new">
+Otherwise,
+compare
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+against
+every
+item
+in
+the
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+associated
+with
+the
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+property
+</ins></a><ins class="diff-new">
+member
+</ins>
+of
+<del class="diff-old">@value
+</del>
+<i>
+<ins class="diff-chg">node
+</ins></i>.<ins class="diff-chg">
+If
+there
+</ins>
+is
+<del class="diff-old">a
+number
+,
+set
+</del>
+<ins class="diff-chg">no
+item
+equivalent
+to
+</ins><i><ins class="diff-chg">
+element
+</ins></i>,<ins class="diff-chg">
+append
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<del class="diff-old">active
+object
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a>.<ins class="diff-chg">
+Two
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+objects
+</ins>
+</a>
+<ins class="diff-new">are
+considered
+equal
+if
+they
+have
+equivalent
+key-value
+pairs.
+</ins></li></ol></li><li><ins class="diff-new">
+Otherwise,
+append
+</ins><i><ins class="diff-new">
+element
+</ins></i>
+to
+<ins class="diff-new">the
+</ins><code><ins class="diff-new">
+@list
+</ins></code><ins class="diff-new">
+member
+of
+</ins><i><ins class="diff-new">
+list
+</ins></i>.</li></ol></li><li><ins class="diff-new">
+Otherwise,
+if
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+has
+an
+</ins><code><ins class="diff-new">
+@list
+</ins></code><ins class="diff-new">
+member,
+perform
+the
+following
+steps:
+</ins><ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins>
+a
+<del class="diff-old">typed
+literal
+</del>
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins>
+</a>
+<del class="diff-old">using
+a
+string
+representation
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i><ins class="diff-chg">
+consisting
+</ins>
+of
+<del class="diff-old">the
+</del>
+<ins class="diff-chg">a
+single
+member
+</ins><code><ins class="diff-chg">
+@list
+</ins></code><ins class="diff-chg">
+whose
+</ins>
+value
+<del class="diff-old">as
+defined
+in
+the
+section
+Data
+Round
+Tripping
+.
+Set
+datatype
+</del>
+<ins class="diff-chg">is
+initialized
+</ins>
+to
+<ins class="diff-new">an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>.</li><li><ins class="diff-new">
+Recursively
+call
+this
+algorithm
+passing
+</ins>
+the
+value
+of
+<del class="diff-old">the
+</del>
+<i>
+<ins class="diff-chg">element's
+</ins></i>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@list
+</ins>
+</code>
+<ins class="diff-new">member
+for
+</ins><i><ins class="diff-new">
+element
+</ins></i>,<a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-new">
+active
+graph
+</ins></a>,<a class="tref internalDFN" title="active-subject" href="#dfn-active-subject"><ins class="diff-new">
+active
+subject
+</ins></a>,<a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-new">
+active
+</ins>
+property
+<del class="diff-old">if
+it
+exists,
+otherwise
+either
+xsd:integer
+or
+xsd:double
+,
+depending
+on
+if
+</del>
+</a>,
+<ins class="diff-chg">and
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+list
+</ins></i>.</li><li><ins class="diff-chg">
+Append
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+to
+the
+</ins>
+the
+value
+<del class="diff-old">contains
+</del>
+<ins class="diff-chg">of
+the
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+node
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Otherwise
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+is
+</ins>
+a
+<del class="diff-old">fractional
+and/or
+</del>
+<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
+<ins class="diff-chg">node
+object
+</ins></a>,<ins class="diff-chg">
+perform
+the
+following
+steps:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+element
+</ins></i><ins class="diff-chg">
+has
+</ins>
+an
+<del class="diff-old">exponential
+component.
+</del>
+<code>
+<ins class="diff-chg">@id
+</ins></code><ins class="diff-chg">
+member,
+set
+</ins><i><ins class="diff-chg">
+id
+</ins></i><ins class="diff-chg">
+to
+its
+value
+and
+remove
+the
+member
+from
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.<ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+id
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>,<ins class="diff-chg">
+replace
+it
+with
+a
+newly
+</ins><a href="#generate-blank-node-identifier"><ins class="diff-chg">
+generated
+blank
+node
+identifier
+</ins></a><ins class="diff-chg">
+passing
+</ins><i><ins class="diff-chg">
+id
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+identifier
+</ins></i>.
+</li>
+<li>
+Otherwise,
+<del class="diff-old">if
+</del>
+<ins class="diff-chg">set
+</ins><i><ins class="diff-chg">
+id
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+</ins>
+the
+<a href="#generate-blank-node-identifier">
+<ins class="diff-new">Generate
+Blank
+Node
+Identifier
+algorithm
+</ins></a><ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+identifier
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+graph
+</ins></i><ins class="diff-new">
+does
+not
+contain
+a
+member
+</ins><i><ins class="diff-new">
+id
+</ins></i>,<ins class="diff-new">
+create
+one
+and
+initialize
+its
+</ins>
+value
+<ins class="diff-new">to
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a><ins class="diff-new">
+consisting
+</ins>
+of
+<ins class="diff-new">a
+single
+member
+</ins>
+<code>
+<del class="diff-old">@value
+</del>
+<ins class="diff-chg">@id
+</ins>
+</code>
+<ins class="diff-new">whose
+value
+</ins>
+is
+<del class="diff-old">true
+or
+false
+,
+set
+the
+</del>
+<i>
+<ins class="diff-chg">id
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property">
+active
+<ins class="diff-new">property
+</ins></a><ins class="diff-new">
+is
+not
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+perform
+the
+following
+steps:
+</ins><ol class="algorithm"><li><ins class="diff-new">
+Create
+a
+new
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+</ins>
+object
+</a>
+<del class="diff-old">to
+</del>
+<i>
+<ins class="diff-chg">reference
+</ins></i><ins class="diff-chg">
+consisting
+of
+</ins>
+a
+<del class="diff-old">typed
+literal
+</del>
+<ins class="diff-chg">single
+member
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+whose
+value
+is
+</ins><i><ins class="diff-chg">
+id
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+list
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+node
+</ins></i><ins class="diff-chg">
+does
+not
+have
+an
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins>
+</a>
+<del class="diff-old">created
+from
+</del>
+<ins class="diff-chg">member,
+create
+one
+and
+initialize
+its
+value
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+containing
+</ins><i><ins class="diff-chg">
+reference
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+compare
+</ins><i><ins class="diff-chg">
+reference
+</ins></i><ins class="diff-chg">
+against
+every
+item
+in
+</ins>
+the
+<del class="diff-old">string
+representation
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a><ins class="diff-chg">
+associated
+with
+the
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a><ins class="diff-chg">
+member
+</ins>
+of
+<i>
+<ins class="diff-new">node
+</ins></i>.<ins class="diff-new">
+If
+there
+is
+no
+item
+equivalent
+to
+</ins><i><ins class="diff-new">
+reference
+</ins></i>,<ins class="diff-new">
+append
+</ins><i><ins class="diff-new">
+reference
+</ins></i><ins class="diff-new">
+to
+</ins>
+the
+<del class="diff-old">value.
+Set
+datatype
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a>.<ins class="diff-chg">
+Two
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+objects
+</ins></a><ins class="diff-chg">
+are
+considered
+equal
+if
+they
+have
+equivalent
+key-value
+pairs.
+</ins></li></ol></li><li><ins class="diff-chg">
+Otherwise,
+append
+</ins><i><ins class="diff-chg">
+element
+</ins></i>
+to
+the
+<code>
+<ins class="diff-new">@list
+</ins></code><ins class="diff-new">
+member
+of
+</ins><i><ins class="diff-new">
+list
+</ins></i>.</li></ol></li><li><ins class="diff-new">
+Reference
+the
+</ins>
+value
+of
+the
+<i>
+<ins class="diff-new">id
+</ins></i><ins class="diff-new">
+member
+of
+</ins><i><ins class="diff-new">
+graph
+</ins></i><ins class="diff-new">
+using
+the
+variable
+</ins><i><ins class="diff-new">
+node
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+has
+an
+</ins>
+<code>
+@type
+</code>
+<del class="diff-old">property
+if
+</del>
+<ins class="diff-chg">key,
+append
+each
+item
+of
+its
+associated
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+to
+the
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+key
+of
+</ins><i><ins class="diff-chg">
+node
+</ins></i><ins class="diff-chg">
+unless
+</ins>
+it
+<del class="diff-old">exists,
+otherwise
+</del>
+<ins class="diff-chg">is
+already
+in
+that
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.<ins class="diff-chg">
+Finally
+remove
+the
+</ins>
+<code>
+<del class="diff-old">xsd:boolean
+.
+</del>
+<ins class="diff-chg">@type
+</ins></code><ins class="diff-chg">
+member
+from
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+</del>
+<ins class="diff-chg">If
+</ins><i>
+element
+<del class="diff-old">contains
+a
+</del>
+</i>
+<ins class="diff-chg">has
+an
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@index
+</ins>
+</code>
+<del class="diff-old">property,
+</del>
+<ins class="diff-chg">member,
+</ins>
+set
+the
+<del class="diff-old">active
+object
+</del>
+<code>
+<ins class="diff-chg">@index
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+node
+</ins></i>
+to
+<ins class="diff-new">its
+value.
+If
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
+node
+</ins></a><ins class="diff-new">
+has
+already
+an
+</ins><code><ins class="diff-new">
+@index
+</ins></code><ins class="diff-new">
+member
+with
+</ins>
+a
+<del class="diff-old">typed
+literal
+.
+</del>
+<ins class="diff-chg">different
+value,
+a
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.conflicting-indexes"><ins class="diff-chg">
+conflicting
+indexes
+</ins></a></code><ins class="diff-chg">
+error
+has
+been
+detected
+and
+processing
+is
+aborted.
+Otherwise,
+continue
+by
+removing
+the
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+member
+from
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+if
+</del>
+<ins class="diff-chg">If
+</ins><i>
+element
+<del class="diff-old">contains
+a
+</del>
+</i>
+<ins class="diff-chg">has
+an
+</ins>
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@reverse
+</ins>
+</code>
+<del class="diff-old">property,
+set
+the
+active
+</del>
+<ins class="diff-chg">member:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+Create
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+</ins>
+object
+</a>
+<del class="diff-old">to
+</del>
+<i>
+<ins class="diff-chg">referenced
+node
+</ins></i><ins class="diff-chg">
+with
+</ins>
+a
+<del class="diff-old">language-tagged
+literal
+.
+</del>
+<ins class="diff-chg">single
+member
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+whose
+value
+is
+</ins><i><ins class="diff-chg">
+id
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+set
+</del>
+<ins class="diff-chg">Set
+</ins><i><ins class="diff-chg">
+reverse
+map
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<del class="diff-old">active
+object
+</del>
+<ins class="diff-chg">value
+of
+the
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.</li><li><ins class="diff-chg">
+For
+each
+key-value
+pair
+</ins><i><ins class="diff-chg">
+property
+</ins></i><ins class="diff-chg">
+-
+</ins><i><ins class="diff-chg">
+values
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+reverse
+map
+</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
+For
+each
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+values
+</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+has
+a
+</ins><i><ins class="diff-chg">
+property
+</ins></i><ins class="diff-chg">
+member,
+append
+</ins><i><ins class="diff-chg">
+referenced
+node
+</ins></i>
+to
+<ins class="diff-new">its
+value;
+otherwise
+create
+</ins>
+a
+<del class="diff-old">typed
+literal
+</del>
+<i>
+<ins class="diff-chg">property
+</ins></i><ins class="diff-chg">
+member
+whose
+value
+is
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins>
+</a>
+<del class="diff-old">using
+</del>
+<ins class="diff-chg">containing
+</ins><i><ins class="diff-chg">
+referenced
+node
+</ins></i>.</li><li><ins class="diff-chg">
+Recursively
+invoke
+this
+algorithm
+passing
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+element
+</ins></i>,<i><ins class="diff-chg">
+node
+map
+</ins></i>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-chg">
+active
+graph
+</ins></a>.</li></ol></li></ol></li><li><ins class="diff-chg">
+Remove
+the
+</ins>
+<code>
+<del class="diff-old">xsd:string
+</del>
+<ins class="diff-chg">@reverse
+</ins>
+</code>
+<del class="diff-old">as
+the
+datatype.
+</del>
+<ins class="diff-chg">member
+from
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.
+</li>
+</ol>
+</li>
+<li>
+If
+<i>
+element
+</i>
+has
+<del class="diff-old">a
+</del>
+<ins class="diff-chg">an
+</ins>
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@graph
+</ins></code><ins class="diff-chg">
+member,
+recursively
+invoke
+this
+algorithm
+passing
+the
+value
+of
+the
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+member
+for
+</ins><i><ins class="diff-chg">
+element
+</ins></i>,<i><ins class="diff-chg">
+node
+map
+</ins></i>,<ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+id
+</ins></i><ins class="diff-chg">
+for
+</ins><a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-chg">
+active
+graph
+</ins></a><ins class="diff-chg">
+before
+removing
+the
+</ins><code><ins class="diff-chg">
+@graph
+</ins>
+</code>
+<ins class="diff-new">member
+from
+</ins><i><ins class="diff-new">
+element
+</ins></i>.</li><li><ins class="diff-new">
+Finally,
+for
+each
+key-value
+pair
+</ins><i><ins class="diff-new">
+property
+</ins></i><ins class="diff-new">
+-
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+ordered
+by
+</ins><i>
+property
+</i>
+<ins class="diff-new">perform
+</ins>
+the
+<ins class="diff-new">following
+steps:
+</ins><ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+property
+</ins></i><ins class="diff-new">
+is
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
+blank
+node
+identifier
+</ins></a>,<ins class="diff-new">
+replace
+it
+with
+a
+newly
+</ins><a href="#generate-blank-node-identifier"><ins class="diff-new">
+generated
+blank
+node
+identifier
+</ins></a><ins class="diff-new">
+passing
+</ins><i><ins class="diff-new">
+property
+</ins></i><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+identifier
+</ins></i>.</li><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+node
+</ins></i><ins class="diff-new">
+does
+not
+have
+a
+</ins><i><ins class="diff-new">
+property
+</ins></i><ins class="diff-new">
+member,
+create
+one
+and
+initialize
+its
+</ins>
+value
+<del class="diff-old">must
+be
+</del>
+<ins class="diff-chg">to
+</ins>
+an
+<ins class="diff-new">empty
+</ins>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>.
+<del class="diff-old">Process
+its
+</del>
+</li>
+<li>
+<ins class="diff-chg">Recursively
+invoke
+this
+algorithm
+passing
+</ins><i>
+value
+<del class="diff-old">as
+a
+</del>
+</i>
+<ins class="diff-chg">for
+</ins><i><ins class="diff-chg">
+element
+</ins></i>,<i><ins class="diff-chg">
+node
+map
+</ins></i>,<a class="tref internalDFN" title="active-graph" href="#dfn-active-graph"><ins class="diff-chg">
+active
+graph
+</ins></a>,<i><ins class="diff-chg">
+id
+</ins></i><ins class="diff-chg">
+for
+</ins><a class="tref internalDFN" title="active-subject" href="#dfn-active-subject"><ins class="diff-chg">
+active
+subject
+</ins></a>,<i><ins class="diff-chg">
+property
+</ins></i><ins class="diff-chg">
+for
+</ins><a class="tref internalDFN" title="active-property" href="#dfn-active-property"><ins class="diff-chg">
+active
+property
+</ins></a>,<ins class="diff-chg">
+and
+</ins><i>
+list
+<del class="diff-old">as
+described
+in
+List
+Conversion
+</del>
+</i>.
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</section>
+</section>
+<section id="generate-blank-node-identifier">
+<h3>
+<span class="secno">
+<ins class="diff-chg">9.3
+</ins></span><ins class="diff-chg">
+Generate
+Blank
+Node
+Identifier
+</ins></h3><p><ins class="diff-chg">
+This
+algorithm
+is
+used
+to
+determine
+if
+two
+generate
+new
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins>
+</a>
+<del class="diff-old">using
+</del>
+<ins class="diff-chg">or
+to
+relabel
+an
+existing
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a><ins class="diff-chg">
+to
+avoid
+collision
+by
+</ins>
+the
+<del class="diff-old">return
+value
+as
+</del>
+<ins class="diff-chg">introduction
+of
+new
+ones.
+</ins></p><section class="informative"><h4 id="overview-12"><ins class="diff-chg">
+Overview
+</ins></h4><p><em><ins class="diff-chg">
+This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+The
+simplest
+case
+is
+if
+there
+exists
+already
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a><ins class="diff-chg">
+in
+</ins>
+the
+<del class="diff-old">active
+object
+</del>
+<i>
+<ins class="diff-chg">identifier
+map
+</ins></i><ins class="diff-chg">
+for
+the
+passed
+</ins><i><ins class="diff-chg">
+identifier
+</ins></i>,<ins class="diff-chg">
+in
+which
+case
+it
+is
+simply
+returned.
+Otherwise,
+a
+new
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins>
+</a>
+<ins class="diff-chg">is
+generated
+by
+concatenating
+the
+string
+</ins><code><ins class="diff-chg">
+_:b
+</ins></code><ins class="diff-chg">
+and
+the
+</ins><i><ins class="diff-chg">
+counter
+</ins></i>.
+If
+<del class="diff-old">active
+object
+</del>
+<ins class="diff-chg">the
+passed
+</ins><i><ins class="diff-chg">
+identifier
+</ins></i>
+is
+not
+<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+<del class="diff-old">:
+</del>
+</a>,
+<ins class="diff-chg">an
+entry
+is
+created
+in
+the
+</ins><i><ins class="diff-chg">
+identifier
+map
+</ins></i><ins class="diff-chg">
+associating
+the
+</ins><i><ins class="diff-chg">
+identifier
+</ins></i><ins class="diff-chg">
+with
+the
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>.<ins class="diff-chg">
+Finally,
+the
+</ins><i><ins class="diff-chg">
+counter
+</ins></i><ins class="diff-chg">
+is
+increased
+by
+one
+and
+the
+new
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a><ins class="diff-chg">
+is
+returned.
+</ins></p></section><section><h4 id="algorithm-12"><ins class="diff-chg">
+Algorithm
+</ins></h4><p><ins class="diff-chg">
+The
+algorithm
+takes
+a
+single
+input
+variable
+</ins><i><ins class="diff-chg">
+identifier
+</ins></i><ins class="diff-chg">
+which
+may
+be
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.<ins class="diff-chg">
+Between
+its
+executions,
+the
+algorithm
+needs
+to
+keep
+an
+</ins><i><ins class="diff-chg">
+identifier
+map
+</ins></i><ins class="diff-chg">
+to
+relabel
+existing
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a><ins class="diff-chg">
+consistently
+and
+a
+</ins><i><ins class="diff-chg">
+counter
+</ins></i><ins class="diff-chg">
+to
+generate
+new
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a>.<ins class="diff-chg">
+The
+</ins><i><ins class="diff-chg">
+counter
+</ins></i><ins class="diff-chg">
+is
+initialized
+to
+</ins><code><ins class="diff-chg">
+0
+</ins></code><ins class="diff-chg">
+by
+default.
+</ins></p>
+<ol class="algorithm">
+<li>
+If
+<del class="diff-old">neither
+active
+subject
+nor
+active
+property
+are
+</del>
+<i>
+<ins class="diff-chg">identifier
+</ins></i><ins class="diff-chg">
+is
+not
+</ins>
+<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+<del class="diff-old">,
+</del>
+</a>
+<ins class="diff-chg">and
+has
+an
+entry
+in
+the
+</ins><i><ins class="diff-chg">
+identifier
+map
+</ins></i>,<ins class="diff-chg">
+return
+the
+mapped
+identifier.
+</ins></li><li><ins class="diff-chg">
+Otherwise,
+</ins>
+generate
+a
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a><ins class="diff-chg">
+by
+concatenating
+the
+string
+</ins>
+<code>
+<del class="diff-old">Quad
+</del>
+<ins class="diff-chg">_:b
+</ins>
+</code>
+<del class="diff-old">representing
+active
+subject
+,
+active
+property
+,
+active
+object
+</del>
+<ins class="diff-chg">and
+</ins><i><ins class="diff-chg">
+counter
+</ins></i>.</li><li><ins class="diff-chg">
+Increment
+</ins><i><ins class="diff-chg">
+counter
+</ins></i><ins class="diff-chg">
+by
+</ins><code><ins class="diff-chg">
+1
+</ins></code>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+identifier
+</ins></i><ins class="diff-chg">
+is
+not
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins>
+</a>,
+<ins class="diff-new">create
+a
+new
+entry
+for
+</ins><i><ins class="diff-new">
+identifier
+</ins></i><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+identifier
+map
+</ins></i>
+and
+<del class="diff-old">graph
+name
+</del>
+<ins class="diff-chg">set
+its
+value
+to
+the
+new
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins>
+</a>.
+</li>
+<li>
+Return
+<del class="diff-old">active
+object
+</del>
+<ins class="diff-chg">the
+new
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins>
+</a>.
+</li>
+</ol>
+<del class="diff-old">If
+element
+has
+</del>
+</section>
+</section>
+</section>
+<section id="rdf-conversion-algorithms">
+<h2>
+<span class="secno">
+<ins class="diff-chg">10.
+</ins></span><ins class="diff-chg">
+RDF
+Conversion
+Algorithms
+</ins></h2><p><ins class="diff-chg">
+This
+section
+describes
+algorithms
+to
+transform
+</ins>
+a
+<del class="diff-old">@id
+property,
+</del>
+<ins class="diff-chg">JSON-LD
+document
+to
+an
+</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-chg">
+RDF
+dataset
+</ins></a><ins class="diff-chg">
+and
+vice
+versa.
+The
+algorithms
+are
+designed
+for
+in-memory
+implementations
+with
+random
+access
+to
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+elements.
+</ins></p><p><ins class="diff-chg">
+Throughout
+this
+section,
+</ins>
+the
+<del class="diff-old">value
+must
+</del>
+<ins class="diff-chg">following
+vocabulary
+</ins><a class="tref internalDFN" title="prefix" href="#dfn-prefix"><ins class="diff-chg">
+prefixes
+</ins></a><ins class="diff-chg">
+are
+used
+in
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+IRIs
+</ins></a>:</p><table rules="all"><thead><tr><th><ins class="diff-chg">
+Prefix
+</ins></th><th><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></th></tr></thead><tbody><tr><td><ins class="diff-chg">
+rdf
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/1999/02/22-rdf-syntax-ns#
+</ins></td></tr><tr><td><ins class="diff-chg">
+rdfs
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/2000/01/rdf-schema#
+</ins></td></tr><tr><td><ins class="diff-chg">
+xsd
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/2001/XMLSchema#
+</ins></td></tr></tbody></table><section id="convert-to-rdf-algorithm"><h3><span class="secno"><ins class="diff-chg">
+10.1
+</ins></span><ins class="diff-chg">
+Convert
+to
+RDF
+Algorithm
+</ins></h3><p><ins class="diff-chg">
+This
+algorithms
+converts
+a
+JSON-LD
+document
+to
+an
+</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-chg">
+RDF
+dataset
+</ins></a>.<ins class="diff-chg">
+Please
+note
+that
+RDF
+does
+not
+allow
+a
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+node
+</ins></a><ins class="diff-chg">
+to
+</ins>
+be
+<ins class="diff-new">used
+as
+</ins>
+a
+<del class="diff-old">string
+</del>
+<a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
+<ins class="diff-chg">graph
+name
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
+property
+</ins>
+</a>,
+<del class="diff-old">set
+the
+active
+subject
+</del>
+<ins class="diff-chg">while
+JSON-LD
+does.
+</ins><a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter"><ins class="diff-chg">
+JSON-LD-RDF
+Converters
+</ins></a><ins class="diff-chg">
+can
+work
+around
+this
+restriction,
+when
+converting
+JSON-LD
+to
+RDF,
+by
+converting
+such
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>,<ins class="diff-chg">
+minting
+new
+&quot;Skolem
+IRIs&quot;
+as
+per
+</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization"><ins class="diff-chg">
+Replacing
+Blank
+Nodes
+with
+IRIs
+</ins></a></cite><ins class="diff-chg">
+of
+[
+</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
+RDF11-CONCEPTS
+</ins>
+</a>
+</cite>
+<ins class="diff-new">].
+</ins></p><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
+Feature
+at
+Risk
+3
+</ins></span>:<ins class="diff-new">
+Allow
+blank
+nodes
+</ins>
+to
+<ins class="diff-new">be
+used
+as
+graph
+name
+or
+property
+</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
+Note:
+This
+feature
+is
+</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
+&quot;at
+risk&quot;
+</ins></a><ins class="diff-new">
+and
+may
+be
+removed
+from
+this
+specification
+based
+on
+feedback.
+Please
+send
+feedback
+to
+</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-new">
+public-rdf-comments@w3.org
+</ins></a>.<ins class="diff-new">
+For
+</ins>
+the
+<del class="diff-old">previously
+expanded
+value
+(either
+</del>
+<ins class="diff-chg">current
+status
+see
+</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
+features
+&quot;at
+risk&quot;
+in
+JSON-LD
+1.0
+</ins></a></p><p><ins class="diff-chg">
+RDF
+does
+not
+currently
+allow
+</ins>
+a
+<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
+blank
+node
+</a>
+<ins class="diff-new">to
+be
+used
+as
+</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-new">
+graph
+name
+</ins></a>
+or
+<del class="diff-old">an
+</del>
+<a class="tref internalDFN" title="property" href="#dfn-property">
+<ins class="diff-chg">property
+</ins></a>,<ins class="diff-chg">
+while
+JSON-LD
+does.
+</ins><a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter"><ins class="diff-chg">
+JSON-LD-RDF
+Converters
+</ins></a><ins class="diff-chg">
+can
+work
+around
+this
+restriction,
+when
+converting
+JSON-LD
+to
+RDF,
+by
+converting
+such
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>,<ins class="diff-chg">
+minting
+new
+&quot;Skolem
+IRIs&quot;
+as
+per
+</ins><cite>
+<del class="diff-old">IRI
+</del>
+<a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">
+<ins class="diff-chg">Replacing
+Blank
+Nodes
+with
+IRIs
+</ins></a>
+</cite>
+<ins class="diff-chg">of
+[
+</ins><cite>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-new">RDF11-CONCEPTS
+</ins>
+</a>
+<del class="diff-old">).
+Otherwise,
+if
+</del>
+</cite>
+<ins class="diff-chg">].
+Based
+on
+feedback
+from
+implementors
+the
+Working
+Group
+may
+decide
+to
+disallow
+blank
+nodes
+as
+graph
+names
+and
+properties
+in
+JSON-LD.
+If
+this
+change
+would
+affect
+you,
+be
+sure
+to
+send
+in
+a
+comment.
+</ins></p></div></div><section class="informative"><h4 id="overview-13"><ins class="diff-chg">
+Overview
+</ins></h4><p>
+<em>
+<del class="diff-old">element
+</del>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins>
+</em>
+<del class="diff-old">does
+not
+have
+</del>
+</p>
+<p>
+<ins class="diff-chg">The
+JSON-LD
+document
+is
+expanded
+and
+converted
+to
+</ins>
+a
+<i>
+<ins class="diff-new">node
+map
+</ins></i><ins class="diff-new">
+using
+the
+</ins><a href="#node-map-generation"><ins class="diff-new">
+Node
+Map
+Generation
+algorithm
+</ins></a>.<ins class="diff-new">
+This
+allows
+each
+graph
+represented
+within
+the
+document
+to
+be
+extracted
+and
+flattened,
+making
+it
+easier
+to
+process
+each
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a>.<ins class="diff-new">
+Each
+graph
+from
+the
+</ins><i><ins class="diff-new">
+node
+map
+</ins></i><ins class="diff-new">
+is
+processed
+to
+extract
+</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-new">
+RDF
+triples
+</ins></a>,<ins class="diff-new">
+to
+which
+any
+(non-default)
+graph
+name
+is
+applied
+to
+create
+an
+</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-new">
+RDF
+dataset
+</ins></a>.<ins class="diff-new">
+Each
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a><ins class="diff-new">
+in
+the
+</ins><i><ins class="diff-new">
+node
+map
+</ins></i><ins class="diff-new">
+has
+an
+</ins>
+<code>
+@id
+</code>
+<del class="diff-old">property,
+set
+</del>
+<ins class="diff-chg">member
+which
+corresponds
+to
+</ins>
+the
+<del class="diff-old">active
+</del>
+<a class="tref internalDFN" title="rdf-subject" href="#dfn-rdf-subject">
+<ins class="diff-chg">RDF
+</ins>
+subject
+</a>,
+<ins class="diff-new">the
+other
+members
+represent
+</ins><a class="tref internalDFN" title="rdf-predicate" href="#dfn-rdf-predicate"><ins class="diff-new">
+RDF
+predicates
+</ins></a>.<ins class="diff-new">
+Each
+member
+value
+is
+either
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>
+</a>
+<del class="diff-old">to
+newly
+generated
+</del>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
+blank
+node
+<ins class="diff-new">identifier
+</ins></a><ins class="diff-new">
+or
+can
+be
+transformed
+to
+an
+</ins><a class="tref externalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-new">
+RDF
+literal
+</ins></a><ins class="diff-new">
+to
+generate
+an
+</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-new">
+RDF
+triple
+</ins></a>.<a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-new">
+Lists
+</ins></a><ins class="diff-new">
+are
+transformed
+into
+an
+</ins><a class="tref externalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab"><ins class="diff-new">
+RDF
+Collection
+</ins></a><ins class="diff-new">
+using
+the
+</ins><a href="#list-to-rdf-conversion"><ins class="diff-new">
+List
+to
+RDF
+Conversion
+algorithm.
+</ins></a></p></section><section><h4 id="algorithm-13"><ins class="diff-new">
+Algorithm
+</ins></h4><p><ins class="diff-new">
+The
+algorithm
+takes
+a
+JSON-LD
+document
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+and
+returns
+an
+</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-new">
+RDF
+dataset
+</ins></a>.</p><ol class="algorithm"><li><ins class="diff-new">
+Expand
+</ins><i><ins class="diff-new">
+element
+</ins></i><ins class="diff-new">
+according
+the
+</ins><a href="#expansion-algorithm"><ins class="diff-new">
+Expansion
+algorithm
+</ins>
+</a>.
+</li>
+<li>
+<del class="diff-old">Process
+</del>
+<ins class="diff-chg">Generate
+a
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i><ins class="diff-chg">
+according
+the
+</ins><a href="#node-map-generation"><ins class="diff-chg">
+Node
+Map
+Generation
+algorithm
+</ins></a>.</li><li><ins class="diff-chg">
+Initialize
+an
+empty
+</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-chg">
+RDF
+dataset
+</ins></a><i><ins class="diff-chg">
+dataset
+</ins></i>.</li><li><ins class="diff-chg">
+For
+</ins>
+each
+<del class="diff-old">property
+</del>
+<i>
+<ins class="diff-chg">graph
+name
+</ins></i>
+and
+<del class="diff-old">value
+</del>
+<i>
+<ins class="diff-chg">graph
+</ins></i>
+in
+<del class="diff-old">element
+,
+ordered
+by
+property
+,
+</del>
+<i>
+<ins class="diff-chg">node
+map
+</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+triples
+</ins></i>
+as
+<del class="diff-old">follows:
+</del>
+<ins class="diff-chg">an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.</li><li><ins class="diff-chg">
+For
+each
+</ins><i><ins class="diff-chg">
+subject
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+node
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+graph
+</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
+For
+each
+</ins><i><ins class="diff-chg">
+property
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+values
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+node
+</ins></i>:
+<ol class="algorithm">
+<li>
+If
+<i>
+property
+</i>
+is
+<code>
+@type
+</code>,
+<del class="diff-old">set
+the
+active
+property
+</del>
+<ins class="diff-chg">then
+for
+each
+</ins><i><ins class="diff-chg">
+type
+</ins></i><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+values
+</ins></i>,<ins class="diff-chg">
+append
+a
+</ins><a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple"><ins class="diff-chg">
+triple
+</ins>
+</a>
+<del class="diff-old">to
+</del>
+<ins class="diff-chg">composed
+of
+</ins><i><ins class="diff-chg">
+subject
+</ins></i>,
+<code>
+rdf:type
+<del class="diff-old">.
+Otherwise,
+if
+property
+is
+@graph
+</del>
+</code>,
+<del class="diff-old">process
+value
+algorithm
+recursively,
+using
+active
+subject
+as
+graph
+name
+and
+null
+values
+for
+active
+subject
+and
+active
+property
+</del>
+and
+<del class="diff-old">then
+proceed
+</del>
+<i>
+<ins class="diff-chg">type
+</ins></i>
+to
+<del class="diff-old">next
+property.
+</del>
+<i>
+<ins class="diff-chg">triples
+</ins></i>.
+</li>
+<li>
+Otherwise,
+if
+<i>
+property
+</i>
+is
+a
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keyword
+<del class="diff-old">,
+skip
+this
+step.
+</del>
+</a>
+<ins class="diff-chg">continue
+to
+the
+next
+</ins><i><ins class="diff-chg">
+property
+</ins></i><ins class="diff-chg">
+-
+</ins><i><ins class="diff-chg">
+values
+</ins></i><ins class="diff-chg">
+pair.
+</ins>
+</li>
+<li>
+Otherwise,
+<del class="diff-old">set
+active
+</del>
+<i>
+property
+<del class="diff-old">to
+the
+</del>
+</i>
+<ins class="diff-chg">is
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<ins class="diff-new">or
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
+blank
+node
+identifier
+</ins></a>.<ins class="diff-new">
+For
+each
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+values
+</ins></i>:<ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+is
+a
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
+list
+object
+</ins></a>,<ins class="diff-new">
+initialize
+</ins><i><ins class="diff-new">
+list
+triples
+</ins></i><ins class="diff-new">
+as
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+list
+head
+</ins></i><ins class="diff-new">
+to
+the
+result
+of
+the
+</ins><a href="#list-to-rdf-conversion"><ins class="diff-new">
+List
+Conversion
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+the
+</ins>
+value
+<ins class="diff-new">associated
+with
+the
+</ins><code><ins class="diff-new">
+@list
+</ins></code><ins class="diff-new">
+key
+from
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+list
+triples
+</ins></i>.<ins class="diff-new">
+Append
+first
+a
+</ins><a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple"><ins class="diff-new">
+triple
+</ins></a><ins class="diff-new">
+composed
+</ins>
+of
+<i>
+<ins class="diff-chg">subject
+</ins></i>,<i>
+property
+<del class="diff-old">.
+</del>
+</i>,
+<ins class="diff-chg">and
+</ins><i><ins class="diff-chg">
+list
+head
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+triples
+</ins></i><ins class="diff-chg">
+and
+finally
+append
+all
+</ins><a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple"><ins class="diff-chg">
+triples
+</ins></a><ins class="diff-chg">
+from
+</ins><i><ins class="diff-chg">
+list
+triples
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+triples
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Process
+</del>
+<ins class="diff-chg">Otherwise,
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object">
+value
+<del class="diff-old">recursively
+using
+this
+algorithm,
+passing
+copies
+</del>
+<ins class="diff-chg">object
+</ins></a><ins class="diff-chg">
+or
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a>.<ins class="diff-chg">
+Append
+a
+</ins><a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple"><ins class="diff-chg">
+triple
+</ins></a><ins class="diff-chg">
+composed
+</ins>
+of
+<del class="diff-old">active
+</del>
+<i>
+subject
+<del class="diff-old">,
+active
+</del>
+</i>,
+<i>
+property
+</i>,
+and
+<ins class="diff-chg">the
+result
+of
+using
+the
+</ins><a href="#object-to-rdf-conversion"><ins class="diff-chg">
+Object
+to
+RDF
+Conversion
+algorithm
+</ins></a><ins class="diff-chg">
+passing
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+triples
+</ins></i>.</li></ol></li></ol></li></ol></li><li><ins class="diff-chg">
+If
+</ins><i>
+graph
+name
+<del class="diff-old">.
+</del>
+</i>
+<ins class="diff-chg">is
+</ins><code><ins class="diff-chg">
+@default
+</ins></code>,<ins class="diff-chg">
+add
+</ins><i><ins class="diff-chg">
+triples
+</ins></i><ins class="diff-chg">
+to
+the
+</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
+default
+graph
+</ins></a><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+dataset
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+create
+a
+</ins><a class="tref internalDFN" title="named-graph" href="#dfn-named-graph"><ins class="diff-chg">
+named
+graph
+</ins></a><ins class="diff-chg">
+in
+</ins><i><ins class="diff-chg">
+dataset
+</ins></i><ins class="diff-chg">
+composed
+of
+</ins><i><ins class="diff-chg">
+graph
+name
+</ins></i><ins class="diff-chg">
+and
+add
+</ins><i><ins class="diff-chg">
+triples
+</ins></i>.
+</li>
+</ol>
+</li>
+<li>
+<del class="diff-old">Set
+active
+</del>
+<ins class="diff-chg">Return
+</ins><i><ins class="diff-chg">
+dataset
+</ins></i>.</li></ol></section></section><section id="object-to-rdf-conversion"><h3><span class="secno"><ins class="diff-chg">
+10.2
+</ins></span><ins class="diff-chg">
+Object
+to
+RDF
+Conversion
+</ins></h3><p><ins class="diff-chg">
+This
+algorithm
+takes
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+</ins>
+object
+</a>
+<ins class="diff-new">and
+transforms
+it
+into
+an
+</ins><a class="tref externalDFN" title="rdf-resource" href="http://www.w3.org/TR/rdf11-concepts/#dfn-resource"><ins class="diff-new">
+RDF
+resource
+</ins></a>
+to
+<del class="diff-old">active
+subject
+</del>
+<ins class="diff-chg">be
+used
+as
+the
+</ins><a class="tref internalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object"><ins class="diff-chg">
+object
+</ins></a><ins class="diff-chg">
+of
+an
+</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
+RDF
+triple
+</ins>
+</a>.
+</p>
+<section class="informative">
+<h4 id="overview-14">
+<ins class="diff-chg">Overview
+</ins></h4><p><em><ins class="diff-chg">
+This
+section
+is
+non-normative.
+</ins></em></p><p><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+Value
+objects
+</ins></a><ins class="diff-chg">
+are
+transformed
+to
+</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
+RDF
+literals
+</ins></a><ins class="diff-chg">
+as
+described
+in
+</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-chg">
+section
+10.6
+Data
+Round
+Tripping
+</ins></a><ins class="diff-chg">
+whereas
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+objects
+</ins></a><ins class="diff-chg">
+are
+transformed
+to
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a>.</p></section><section><h4 id="algorithm-14"><ins class="diff-chg">
+Algorithm
+</ins></h4><p><ins class="diff-chg">
+The
+algorithm
+takes
+as
+its
+sole
+argument
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+which
+must
+be
+either
+a
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a>.</p><ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+return
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a><ins class="diff-chg">
+associated
+with
+its
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+member.
+</ins>
+</li>
+<li>
+Otherwise,
+<i>
+<ins class="diff-new">item
+</ins></i><ins class="diff-new">
+is
+a
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-new">
+value
+object
+</ins></a>.<ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+to
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-new">
+@value
+</ins></code><ins class="diff-new">
+member
+in
+</ins><i><ins class="diff-new">
+item
+</ins></i>.</li><li><ins class="diff-new">
+Initialize
+</ins><i><ins class="diff-new">
+datatype
+</ins></i><ins class="diff-new">
+to
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-new">
+@type
+</ins></code><ins class="diff-new">
+member
+of
+</ins><i><ins class="diff-new">
+item
+</ins></i><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>
+if
+<del class="diff-old">element
+</del>
+<i>
+<ins class="diff-chg">item
+</ins></i><ins class="diff-chg">
+does
+not
+have
+such
+a
+member.
+</ins></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+value
+</ins></i>
+is
+<del class="diff-old">an
+array
+</del>
+<a class="tref internalDFN" title="true" href="#dfn-true">
+<ins class="diff-chg">true
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins>
+</a>,
+<del class="diff-old">process
+each
+</del>
+<ins class="diff-chg">set
+</ins><i>
+value
+<del class="diff-old">in
+</del>
+</i>
+<ins class="diff-chg">to
+</ins>
+the
+<del class="diff-old">array
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">string
+</ins></a><code><ins class="diff-chg">
+true
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+false
+</ins></code><ins class="diff-chg">
+which
+is
+the
+</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
+canonical
+lexical
+form
+</ins>
+</a>
+as
+<del class="diff-old">follows,
+process
+element
+recursively
+using
+this
+algorithm,
+using
+copies
+of
+active
+subject
+,
+active
+property
+</del>
+<ins class="diff-chg">described
+in
+</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-chg">
+section
+10.6
+Data
+Round
+Tripping
+</ins></a><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+datatype
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins>
+</a>,
+<del class="diff-old">and
+graph
+name
+.
+</del>
+<ins class="diff-chg">set
+it
+to
+</ins><code><ins class="diff-chg">
+xsd:boolean
+</ins></code>.
+</li>
+<li>
+Otherwise,
+if
+<del class="diff-old">element
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i>
+is
+a
+<a class="tref internalDFN" title="number" href="#dfn-number">
+<ins class="diff-new">number
+</ins></a><ins class="diff-new">
+with
+fractions
+or
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+is
+a
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
+number
+</ins></a><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+datatype
+</ins></i><ins class="diff-new">
+equals
+</ins><code><ins class="diff-new">
+xsd:double
+</ins></code>,<ins class="diff-new">
+convert
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+to
+a
+</ins>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+string
+<del class="diff-old">,
+then
+the
+active
+property
+</del>
+</a>
+<del class="diff-old">must
+be
+rdf:type
+so
+set
+the
+active
+object
+</del>
+<ins class="diff-chg">in
+</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
+canonical
+lexical
+form
+</ins>
+</a>
+<del class="diff-old">to
+</del>
+<ins class="diff-chg">of
+</ins>
+an
+<code>
+<del class="diff-old">IRI
+</del>
+<ins class="diff-chg">xsd:double
+</ins>
+</code>
+<ins class="diff-new">as
+defined
+in
+[
+</ins><cite><a class="bibref" href="#bib-XMLSCHEMA11-2"><ins class="diff-new">
+XMLSCHEMA11-2
+</ins></a>
+</cite>
+<ins class="diff-new">]
+and
+described
+in
+</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-new">
+section
+10.6
+Data
+Round
+Tripping
+</ins>
+</a>.
+<ins class="diff-new">If
+</ins><i><ins class="diff-new">
+datatype
+</ins></i><ins class="diff-new">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+set
+it
+to
+</ins><code><ins class="diff-new">
+xsd:double
+</ins></code>.
+</li>
+<li>
+<del class="diff-old">If
+any
+of
+these
+steps
+created
+an
+active
+object
+</del>
+<ins class="diff-chg">Otherwise,
+if
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+number
+</ins></a><ins class="diff-chg">
+without
+fractions
+or
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+number
+</ins>
+</a>
+and
+<del class="diff-old">neither
+active
+subject
+</del>
+<i>
+<ins class="diff-chg">datatype
+</ins></i><ins class="diff-chg">
+equals
+</ins><code><ins class="diff-chg">
+xsd:integer
+</ins></code>,<ins class="diff-chg">
+convert
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins>
+</a>
+<del class="diff-old">nor
+active
+property
+</del>
+<ins class="diff-chg">in
+</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
+canonical
+lexical
+form
+</ins>
+</a>
+<del class="diff-old">are
+null
+,
+generate
+a
+</del>
+<ins class="diff-chg">of
+an
+</ins>
+<code>
+<del class="diff-old">Quad
+</del>
+<ins class="diff-chg">xsd:integer
+</ins>
+</code>
+<ins class="diff-new">as
+defined
+in
+[
+</ins><cite>
+<a class="bibref" href="#bib-XMLSCHEMA11-2">
+<ins class="diff-new">XMLSCHEMA11-2
+</ins>
+</a>
+<del class="diff-old">using
+active
+subject
+</del>
+</cite>
+<ins class="diff-chg">]
+and
+described
+in
+</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-chg">
+section
+10.6
+Data
+Round
+Tripping
+</ins></a>.<ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+datatype
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins>
+</a>,
+<del class="diff-old">active
+property
+</del>
+<ins class="diff-chg">set
+it
+to
+</ins><code><ins class="diff-chg">
+xsd:integer
+</ins></code>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+datatype
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins>
+</a>,
+<del class="diff-old">active
+object
+</del>
+<ins class="diff-chg">set
+it
+to
+</ins><code><ins class="diff-chg">
+xsd:string
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+rdf:langString
+</ins></code>,<ins class="diff-chg">
+depending
+on
+if
+item
+has
+an
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+member.
+</ins></li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+literal
+</ins></i><ins class="diff-chg">
+as
+an
+</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
+RDF
+literal
+</ins>
+</a>
+<ins class="diff-new">using
+</ins><i><ins class="diff-new">
+value
+</ins></i>
+and
+<del class="diff-old">graph
+name
+.
+</del>
+<i>
+<ins class="diff-chg">datatype
+</ins></i>.<ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+has
+an
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+member,
+add
+the
+value
+associated
+with
+the
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+key
+as
+the
+language
+tag
+of
+</ins><i><ins class="diff-chg">
+literal
+</ins></i>.
+</li>
+<li>
+Return
+<del class="diff-old">active
+object
+.
+</del>
+<i>
+<ins class="diff-chg">literal
+</ins></i>.
+</li>
+</ol>
+</section>
+</section>
+<section id="list-to-rdf-conversion">
+<h3>
+<span class="secno">
+<del class="diff-old">4.9.4
+</del>
+<ins class="diff-chg">10.3
+</ins>
+</span>
+List
+<ins class="diff-new">to
+RDF
+</ins>
+Conversion
+</h3>
+<p>
+List
+Conversion
+is
+the
+process
+of
+taking
+<del class="diff-old">an
+array
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins>
+</a>
+<del class="diff-old">of
+values
+</del>
+and
+<del class="diff-old">adding
+them
+to
+a
+newly
+created
+</del>
+<ins class="diff-chg">transforming
+it
+into
+an
+</ins><a class="tref externalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">
+RDF
+Collection
+</a>
+<del class="diff-old">(see
+</del>
+<ins class="diff-chg">as
+defined
+in
+RDF
+Semantics
+</ins>
+[
+<cite>
+<del class="diff-old">RDF-SCHEMA
+</del>
+<a class="bibref" href="#bib-RDF-MT">
+<ins class="diff-chg">RDF-MT
+</ins>
+</a>
+</cite>
+<del class="diff-old">])
+by
+linking
+</del>
+<ins class="diff-chg">].
+</ins></p><section class="informative"><h4 id="overview-15"><ins class="diff-chg">
+Overview
+</ins></h4><p><em><ins class="diff-chg">
+This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+For
+</ins>
+each
+element
+of
+the
+<a class="tref internalDFN" title="list" href="#dfn-list">
+list
+<del class="diff-old">using
+</del>
+</a>
+<ins class="diff-chg">a
+new
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a><ins class="diff-chg">
+is
+allocated
+which
+is
+used
+to
+generate
+</ins>
+<code>
+rdf:first
+</code>
+and
+<code>
+<del class="diff-old">rdf:next
+,
+terminating
+</del>
+<ins class="diff-chg">rdf:rest
+</ins></code><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
+triples
+</ins></a>.<ins class="diff-chg">
+The
+algorithm
+returns
+</ins>
+the
+list
+<del class="diff-old">with
+</del>
+<ins class="diff-chg">head,
+which
+is
+either
+the
+the
+first
+allocated
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a><ins class="diff-chg">
+or
+</ins>
+<code>
+rdf:nil
+</code>
+<del class="diff-old">using
+</del>
+<ins class="diff-chg">if
+</ins>
+the
+<del class="diff-old">following
+sequence:
+</del>
+<a class="tref internalDFN" title="list" href="#dfn-list">
+<ins class="diff-chg">list
+</ins></a><ins class="diff-chg">
+is
+empty.
+</ins>
+</p>
+</section>
+<section>
+<h4 id="algorithm-15">
+<ins class="diff-new">Algorithm
+</ins></h4>
+<p>
+The
+algorithm
+<del class="diff-old">is
+invoked
+with
+</del>
+<ins class="diff-chg">takes
+two
+inputs:
+</ins>
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+<del class="diff-old">array
+,
+the
+active
+property
+</del>
+<i>
+<ins class="diff-chg">list
+</ins></i>
+and
+<del class="diff-old">returns
+a
+value
+to
+be
+used
+as
+</del>
+an
+<del class="diff-old">active
+object
+</del>
+<ins class="diff-chg">empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins>
+</a>
+<del class="diff-old">in
+</del>
+<i>
+<ins class="diff-chg">list
+triples
+</ins></i><ins class="diff-chg">
+used
+for
+returning
+</ins>
+the
+<del class="diff-old">calling
+location.
+</del>
+<ins class="diff-chg">generated
+</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
+triples
+</ins></a>.
+</p>
+<del class="diff-old">Note
+This
+algorithm
+does
+not
+support
+lists
+containing
+lists.
+</del>
+<ol class="algorithm">
+<li>
+If
+<del class="diff-old">array
+</del>
+<i>
+<ins class="diff-chg">list
+</ins></i>
+is
+<del class="diff-old">empty
+</del>
+<ins class="diff-chg">empty,
+</ins>
+return
+<code>
+rdf:nil
+</code>.
+</li>
+<li>
+Otherwise,
+<del class="diff-old">generate
+a
+Quad
+using
+using
+the
+active
+subject
+,
+active
+property
+</del>
+<ins class="diff-chg">create
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins>
+</a>
+<del class="diff-old">and
+</del>
+<i>
+<ins class="diff-chg">bnodes
+</ins></i><ins class="diff-chg">
+composed
+of
+</ins>
+a
+<a href="#generate-blank-node-identifier">
+newly
+generated
+blank
+node
+<ins class="diff-new">identifier
+</ins>
+</a>
+<del class="diff-old">identified
+as
+first
+blank
+node
+</del>
+<ins class="diff-chg">for
+each
+entry
+in
+</ins><i><ins class="diff-chg">
+list
+</ins></i>.</li><li><ins class="diff-chg">
+Initialize
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins>
+</a>
+<del class="diff-old">.
+</del>
+<i>
+<ins class="diff-chg">list
+triples
+</ins></i>.
+</li>
+<li>
+For
+each
+<del class="diff-old">element
+in
+array
+other
+than
+the
+last
+element:
+</del>
+<ins class="diff-chg">pair
+of
+</ins><i><ins class="diff-chg">
+subject
+</ins></i><ins class="diff-chg">
+from
+</ins><i><ins class="diff-chg">
+bnodes
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+from
+</ins><i><ins class="diff-chg">
+list
+</ins></i>:
+<ol class="algorithm">
+<li>
+<del class="diff-old">Create
+</del>
+<ins class="diff-chg">Append
+</ins>
+a
+<del class="diff-old">processor
+state
+using
+first
+blank
+node
+as
+the
+active
+</del>
+<a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">
+<ins class="diff-chg">triple
+</ins></a><ins class="diff-chg">
+composed
+of
+</ins><i>
+subject
+<del class="diff-old">,
+and
+</del>
+</i>,
+<code>
+rdf:first
+<del class="diff-old">as
+the
+active
+property
+.
+Process
+</del>
+</code>,
+<ins class="diff-chg">and
+</ins>
+the
+<del class="diff-old">value
+starting
+at
+Step
+1
+.
+Proceed
+</del>
+<ins class="diff-chg">result
+of
+</ins>
+using
+<del class="diff-old">the
+previous
+processor
+state
+.
+</del>
+<ins class="diff-chg">th
+</ins><a href="#object-to-rdf-conversion"><ins class="diff-chg">
+Object
+to
+RDF
+Conversion
+algorithm
+</ins></a><ins class="diff-chg">
+passing
+</ins><i><ins class="diff-chg">
+item
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+list
+triples
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Unless
+this
+is
+</del>
+<ins class="diff-chg">Set
+</ins><i><ins class="diff-chg">
+rest
+</ins></i><ins class="diff-chg">
+as
+</ins>
+the
+<del class="diff-old">last
+element
+</del>
+<ins class="diff-chg">next
+entry
+</ins>
+in
+<del class="diff-old">array
+,
+generate
+a
+new
+blank
+node
+identified
+as
+rest
+blank
+node
+,
+otherwise
+use
+</del>
+<i>
+<ins class="diff-chg">bnodes
+</ins></i>,<ins class="diff-chg">
+or
+if
+that
+does
+not
+exist,
+</ins>
+<code>
+rdf:nil
+</code>.
+<del class="diff-old">Generate
+</del>
+<ins class="diff-chg">Append
+</ins>
+a
+<del class="diff-old">new
+Quad
+</del>
+<a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">
+<ins class="diff-chg">triple
+</ins>
+</a>
+<del class="diff-old">using
+first
+blank
+node
+,
+</del>
+<ins class="diff-chg">composed
+of
+</ins><i><ins class="diff-chg">
+subject
+</ins></i>,
+<code>
+rdf:rest
+</code>,
+and
+<i>
+rest
+<del class="diff-old">blank
+node
+.
+Set
+first
+blank
+node
+</del>
+</i>
+to
+<del class="diff-old">rest
+blank
+node
+.
+</del>
+<i>
+<ins class="diff-chg">list
+triples
+</ins></i>.</li></ol>
+</li>
+<li>
+Return
+<ins class="diff-chg">the
+</ins>
+first
+<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
+blank
+node
+<del class="diff-old">.
+</del>
+</a>
+<ins class="diff-chg">from
+</ins><i><ins class="diff-chg">
+bnodes
+</ins></i><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+rdf:nil
+</ins></code><ins class="diff-chg">
+if
+</ins><i><ins class="diff-chg">
+bnodes
+</ins></i><ins class="diff-chg">
+is
+empty.
+</ins>
+</li>
+</ol>
+</section>
+</section>
+<section id="convert-from-rdf-algorithm">
+<h3>
+<span class="secno">
+<del class="diff-old">4.9.5
+</del>
+<ins class="diff-chg">10.4
+</ins>
+</span>
+Convert
+from
+RDF
+Algorithm
+</h3>
+<p>
+<del class="diff-old">In
+some
+cases,
+data
+exists
+natively
+in
+Triples
+or
+Quads
+form;
+for
+example,
+if
+the
+data
+was
+originally
+represented
+in
+an
+RDF
+graph
+or
+triple/quad
+store.
+</del>
+This
+algorithm
+<del class="diff-old">is
+designed
+to
+simply
+translate
+</del>
+<ins class="diff-chg">converts
+</ins>
+an
+<del class="diff-old">array
+</del>
+<a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">
+<ins class="diff-chg">RDF
+dataset
+</ins></a><ins class="diff-chg">
+consisting
+</ins>
+of
+<del class="diff-old">Quads
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
+default
+graph
+</ins></a><ins class="diff-chg">
+and
+zero
+or
+more
+</ins><a class="tref internalDFN" title="named-graph" href="#dfn-named-graph"><ins class="diff-chg">
+named
+graphs
+</ins>
+</a>
+into
+a
+JSON-LD
+document.
+</p>
+<del class="diff-old">When
+expanding
+typed
+literal
+</del>
+<div class="issue atrisk">
+<div class="issue-title">
+<span>
+<ins class="diff-chg">Feature
+at
+Risk
+5
+</ins></span>:<ins class="diff-chg">
+Converting
+list
+of
+lists
+to
+JSON-LD
+</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-chg">
+Note:
+This
+feature
+is
+</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-chg">
+&quot;at
+risk&quot;
+</ins>
+</a>
+<del class="diff-old">values
+having
+a
+datatype
+</del>
+<ins class="diff-chg">and
+may
+be
+removed
+from
+this
+specification
+based
+on
+feedback.
+Please
+send
+feedback
+to
+</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-chg">
+public-rdf-comments@w3.org
+</ins></a>.<ins class="diff-chg">
+For
+the
+current
+status
+see
+</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
+features
+&quot;at
+risk&quot;
+in
+JSON-LD
+1.0
+</ins></a></p><p><ins class="diff-chg">
+In
+the
+interest
+</ins>
+of
+<del class="diff-old">xsd:string
+,
+</del>
+<ins class="diff-chg">space
+and
+simplicity,
+</ins>
+the
+<ins class="diff-new">steps
+necessary
+for
+handling
+lists
+of
+lists
+have
+been
+omitted.
+Such
+lists
+and
+their
+elements
+must,
+recursively,
+be
+handled
+like
+other
+lists.
+Lists
+of
+lists
+can,
+however,
+not
+be
+represented
+in
+JSON-LD
+using
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@list
+</ins>
+</code>
+<del class="diff-old">must
+not
+</del>
+<ins class="diff-chg">;
+they
+have
+to
+</ins>
+be
+<ins class="diff-new">represented
+as
+a
+</ins>
+set
+<del class="diff-old">to
+</del>
+<ins class="diff-chg">of
+interlinked
+node
+objects
+using
+RDF's
+</ins>
+<code>
+<del class="diff-old">xsd:string
+</del>
+<ins class="diff-chg">rdf:first
+</ins>
+</code>
+and
+<del class="diff-old">the
+resulting
+value
+must
+have
+only
+a
+</del>
+<code>
+<del class="diff-old">@value
+</del>
+<ins class="diff-chg">rdf:rest
+</ins>
+</code>
+<del class="diff-old">property.
+</del>
+<ins class="diff-chg">properties.
+The
+Working
+Group
+might
+either
+require
+handling
+of
+lists-of-lists
+or
+forbid
+them
+in
+JSON-LD
+1.0.
+Implementers
+please
+send
+reports
+of
+whether
+you
+are
+able
+to
+implement
+handling
+for
+lists-of-lists
+or
+would
+instead
+request
+such
+structures
+be
+disallowed.
+</ins>
+</p>
+</div>
+</div>
+<section class="informative">
+<h4 id="overview-16">
+<ins class="diff-new">Overview
+</ins></h4>
+<p>
+<del class="diff-old">The
+conversion
+algorithm
+takes
+a
+single
+parameter
+</del>
+<em>
+<del class="diff-old">input
+</del>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins>
+</em>
+</p>
+<p>
+<ins class="diff-new">Iterate
+through
+each
+graph
+</ins>
+in
+the
+<ins class="diff-new">dataset,
+converting
+</ins><a class="tref internalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab"><ins class="diff-new">
+RDF
+Collections
+</ins></a><ins class="diff-new">
+into
+a
+</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-new">
+list
+</ins></a><ins class="diff-new">
+and
+generating
+a
+JSON-LD
+document
+in
+expanded
+</ins>
+form
+<del class="diff-old">of
+an
+array
+of
+</del>
+<ins class="diff-chg">for
+all
+</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
+RDF
+literals
+</ins></a>,<a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a>.<ins class="diff-chg">
+If
+the
+</ins><i><ins class="diff-chg">
+use
+native
+types
+</ins></i><ins class="diff-chg">
+flag
+is
+set
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
+RDF
+literals
+</ins></a><ins class="diff-chg">
+with
+a
+</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
+datatype
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>
+<ins class="diff-new">that
+equals
+</ins>
+<code>
+<del class="diff-old">Quad
+</del>
+<ins class="diff-chg">xsd:integer
+</ins>
+</code>
+<ins class="diff-new">or
+</ins><code><ins class="diff-new">
+xsd:double
+</ins></code><ins class="diff-new">
+are
+converted
+to
+a
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
+JSON
+numbers
+</ins></a><ins class="diff-new">
+and
+</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-new">
+RDF
+literals
+</ins></a><ins class="diff-new">
+with
+a
+</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-new">
+datatype
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>
+</a>
+<del class="diff-old">representations.
+</del>
+<ins class="diff-chg">that
+equals
+</ins><code><ins class="diff-chg">
+xsd:boolean
+</ins></code><ins class="diff-chg">
+are
+converted
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a><ins class="diff-chg">
+based
+on
+their
+</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form"><ins class="diff-chg">
+lexical
+form
+</ins></a><ins class="diff-chg">
+as
+described
+in
+</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-chg">
+section
+10.6
+Data
+Round
+Tripping
+</ins></a>.</p></section><section><h4 id="algorithm-16"><ins class="diff-chg">
+Algorithm
+</ins></h4><p><ins class="diff-chg">
+The
+algorithm
+takes
+two
+required
+inputs:
+an
+</ins><a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset"><ins class="diff-chg">
+RDF
+dataset
+</ins></a><ins class="diff-chg">
+and
+a
+flag
+</ins><i><ins class="diff-chg">
+use
+native
+types
+</ins></i><ins class="diff-chg">
+that
+defaults
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>.
+</p>
+<ol class="algorithm">
+<del class="diff-old">Construct
+defaultGraph
+as
+</del>
+<li>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+default
+graph
+</ins></i><ins class="diff-chg">
+to
+</ins>
+a
+<ins class="diff-chg">new
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+<del class="diff-old">containing
+subjects
+</del>
+<ins class="diff-chg">consisting
+of
+two
+members,
+</ins><code><ins class="diff-chg">
+nodeMap
+</ins></code>
+and
+<code>
+listMap
+<del class="diff-old">,
+each
+</del>
+</code>,
+<ins class="diff-chg">whose
+value
+is
+an
+</ins>
+an
+empty
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>.
+</li>
+<li>
+<del class="diff-old">Construct
+graphs
+as
+a
+</del>
+<ins class="diff-chg">Initialize
+</ins><i><ins class="diff-chg">
+graph
+map
+</ins></i><ins class="diff-chg">
+to
+an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+<del class="diff-old">containing
+defaultGraph
+identified
+by
+an
+empty
+string
+.
+</del>
+<ins class="diff-chg">consisting
+of
+a
+single
+member
+</ins><code><ins class="diff-chg">
+@default
+</ins></code><ins class="diff-chg">
+whose
+value
+is
+set
+to
+reference
+</ins><i><ins class="diff-chg">
+default
+graph
+</ins></i>.</li><li><ins class="diff-chg">
+Reference
+the
+</ins><code><ins class="diff-chg">
+nodeMap
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+default
+graph
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+default
+graph
+nodes
+</ins></i>.
+</li>
+<li>
+For
+each
+<del class="diff-old">quad
+</del>
+<i>
+<ins class="diff-chg">graph
+</ins></i>
+in
+<del class="diff-old">input
+:
+</del>
+<a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">
+<ins class="diff-chg">RDF
+dataset
+</ins></a>:
+<ol class="algorithm">
+<li>
+<del class="diff-old">Set
+</del>
+<ins class="diff-chg">If
+</ins><i>
+graph
+</i>
+<ins class="diff-chg">is
+the
+</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
+default
+graph
+</ins></a>,<ins class="diff-chg">
+set
+</ins><i><ins class="diff-chg">
+name
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+@default
+</ins></code>,<ins class="diff-chg">
+otherwise
+</ins>
+to
+the
+<del class="diff-old">entry
+in
+graphs
+identified
+by
+</del>
+<a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
+<ins class="diff-chg">graph
+</ins>
+name
+<del class="diff-old">,
+initializing
+it
+</del>
+</a>
+<ins class="diff-chg">associated
+with
+</ins><i><ins class="diff-chg">
+graph
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+graph
+map
+</ins></i><ins class="diff-chg">
+has
+no
+</ins><i><ins class="diff-chg">
+name
+</ins></i><ins class="diff-chg">
+member,
+create
+one
+and
+set
+its
+value
+to
+a
+</ins>
+to
+a
+new
+<del class="diff-old">entry
+using
+the
+mechanism
+described
+in
+Step
+1
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins></a><ins class="diff-chg">
+consisting
+of
+two
+members,
+</ins><code><ins class="diff-chg">
+nodeMap
+</ins></code><ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+listMap
+</ins></code>,<ins class="diff-chg">
+whose
+value
+is
+an
+an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins>
+</a>.
+</li>
+<li>
+If
+<del class="diff-old">property
+</del>
+<i>
+<ins class="diff-chg">graph
+</ins></i>
+is
+<del class="diff-old">rdf:first
+,
+use
+</del>
+<ins class="diff-chg">not
+</ins>
+the
+<del class="diff-old">entry
+in
+graph.listMap
+indexed
+by
+subject
+,
+initializing
+it
+</del>
+<a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">
+<ins class="diff-chg">default
+graph
+</ins></a><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+default
+graph
+nodes
+</ins></i><ins class="diff-chg">
+does
+not
+have
+a
+</ins><i><ins class="diff-chg">
+name
+</ins></i><ins class="diff-chg">
+member,
+create
+such
+a
+member
+and
+initialize
+its
+value
+</ins>
+to
+a
+new
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+<del class="diff-old">if
+nesessary.
+Represent
+object
+in
+expanded
+form,
+as
+described
+</del>
+<ins class="diff-chg">with
+a
+single
+member
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+whose
+value
+is
+</ins><i><ins class="diff-chg">
+name
+</ins></i>.</li><li><ins class="diff-chg">
+Reference
+the
+value
+of
+the
+</ins><i><ins class="diff-chg">
+name
+</ins></i><ins class="diff-chg">
+member
+</ins>
+in
+<del class="diff-old">Value
+Expansion
+.
+Add
+</del>
+<i>
+<ins class="diff-chg">graph
+map
+</ins></i><ins class="diff-chg">
+using
+</ins>
+the
+<del class="diff-old">resulting
+</del>
+<ins class="diff-chg">variable
+</ins><i><ins class="diff-chg">
+graph
+</ins>
+object
+<del class="diff-old">representation
+to
+</del>
+</i>.
+</li>
+<li>
+<ins class="diff-chg">Reference
+</ins>
+the
+<del class="diff-old">entry
+indexed
+by
+first
+,
+</del>
+<ins class="diff-chg">value
+of
+the
+</ins><code><ins class="diff-chg">
+nodeMap
+</ins></code><ins class="diff-chg">
+member
+in
+</ins><i><ins class="diff-chg">
+graph
+object
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i>
+and
+<del class="diff-old">skip
+to
+</del>
+the
+<del class="diff-old">next
+quad.
+</del>
+<ins class="diff-chg">value
+of
+the
+</ins><code><ins class="diff-chg">
+listMap
+</ins></code><ins class="diff-chg">
+member
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+list
+map
+</ins></i>.
+</li>
+<li>
+<ins class="diff-new">For
+each
+</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-new">
+RDF
+triple
+</ins></a><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+graph
+</ins></i><ins class="diff-new">
+consisting
+of
+</ins><i><ins class="diff-new">
+subject
+</ins></i>,<i><ins class="diff-new">
+predicate
+</ins></i>,<ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+object
+</ins></i>:<ol class="algorithm"><li>
+If
+<del class="diff-old">property
+is
+</del>
+<i>
+<ins class="diff-chg">predicate
+</ins></i><ins class="diff-chg">
+equals
+</ins>
+<code>
+<del class="diff-old">rdf:rest
+:
+</del>
+<ins class="diff-chg">rdf:first
+</ins></code>,
+<ol class="algorithm">
+<li>
+If
+<del class="diff-old">object
+is
+a
+blank
+node
+,
+use
+the
+entry
+in
+graph.listMap
+indexed
+by
+</del>
+<i>
+<ins class="diff-chg">list
+map
+</ins></i><ins class="diff-chg">
+has
+no
+</ins><i>
+subject
+<del class="diff-old">,
+initializing
+</del>
+</i>
+<ins class="diff-chg">member,
+create
+one
+and
+initialize
+</ins>
+it
+to
+<del class="diff-old">a
+new
+</del>
+<ins class="diff-chg">an
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+<del class="diff-old">if
+necessary.
+Add
+</del>
+</a>.
+</li>
+<li>
+<ins class="diff-chg">Initialize
+</ins>
+the
+<del class="diff-old">nominalValue
+</del>
+<ins class="diff-chg">value
+</ins>
+of
+<del class="diff-old">object
+</del>
+<ins class="diff-chg">the
+</ins><code><ins class="diff-chg">
+first
+</ins></code><ins class="diff-chg">
+member
+of
+the
+</ins><i><ins class="diff-chg">
+subject
+</ins></i><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+list
+map
+</ins></i>
+to
+the
+<del class="diff-old">entry
+indexed
+by
+rest
+.
+</del>
+<ins class="diff-chg">result
+of
+the
+</ins><a href="#rdf-to-object-conversion"><ins class="diff-chg">
+RDF
+to
+Object
+Conversion
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><i><ins class="diff-chg">
+object
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+use
+native
+types
+</ins></i>.
+</li>
+<li>
+<del class="diff-old">Skip
+to
+</del>
+<ins class="diff-chg">Continue
+with
+</ins>
+the
+next
+<del class="diff-old">quad.
+</del>
+<a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">
+<ins class="diff-chg">RDF
+triple
+</ins></a>.
+</li>
+</ol>
+</li>
+<li>
+If
+<del class="diff-old">name
+is
+not
+null
+,
+</del>
+<i>
+<ins class="diff-chg">predicate
+</ins></i><ins class="diff-chg">
+equals
+</ins><code><ins class="diff-chg">
+rdf:rest
+</ins></code>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+list
+map
+</ins></i><ins class="diff-chg">
+has
+no
+</ins><i><ins class="diff-chg">
+subject
+</ins></i><ins class="diff-chg">
+member,
+create
+one
+</ins>
+and
+<del class="diff-old">defaultGraph.subjects
+does
+not
+contain
+</del>
+<ins class="diff-chg">initialize
+it
+to
+</ins>
+an
+<del class="diff-old">entry
+for
+name
+,
+create
+a
+new
+entry
+for
+name
+from
+a
+new
+</del>
+<ins class="diff-chg">empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+<del class="diff-old">with
+key/value
+pair
+</del>
+</a>.
+</li>
+<li>
+<ins class="diff-chg">Initialize
+the
+value
+</ins>
+of
+<ins class="diff-new">the
+</ins>
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">rest
+</ins>
+</code>
+<del class="diff-old">and
+a
+string
+representation
+</del>
+<ins class="diff-chg">member
+</ins>
+of
+<del class="diff-old">name
+.
+</del>
+<ins class="diff-chg">the
+</ins><i><ins class="diff-chg">
+subject
+</ins></i><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+list
+map
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object"><ins class="diff-chg">
+object
+</ins></a>,<ins class="diff-chg">
+which
+is
+either
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>.
+</li>
+<li>
+<del class="diff-old">Set
+value
+as
+</del>
+<ins class="diff-chg">Continue
+with
+</ins>
+the
+<del class="diff-old">entry
+from
+graph.subjects
+for
+</del>
+<ins class="diff-chg">next
+</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
+RDF
+triple
+</ins></a>.</li></ol></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i><ins class="diff-chg">
+does
+not
+have
+a
+</ins><i>
+subject
+<del class="diff-old">,
+initializing
+it
+</del>
+</i>
+<ins class="diff-chg">member,
+create
+one
+and
+initialize
+its
+value
+</ins>
+to
+a
+new
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+<del class="diff-old">with
+key/value
+pair
+</del>
+<ins class="diff-chg">consisting
+</ins>
+of
+<ins class="diff-new">a
+single
+member
+</ins>
+<code>
+@id
+</code>
+<del class="diff-old">and
+a
+string
+representation
+</del>
+<ins class="diff-chg">whose
+value
+is
+set
+to
+</ins><i><ins class="diff-chg">
+subject
+</ins></i>.</li><li><ins class="diff-chg">
+Reference
+the
+value
+</ins>
+of
+<ins class="diff-chg">the
+</ins><i>
+subject
+<del class="diff-old">if
+necessary.
+</del>
+</i>
+<ins class="diff-chg">member
+in
+</ins><i><ins class="diff-chg">
+node
+map
+</ins></i><ins class="diff-chg">
+using
+the
+variable
+</ins><i><ins class="diff-chg">
+node
+</ins></i>.
+</li>
+<li>
+If
+<del class="diff-old">property
+is
+</del>
+<i>
+<ins class="diff-chg">predicate
+</ins></i><ins class="diff-chg">
+equals
+</ins>
+<code>
+rdf:type
+</code>,
+and
+<del class="diff-old">the
+notType
+option
+</del>
+<i>
+<ins class="diff-chg">object
+</ins></i>
+is
+<del class="diff-old">present
+and
+not
+true
+:
+Append
+the
+string
+representation
+of
+</del>
+<ins class="diff-chg">an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>,<ins class="diff-chg">
+append
+</ins><i>
+object
+</i>
+to
+the
+<del class="diff-old">array
+</del>
+value
+<del class="diff-old">for
+</del>
+<ins class="diff-chg">of
+</ins>
+the
+<del class="diff-old">key
+</del>
+<code>
+@type
+<del class="diff-old">,
+creating
+</del>
+</code>
+<ins class="diff-chg">member
+of
+</ins><i><ins class="diff-chg">
+node
+</ins></i>.<ins class="diff-chg">
+If
+no
+such
+member
+exists,
+create
+one
+and
+initialize
+it
+to
+</ins>
+an
+<del class="diff-old">entry
+in
+value
+if
+necessary.
+Otherwise,
+if
+object
+</del>
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a><ins class="diff-chg">
+whose
+only
+item
+</ins>
+is
+<del class="diff-old">rdf:nil
+:
+Let
+key
+be
+</del>
+<i>
+<ins class="diff-chg">object
+</ins></i>.<ins class="diff-chg">
+Finally,
+continue
+to
+</ins>
+the
+<del class="diff-old">string
+representation
+of
+property
+.
+</del>
+<ins class="diff-chg">next
+</ins><a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple"><ins class="diff-chg">
+RDF
+triple
+</ins></a>.
+</li>
+<li>
+<del class="diff-old">Append
+</del>
+<ins class="diff-chg">If
+</ins><i><ins class="diff-chg">
+node
+</ins></i><ins class="diff-chg">
+does
+not
+have
+</ins>
+an
+<del class="diff-old">empty
+@list
+representation
+to
+the
+array
+</del>
+<i>
+<ins class="diff-chg">predicate
+</ins></i><ins class="diff-chg">
+member,
+create
+one
+and
+initialize
+its
+</ins>
+value
+<del class="diff-old">for
+key
+,
+creating
+</del>
+<ins class="diff-chg">to
+</ins>
+an
+<del class="diff-old">entry
+in
+value
+if
+necessary.
+</del>
+<ins class="diff-chg">empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.
+</li>
+<li>
+<del class="diff-old">Otherwise,
+Let
+key
+be
+</del>
+<ins class="diff-chg">Set
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+</ins>
+the
+<del class="diff-old">string
+representation
+</del>
+<ins class="diff-chg">result
+</ins>
+of
+<del class="diff-old">property
+and
+let
+object
+representation
+be
+</del>
+<ins class="diff-chg">using
+the
+</ins><a href="#rdf-to-object-conversion"><ins class="diff-chg">
+RDF
+to
+Object
+Conversion
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><i>
+object
+<del class="diff-old">represented
+in
+expanded
+form
+as
+described
+in
+Value
+Expansion
+.
+</del>
+</i>
+<ins class="diff-chg">and
+</ins><i><ins class="diff-chg">
+use
+native
+types
+</ins></i>.</li><li><ins class="diff-chg">
+Add
+a
+reference
+to
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+to
+the
+to
+the
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+associated
+with
+the
+</ins><i><ins class="diff-chg">
+predicate
+</ins></i><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+node
+</ins></i>.
+</li>
+<li>
+If
+<i>
+object
+</i>
+is
+<ins class="diff-new">an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+or
+</ins>
+a
+<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
+blank
+node
+<del class="diff-old">,
+use
+the
+entry
+in
+graph.listMap
+indexed
+by
+object
+,
+initializing
+</del>
+<ins class="diff-chg">identifier
+</ins></a>
+it
+<del class="diff-old">to
+</del>
+<ins class="diff-chg">might
+represent
+the
+head
+of
+</ins>
+a
+<del class="diff-old">new
+JSON
+</del>
+<ins class="diff-chg">RDF
+list:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+list
+map
+</ins></i><ins class="diff-chg">
+has
+no
+</ins><i>
+object
+<del class="diff-old">if
+nesessary.
+Add
+</del>
+</i>
+<ins class="diff-chg">member,
+create
+one
+and
+set
+its
+value
+to
+</ins>
+an
+<del class="diff-old">entry
+for
+head
+with
+</del>
+<ins class="diff-chg">empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+</ins>
+object
+<del class="diff-old">representation
+.
+</del>
+</a>.
+</li>
+<li>
+<del class="diff-old">Append
+</del>
+<ins class="diff-chg">Set
+the
+</ins><code><ins class="diff-chg">
+head
+</ins></code><ins class="diff-chg">
+member
+of
+the
+</ins><i>
+object
+<del class="diff-old">representation
+</del>
+</i>
+<ins class="diff-chg">member
+of
+</ins><i><ins class="diff-chg">
+list
+map
+</ins></i><ins class="diff-chg">
+to
+a
+reference
+of
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.<ins class="diff-chg">
+This
+reference
+may
+be
+required
+later
+</ins>
+to
+<ins class="diff-new">replace
+</ins>
+the
+<del class="diff-old">array
+</del>
+<i>
+value
+<del class="diff-old">for
+key
+,
+creating
+an
+entry
+</del>
+</i>
+in
+<del class="diff-old">value
+if
+necessary.
+</del>
+<ins class="diff-chg">the
+</ins><i><ins class="diff-chg">
+predicate
+</ins></i><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+node
+</ins></i><ins class="diff-chg">
+with
+a
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins></a>.</li></ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+<li>
+For
+each
+<i>
+name
+</i>
+and
+<i>
+graph
+<ins class="diff-chg">object
+</ins></i>
+in
+<del class="diff-old">graphs
+:
+</del>
+<i>
+<ins class="diff-chg">graph
+map
+</ins></i>:
+<ol class="algorithm">
+<li>
+<ins class="diff-new">Reference
+the
+value
+of
+the
+</ins><code><ins class="diff-new">
+listMap
+</ins></code><ins class="diff-new">
+member
+in
+</ins><i><ins class="diff-new">
+graph
+object
+</ins></i><ins class="diff-new">
+using
+the
+variable
+</ins><i><ins class="diff-new">
+list
+map
+</ins></i>.</li><li>
+For
+each
+<ins class="diff-chg">key-value
+pair
+</ins><i>
+subject
+<del class="diff-old">and
+</del>
+</i>
+<ins class="diff-chg">-
+</ins><i>
+entry
+<del class="diff-old">in
+</del>
+</i>
+<ins class="diff-chg">of
+the
+value
+associated
+to
+the
+</ins><code><ins class="diff-chg">
+listMap
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i>
+graph
+<del class="diff-old">where
+</del>
+<ins class="diff-chg">object
+</ins></i>:<ol class="algorithm"><li><ins class="diff-chg">
+If
+</ins><i>
+entry
+</i>
+has
+<del class="diff-old">both
+</del>
+<ins class="diff-chg">not
+an
+</ins><code>
+head
+</code>
+and
+<ins class="diff-chg">an
+</ins><code>
+first
+<del class="diff-old">keys:
+</del>
+</code>
+<ins class="diff-chg">member
+it
+does
+not
+represent
+the
+head
+of
+a
+</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
+list
+</ins></a>.<ins class="diff-chg">
+Continue
+with
+the
+next
+key-value
+pair.
+</ins></li>
+<li>
+<del class="diff-old">Set
+value
+to
+</del>
+<ins class="diff-chg">Reference
+</ins>
+the
+value
+of
+<ins class="diff-chg">the
+</ins><code>
+head
+</code>
+<ins class="diff-chg">member
+</ins>
+in
+<i>
+entry
+<del class="diff-old">.
+</del>
+</i>
+<ins class="diff-chg">using
+the
+variable
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.
+</li>
+<li>
+Remove
+the
+<del class="diff-old">entry
+for
+</del>
+<code>
+@id
+</code>
+<del class="diff-old">in
+</del>
+<ins class="diff-chg">member
+from
+</ins><i>
+value
+<del class="diff-old">.
+</del>
+</i>.
+</li>
+<li>
+Add
+an
+<del class="diff-old">entry
+to
+value
+for
+</del>
+<code>
+@list
+</code>
+<del class="diff-old">initialized
+</del>
+<ins class="diff-chg">member
+</ins>
+to
+<del class="diff-old">a
+new
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i><ins class="diff-chg">
+and
+initialize
+it
+to
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+containing
+the
+value
+of
+<ins class="diff-chg">the
+</ins><code>
+first
+<del class="diff-old">from
+</del>
+</code>
+<ins class="diff-chg">member
+of
+</ins><i>
+entry
+<del class="diff-old">.
+</del>
+</i>.
+</li>
+<li>
+While
+<del class="diff-old">entry
+has
+a
+key
+for
+</del>
+<ins class="diff-chg">the
+value
+associated
+with
+the
+</ins><code>
+rest
+<del class="diff-old">:
+</del>
+</code>
+<ins class="diff-chg">member
+of
+</ins><i><ins class="diff-chg">
+entry
+</ins></i><ins class="diff-chg">
+is
+not
+</ins><code><ins class="diff-chg">
+rdf:nil
+</ins></code>:
+<ol class="algorithm">
+<li>
+Set
+<i>
+<ins class="diff-chg">rest
+</ins></i><ins class="diff-chg">
+to
+the
+value
+of
+the
+</ins><code><ins class="diff-chg">
+rest
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i>
+entry
+</i>.
+</li>
+<li>
+<ins class="diff-chg">Set
+</ins><i><ins class="diff-chg">
+entry
+</ins></i>
+to
+the
+value
+<ins class="diff-new">associated
+with
+the
+</ins><i><ins class="diff-new">
+rest
+</ins></i><ins class="diff-new">
+member
+</ins>
+of
+<del class="diff-old">graph.listMap
+for
+entry.rest
+.
+</del>
+<i>
+<ins class="diff-chg">list
+map
+</ins></i>.
+</li>
+<li>
+Add
+the
+value
+<del class="diff-old">for
+entry.first
+</del>
+<ins class="diff-chg">associated
+with
+the
+</ins><code><ins class="diff-chg">
+first
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+entry
+</ins></i>
+to
+the
+<del class="diff-old">list
+array.
+</del>
+<code>
+<ins class="diff-chg">@list
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+<li>
+<del class="diff-old">Create
+array
+as
+</del>
+<ins class="diff-chg">Initialize
+</ins>
+an
+empty
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+<del class="diff-old">.
+</del>
+</a>
+<i>
+<ins class="diff-chg">result
+</ins></i>.
+</li>
+<li>
+For
+each
+<i>
+subject
+</i>
+and
+<del class="diff-old">entry
+</del>
+<i>
+<ins class="diff-chg">node
+</ins></i>
+in
+<del class="diff-old">defaultGraph.subjects
+</del>
+<i>
+<ins class="diff-chg">default
+graph
+nodes
+</ins></i>
+ordered
+by
+<i>
+subject
+<del class="diff-old">:
+</del>
+</i>:
+<ol class="algorithm">
+<li>
+<del class="diff-old">Add
+entry
+to
+array
+.
+</del>
+If
+<del class="diff-old">graphs
+</del>
+<i>
+<ins class="diff-chg">graph
+map
+</ins></i>
+has
+an
+<del class="diff-old">entry
+for
+</del>
+<i>
+subject
+<del class="diff-old">,
+add
+</del>
+</i>
+<ins class="diff-chg">member:
+</ins><ol class="algorithm"><li><ins class="diff-chg">
+Add
+</ins>
+a
+<del class="diff-old">property
+</del>
+<code>
+@graph
+</code>
+<del class="diff-old">in
+entry
+containing
+</del>
+<ins class="diff-chg">member
+to
+</ins><i><ins class="diff-chg">
+node
+</ins></i><ins class="diff-chg">
+and
+initialize
+its
+value
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>.</li><li><ins class="diff-chg">
+Reference
+the
+</ins><code><ins class="diff-chg">
+nodeMap
+</ins></code><ins class="diff-chg">
+member
+of
+the
+</ins><i><ins class="diff-chg">
+subject
+</ins></i><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+graph
+map
+</ins></i><ins class="diff-chg">
+using
+</ins>
+the
+<ins class="diff-new">variable
+</ins><i><ins class="diff-new">
+node
+map
+</ins></i>.</li><li><ins class="diff-new">
+For
+each
+key-value
+pair
+</ins><i><ins class="diff-new">
+s
+</ins></i><ins class="diff-new">
+-
+</ins><i><ins class="diff-new">
+n
+</ins></i><ins class="diff-new">
+in
+</ins><i><ins class="diff-new">
+node
+map
+</ins></i>
+ordered
+<del class="diff-old">entries
+from
+graphs[subject].subjects
+.
+</del>
+<ins class="diff-chg">by
+</ins><i><ins class="diff-chg">
+s
+</ins></i>,<ins class="diff-chg">
+append
+</ins><i><ins class="diff-chg">
+n
+</ins></i><ins class="diff-chg">
+to
+the
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+member
+of
+</ins><i><ins class="diff-chg">
+node
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Append
+</ins><i><ins class="diff-chg">
+node
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.
+</li>
+</ol>
+</li>
+<li>
+Return
+<del class="diff-old">array
+as
+the
+result.
+</del>
+<i>
+<ins class="diff-chg">result
+</ins></i>.
+</li>
+</ol>
+</section>
+</section>
+<section id="rdf-to-object-conversion">
+<h3>
+<span class="secno">
+<del class="diff-old">5.
+</del>
+<ins class="diff-chg">10.5
+</ins>
+</span>
+<del class="diff-old">Data
+Round
+Tripping
+</del>
+<ins class="diff-chg">RDF
+to
+Object
+Conversion
+</ins></h3>
+<p>
+<del class="diff-old">When
+coercing
+numbers
+</del>
+<ins class="diff-chg">This
+algorithm
+transforms
+an
+RDF
+literal
+</ins>
+to
+<ins class="diff-chg">a
+JSON-LD
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins></a><ins class="diff-chg">
+and
+a
+RDF
+blank
+node
+or
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+to
+an
+JSON-LD
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a>.</p><section class="informative"><h4 id="overview-17"><ins class="diff-chg">
+Overview
+</ins></h4><p><em><ins class="diff-chg">
+This
+section
+is
+non-normative.
+</ins></em></p><p><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
+RDF
+literals
+</ins></a><ins class="diff-chg">
+are
+transformed
+to
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+objects
+</ins></a><ins class="diff-chg">
+whereas
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a><ins class="diff-chg">
+are
+transformed
+to
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+objects
+</ins></a>.<ins class="diff-chg">
+If
+the
+</ins><i><ins class="diff-chg">
+use
+native
+types
+</ins></i><ins class="diff-chg">
+flag
+is
+set
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
+RDF
+literals
+</ins></a><ins class="diff-chg">
+with
+a
+</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
+datatype
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+that
+equals
+</ins><code>
+xsd:integer
+</code>
+or
+<code>
+xsd:double
+<del class="diff-old">as
+it,
+e.g.,
+happens
+during
+</del>
+</code>
+<ins class="diff-chg">are
+converted
+to
+a
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+JSON
+numbers
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">
+RDF
+<del class="diff-old">Conversion
+,
+implementers
+must
+ensure
+</del>
+<ins class="diff-chg">literals
+</ins></a><ins class="diff-chg">
+with
+a
+</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
+datatype
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>
+that
+<ins class="diff-new">equals
+</ins><code><ins class="diff-new">
+xsd:boolean
+</ins></code><ins class="diff-new">
+are
+converted
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
+false
+</ins></a><ins class="diff-new">
+based
+on
+their
+</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form"><ins class="diff-new">
+lexical
+form
+</ins></a><ins class="diff-new">
+as
+described
+in
+</ins><a class="sectionRef" href="#data-round-tripping"><ins class="diff-new">
+section
+10.6
+Data
+Round
+Tripping
+</ins></a>.</p></section><section><h4 id="algorithm-17"><ins class="diff-new">
+Algorithm
+</ins></h4><p><ins class="diff-new">
+This
+algorithm
+takes
+two
+required
+inputs:
+a
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+to
+be
+converted
+to
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a><ins class="diff-new">
+and
+a
+flag
+</ins><i><ins class="diff-new">
+use
+native
+types
+</ins></i>.</p><ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+is
+an
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+or
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
+blank
+node
+identifier
+</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
+If
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+equals
+</ins><code><ins class="diff-new">
+rdf:nil
+</ins></code><ins class="diff-new">
+return
+a
+new
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a><ins class="diff-new">
+consisting
+of
+a
+single
+member
+</ins><code><ins class="diff-new">
+@list
+</ins></code><ins class="diff-new">
+whose
+value
+is
+set
+to
+an
+empty
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a>.<ins class="diff-new">
+This
+is
+behavior
+is
+required
+by
+</ins>
+the
+<del class="diff-old">result
+</del>
+<a href="#convert-from-rdf-algorithm">
+<ins class="diff-chg">Convert
+from
+RDF
+algorithm
+</ins></a>.</li><li><ins class="diff-chg">
+Otherwise,
+return
+a
+new
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+consisting
+of
+a
+single
+member
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+whose
+value
+is
+set
+to
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.</li></ol></li><li><ins class="diff-chg">
+Otherwise
+</ins><i><ins class="diff-chg">
+value
+</ins></i>
+is
+<ins class="diff-new">an
+</ins><a class="tref externalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-new">
+RDF
+literal
+</ins></a>:<ol class="algorithm"><li><ins class="diff-new">
+Initialize
+</ins>
+a
+<del class="diff-old">canonical
+</del>
+<ins class="diff-chg">new
+empty
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+result.
+</ins></li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+converted
+value
+</ins></i><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.</li><li><ins class="diff-chg">
+Initialize
+</ins><i><ins class="diff-chg">
+type
+</ins></i><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a></li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+use
+native
+types
+</ins></i><ins class="diff-chg">
+is
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ol class="algorithm"><li><ins class="diff-chg">
+If
+the
+</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
+datatype
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+equals
+</ins><code><ins class="diff-chg">
+xsd:string
+</ins></code>,<ins class="diff-chg">
+set
+</ins><i><ins class="diff-chg">
+converted
+value
+</ins></i><ins class="diff-chg">
+to
+the
+</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">
+lexical
+form
+<del class="diff-old">in
+</del>
+</a>
+<ins class="diff-chg">of
+</ins><i><ins class="diff-chg">
+value
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins>
+the
+<a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">
+<ins class="diff-new">datatype
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+of
+</ins><i><ins class="diff-new">
+value
+</ins></i><ins class="diff-new">
+equals
+</ins><code><ins class="diff-new">
+xsd:boolean
+</ins></code>,<ins class="diff-new">
+set
+</ins><i><ins class="diff-new">
+converted
+value
+</ins></i><ins class="diff-new">
+to
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+if
+the
+</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form"><ins class="diff-new">
+lexical
+</ins>
+form
+</a>
+of
+<del class="diff-old">a
+string
+.
+A
+canonical
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i><ins class="diff-chg">
+matches
+</ins><code><ins class="diff-chg">
+true
+</ins></code>,<ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a><ins class="diff-chg">
+if
+it
+matches
+</ins><code><ins class="diff-chg">
+false
+</ins></code>.<ins class="diff-chg">
+If
+it
+matches
+neither,
+set
+</ins><i><ins class="diff-chg">
+type
+</ins></i><ins class="diff-chg">
+to
+</ins><code><ins class="diff-chg">
+xsd:boolean
+</ins></code>.</li><li><ins class="diff-chg">
+Otherwise,
+if
+the
+</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
+datatype
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+equals
+</ins><code><ins class="diff-chg">
+xsd:integer
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+xsd:double
+</ins></code><ins class="diff-chg">
+and
+its
+</ins><a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">
+lexical
+form
+</a>
+is
+a
+<ins class="diff-new">valid
+</ins><code><ins class="diff-new">
+xsd:integer
+</ins></code><ins class="diff-new">
+or
+</ins><code><ins class="diff-new">
+xsd:double
+</ins></code><ins class="diff-new">
+according
+[
+</ins><cite><a class="bibref" href="#bib-XMLSCHEMA11-2"><ins class="diff-new">
+XMLSCHEMA11-2
+</ins></a></cite><ins class="diff-new">
+],
+</ins>
+set
+<i>
+<ins class="diff-new">converted
+value
+</ins></i><ins class="diff-new">
+to
+the
+result
+</ins>
+of
+<del class="diff-old">literals
+from
+among
+</del>
+<ins class="diff-chg">converting
+</ins>
+the
+<del class="diff-old">valid
+</del>
+<a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">
+<ins class="diff-chg">lexical
+form
+</ins></a><ins class="diff-chg">
+to
+a
+JSON
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+number
+</ins></a>.</li></ol></li><li><ins class="diff-chg">
+Otherwise,
+if
+</ins><i><ins class="diff-chg">
+value
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><a class="tref externalDFN" title="language-tagged-string" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string"><ins class="diff-chg">
+language-tagged
+string
+</ins></a><ins class="diff-chg">
+add
+a
+member
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+and
+</ins>
+set
+<ins class="diff-new">its
+value
+to
+the
+</ins><a class="tref externalDFN" title="language-tag" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tag"><ins class="diff-new">
+language
+tag
+</ins></a>
+of
+<del class="diff-old">literals
+for
+a
+</del>
+<i>
+<ins class="diff-chg">value
+</ins></i>.</li><li><ins class="diff-chg">
+Otherwise,
+set
+</ins><i><ins class="diff-chg">
+type
+</ins></i><ins class="diff-chg">
+to
+the
+</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">
+datatype
+<del class="diff-old">such
+that
+there
+</del>
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr></a><ins class="diff-chg">
+of
+</ins><i><ins class="diff-chg">
+value
+</ins></i>,<ins class="diff-chg">
+unless
+it
+equals
+</ins><code><ins class="diff-chg">
+xsd:string
+</ins></code><ins class="diff-chg">
+which
+</ins>
+is
+<ins class="diff-new">ignored.
+</ins></li><li><ins class="diff-new">
+Add
+</ins>
+a
+<del class="diff-old">one-to-one
+mapping
+between
+</del>
+<ins class="diff-chg">member
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+whose
+value
+is
+set
+to
+</ins><i><ins class="diff-chg">
+converted
+value
+</ins></i>.</li><li><ins class="diff-chg">
+If
+</ins><i><ins class="diff-chg">
+type
+</ins></i><ins class="diff-chg">
+is
+not
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+add
+a
+member
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+to
+</ins><i><ins class="diff-chg">
+result
+</ins></i><ins class="diff-chg">
+whose
+value
+is
+set
+to
+</ins><i><ins class="diff-chg">
+type
+</ins></i>.</li><li><ins class="diff-chg">
+Return
+</ins><i><ins class="diff-chg">
+result
+</ins></i>.</li></ol></li></ol></section></section><section id="data-round-tripping"><h3><span class="secno"><ins class="diff-chg">
+10.6
+</ins></span><ins class="diff-chg">
+Data
+Round
+Tripping
+</ins></h3><p><ins class="diff-chg">
+When
+</ins><a href="#convert-to-rdf-algorithm"><ins class="diff-chg">
+converting
+JSON-LD
+to
+RDF
+</ins></a><ins class="diff-chg">
+JSON-native
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+numbers
+</ins></a><ins class="diff-chg">
+are
+automatically
+type-coerced
+to
+</ins><code><ins class="diff-chg">
+xsd:integer
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+xsd:double
+</ins></code><ins class="diff-chg">
+depending
+on
+whether
+</ins>
+the
+<a class="tref internalDFN" title="number" href="#dfn-number">
+<ins class="diff-new">number
+</ins></a><ins class="diff-new">
+has
+fractions
+or
+not,
+the
+boolean
+values
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a><ins class="diff-new">
+and
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
+false
+</ins></a><ins class="diff-new">
+are
+coerced
+to
+</ins><code><ins class="diff-new">
+xsd:boolean
+</ins></code>,<ins class="diff-new">
+and
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+strings
+</ins></a><ins class="diff-new">
+are
+coerced
+to
+</ins><code><ins class="diff-new">
+xsd:string
+</ins></code>.<ins class="diff-new">
+The
+numeric
+or
+boolean
+values
+itself
+are
+converted
+to
+</ins><dfn title="canonical-lexical-form" id="dfn-canonical-lexical-form">
+canonical
+lexical
+form
+<del class="diff-old">and
+</del>
+</dfn>,
+<ins class="diff-chg">i.e.,
+</ins>
+a
+<del class="diff-old">value
+in
+the
+value
+space
+</del>
+<ins class="diff-chg">deterministic
+string
+representation
+</ins>
+as
+defined
+in
+[
+<cite>
+<a class="bibref" href="#bib-XMLSCHEMA11-2">
+XMLSCHEMA11-2
+</a>
+</cite>
+<del class="diff-old">]].
+In
+other
+words,
+every
+value
+must
+be
+converted
+to
+a
+deterministic
+string
+representation.
+</del>
+<ins class="diff-chg">].
+</ins>
+</p>
+<p>
+The
+<a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">
+canonical
+lexical
+form
+</a>
+of
+an
+<em>
+integer
+</em>,
+i.e.,
+a
+<a class="tref internalDFN" title="number" href="#dfn-number">
+number
+</a>
+without
+fractions
+or
+a
+<a class="tref internalDFN" title="number" href="#dfn-number">
+number
+</a>
+coerced
+to
+<code>
+xsd:integer
+<del class="diff-old">,
+</del>
+</code>,
+is
+a
+finite-length
+sequence
+of
+decimal
+digits
+(
+<code>
+0-9
+</code>
+)
+with
+an
+optional
+leading
+minus
+sign;
+leading
+<del class="diff-old">zeroes
+</del>
+<ins class="diff-chg">zeros
+</ins>
+are
+prohibited.
+<del class="diff-old">To
+convert
+the
+number
+in
+</del>
+<ins class="diff-chg">In
+</ins>
+JavaScript,
+implementers
+can
+use
+the
+following
+snippet
+of
+<del class="diff-old">code:
+</del>
+<ins class="diff-chg">code
+to
+convert
+an
+integer
+to
+</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
+canonical
+lexical
+form
+</ins></a>:
+</p>
+<div class="example">
+<div class="example-title">
+<span>
+Example
+<del class="diff-old">23
+</del>
+<ins class="diff-chg">12
+</ins></span>:<ins class="diff-chg">
+Sample
+integer
+serialization
+implementation
+in
+JavaScript
+</ins>
+</div>
+<pre class="example">
+(value).toFixed(0).toString()
+</pre>
+</div>
+<p>
+The
+<a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">
+canonical
+lexical
+form
+</a>
+of
+a
+<em>
+double
+</em>,
+i.e.,
+a
+<a class="tref internalDFN" title="number" href="#dfn-number">
+number
+</a>
+with
+fractions
+or
+a
+<a class="tref internalDFN" title="number" href="#dfn-number">
+number
+</a>
+coerced
+to
+<code>
+xsd:double
+<del class="diff-old">,
+</del>
+</code>,
+consists
+of
+a
+mantissa
+followed
+by
+the
+character
+<del class="diff-old">&quot;E&quot;,
+</del>
+<code>
+<ins class="diff-chg">E
+</ins></code>,
+followed
+by
+an
+exponent.
+The
+mantissa
+<del class="diff-old">must
+be
+</del>
+<ins class="diff-chg">is
+</ins>
+a
+decimal
+<del class="diff-old">number.
+The
+</del>
+<ins class="diff-chg">number
+and
+the
+</ins>
+exponent
+<del class="diff-old">must
+be
+</del>
+<ins class="diff-chg">is
+</ins>
+an
+integer.
+Leading
+<del class="diff-old">zeroes
+</del>
+<ins class="diff-chg">zeros
+</ins>
+and
+a
+preceding
+plus
+sign
+(
+<code>
++
+</code>
+)
+are
+prohibited
+in
+the
+exponent.
+If
+the
+exponent
+is
+zero,
+it
+<del class="diff-old">must
+be
+</del>
+<ins class="diff-chg">is
+</ins>
+indicated
+by
+<code>
+E0
+</code>.
+For
+the
+mantissa,
+the
+preceding
+optional
+plus
+sign
+is
+prohibited
+and
+the
+decimal
+point
+is
+required.
+Leading
+and
+trailing
+<del class="diff-old">zeroes
+</del>
+<ins class="diff-chg">zeros
+</ins>
+are
+prohibited
+subject
+to
+the
+following:
+number
+representations
+must
+be
+normalized
+such
+that
+there
+is
+a
+single
+digit
+which
+is
+non-zero
+to
+the
+left
+of
+the
+decimal
+point
+and
+at
+least
+a
+single
+digit
+to
+the
+right
+of
+the
+decimal
+point
+unless
+the
+value
+being
+represented
+is
+zero.
+The
+canonical
+representation
+for
+zero
+is
+<code>
+0.0E0
+</code>.
+<del class="diff-old">To
+convert
+the
+number
+in
+JavaScript,
+implementers
+can
+use
+the
+following
+snippet
+of
+code:
+Example
+24
+(value).toExponential().replace(/e\+?/,'E')
+</del>
+<code>
+xsd:double
+</code>
+'s
+value
+space
+is
+defined
+by
+the
+IEEE
+double-precision
+64-bit
+floating
+point
+type
+[
+<cite>
+<a class="bibref" href="#bib-IEEE-754-1985">
+IEEE-754-1985
+</a>
+</cite>
+<del class="diff-old">].
+Note
+When
+data
+such
+as
+decimals
+need
+to
+be
+normalized,
+JSON-LD
+authors
+should
+</del>
+<ins class="diff-chg">]
+whereas
+the
+value
+space
+of
+JSON
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+numbers
+</ins></a><ins class="diff-chg">
+is
+</ins>
+not
+<del class="diff-old">use
+values
+that
+are
+going
+</del>
+<ins class="diff-chg">specified;
+when
+converting
+JSON-LD
+</ins>
+to
+<del class="diff-old">undergo
+automatic
+conversion.
+This
+</del>
+<ins class="diff-chg">RDF
+the
+mantissa
+</ins>
+is
+<del class="diff-old">due
+</del>
+<ins class="diff-chg">rounded
+</ins>
+to
+<ins class="diff-new">15
+digits
+after
+</ins>
+the
+<del class="diff-old">lossy
+nature
+of
+xsd:double
+values.
+Authors
+should
+instead
+</del>
+<ins class="diff-chg">decimal
+point.
+In
+JavaScript,
+implementers
+can
+</ins>
+use
+the
+<del class="diff-old">expanded
+object
+form
+</del>
+<ins class="diff-chg">following
+snippet
+of
+code
+</ins>
+to
+<del class="diff-old">set
+the
+</del>
+<ins class="diff-chg">convert
+a
+double
+to
+</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">
+canonical
+lexical
+form
+<del class="diff-old">directly.
+</del>
+</a>:
+</p>
+<div class="example">
+<div class="example-title">
+<span>
+<del class="diff-old">Note
+</del>
+<ins class="diff-chg">Example
+13
+</ins></span>:<ins class="diff-chg">
+Sample
+floating
+point
+number
+serialization
+implementation
+in
+JavaScript
+</ins>
+</div>
+<pre class="example">
+<ins class="diff-chg">(value).toExponential(15).replace(/(\d)0*e\+?/,'$1E')
+</ins></pre></div><p><ins class="diff-chg">
+The
+</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-chg">
+canonical
+lexical
+form
+</ins></a><ins class="diff-chg">
+of
+the
+</ins><em><ins class="diff-chg">
+boolean
+</ins></em><ins class="diff-chg">
+values
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a><ins class="diff-chg">
+are
+the
+strings
+</ins><code><ins class="diff-chg">
+true
+</ins></code><ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+false
+</ins></code>.</p><p>
+When
+JSON-native
+<del class="diff-old">datatypes,
+like
+</del>
+<a class="tref internalDFN" title="number" href="#dfn-number">
+<del class="diff-old">number
+s,
+</del>
+<ins class="diff-chg">numbers
+</ins></a>,
+are
+<del class="diff-old">type
+coerced,
+</del>
+<ins class="diff-chg">converted
+to
+RDF,
+</ins>
+lossless
+data
+round-tripping
+can
+not
+be
+<del class="diff-old">guaranted.
+Consider
+</del>
+<ins class="diff-chg">guaranteed
+as
+rounding
+errors
+might
+occur.
+When
+converting
+</ins><a href="#convert-from-rdf-algorithm"><ins class="diff-chg">
+RDF
+to
+JSON-LD
+</ins></a>,<ins class="diff-chg">
+similar
+rounding
+errors
+might
+occur.
+Furthermore,
+</ins>
+the
+<del class="diff-old">following
+code
+example:
+var myObj1 = {
+               &quot;@context&quot;: {
+                 &quot;number&quot;: {
+                   &quot;@id&quot;: &quot;http://example.com/vocab#number&quot;,
+
+                 }
+               },
+               &quot;number&quot; :
+             };
+// Convert the JSON-LD document to RDF; this converts 42 to a string
+var jsonldText = jsonld.toRDF(myObj1, myRdfTripleCollector);
+// Convert the RDF triples back to a JavaScript object
+var
+myObj2
+=
+jsonld.fromRDF(myRdfTripleCollector.getTriples());
+At
+this
+point,
+myObj1
+and
+myObj2
+will
+have
+different
+values
+for
+</del>
+<ins class="diff-chg">datatype
+or
+</ins>
+the
+<del class="diff-old">&quot;number&quot;
+property.
+</del>
+<ins class="diff-chg">lexical
+representation
+might
+be
+lost.
+An
+</ins>
+<code>
+<del class="diff-old">myObj1
+</del>
+<ins class="diff-chg">xsd:double
+</ins>
+</code>
+<del class="diff-old">will
+have
+the
+number
+42
+,
+while
+</del>
+<ins class="diff-chg">with
+a
+value
+of
+</ins>
+<code>
+<del class="diff-old">myObj2
+</del>
+<ins class="diff-chg">2.0
+</ins>
+</code>
+<del class="diff-old">have
+</del>
+<ins class="diff-chg">will,
+e.g.,
+result
+in
+</ins>
+an
+<del class="diff-old">object
+consisting
+of
+</del>
+<code>
+<del class="diff-old">@value
+</del>
+<ins class="diff-chg">xsd:integer
+</ins>
+</code>
+<del class="diff-old">set
+to
+the
+string
+</del>
+<ins class="diff-chg">with
+a
+value
+of
+</ins>
+<code>
+<del class="diff-old">&quot;42&quot;
+</del>
+<ins class="diff-chg">2
+</ins>
+</code>
+<ins class="diff-new">in
+</ins><a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form"><ins class="diff-new">
+canonical
+lexical
+form
+</ins></a><ins class="diff-new">
+when
+converted
+from
+RDF
+to
+JSON-LD
+</ins>
+and
+<ins class="diff-new">back
+to
+RDF.
+It
+is
+important
+to
+highlight
+that
+in
+practice
+it
+might
+be
+impossible
+to
+losslessly
+convert
+an
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">xsd:integer
+</ins>
+</code>
+<del class="diff-old">set
+</del>
+to
+<ins class="diff-new">a
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
+number
+</ins></a><ins class="diff-new">
+because
+its
+value
+space
+is
+not
+limited.
+While
+the
+JSON
+specification
+[
+</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-new">
+RFC4627
+</ins></a></cite><ins class="diff-new">
+]
+does
+not
+limit
+</ins>
+the
+<del class="diff-old">expanded
+</del>
+value
+<ins class="diff-new">space
+</ins>
+of
+<del class="diff-old">xsd:nonNegativeInteger
+.
+</del>
+<a class="tref internalDFN" title="number" href="#dfn-number">
+<ins class="diff-chg">numbers
+</ins></a><ins class="diff-chg">
+either,
+concrete
+implementations
+typically
+do
+have
+a
+limited
+value
+space.
+</ins>
+</p>
+<del class="diff-old">Note
+</del>
+<p>
+<ins class="diff-chg">To
+ensure
+lossless
+round-tripping
+the
+</ins><a href="#convert-from-rdf-algorithm"><ins class="diff-chg">
+Converting
+from
+RDF
+algorithm
+</ins></a><ins class="diff-chg">
+specifies
+an
+</ins><i><ins class="diff-chg">
+use
+native
+types
+</ins></i><ins class="diff-chg">
+flag
+which
+controls
+whether
+</ins><a class="tref externalDFN" title="rdf-literals" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal"><ins class="diff-chg">
+RDF
+literals
+</ins></a><ins class="diff-chg">
+with
+a
+</ins><a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri"><ins class="diff-chg">
+datatype
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>
+<ins class="diff-chg">equal
+to
+</ins><code><ins class="diff-chg">
+xsd:integer
+</ins></code>,<code><ins class="diff-chg">
+xsd:double
+</ins></code>,<ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+xsd:boolean
+</ins></code><ins class="diff-chg">
+are
+converted
+to
+their
+JSON-native
+counterparts.
+If
+the
+</ins><i><ins class="diff-chg">
+use
+native
+types
+</ins></i><ins class="diff-chg">
+flag
+is
+set
+to
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>,<ins class="diff-chg">
+all
+literals
+remain
+in
+their
+original
+string
+representation.
+</ins></p><p>
+Some
+JSON
+serializers,
+such
+as
+PHP's
+native
+implementation
+in
+some
+versions,
+backslash-escape
+the
+forward
+slash
+character.
+For
+example,
+the
+value
+<code>
+http://example.com/
+</code>
+would
+be
+serialized
+as
+<code>
+http:\/\/example.com\/
+</code>.
+This
+is
+problematic
+as
+other
+JSON
+parsers
+might
+not
+understand
+those
+escaping
+characters.
+There
+is
+no
+need
+to
+backslash-escape
+forward
+slashes
+in
+JSON-LD.
+To
+aid
+interoperability
+between
+JSON-LD
+processors,
+<del class="diff-old">a
+JSON-LD
+serializer
+must
+not
+backslash-escape
+</del>
+forward
+<del class="diff-old">slashes.
+</del>
+<ins class="diff-chg">slashes
+</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em><ins class="diff-chg">
+be
+backslash-escaped.
+</ins>
+</p>
+</section>
+</section>
+<section id="the-application-programming-interface">
+<h2>
+<span class="secno">
+<del class="diff-old">A.
+</del>
+<ins class="diff-chg">11.
+</ins>
+</span>
+<del class="diff-old">Initial
+Context
+</del>
+<ins class="diff-chg">The
+Application
+Programming
+Interface
+</ins>
+</h2>
+<p>
+<ins class="diff-chg">This
+API
+provides
+a
+clean
+mechanism
+that
+enables
+developers
+to
+convert
+JSON-LD
+data
+into
+a
+variety
+of
+output
+formats
+that
+are
+often
+easier
+to
+work
+with.
+A
+conformant
+</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation"><ins class="diff-chg">
+JSON-LD
+API
+Implementation
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+implement
+the
+entirety
+of
+the
+following
+API.
+</ins></p><section id="the-jsonldprocessor-interface"><h3>
+<span class="secno">
+<ins class="diff-chg">11.1
+</ins></span><ins class="diff-chg">
+The
+</ins><a href="#idl-def-JsonLdProcessor" class="idlType">
+<del class="diff-old">Issue
+8
+</del>
+<code>
+<ins class="diff-chg">JsonLdProcessor
+</ins></code></a><ins class="diff-chg">
+Interface
+</ins></h3><p><ins class="diff-chg">
+The
+</ins><a href="#idl-def-JsonLdProcessor" class="idlType"><code><ins class="diff-chg">
+JsonLdProcessor
+</ins></code></a><ins class="diff-chg">
+interface
+is
+the
+high-level
+programming
+structure
+that
+developers
+use
+to
+access
+the
+JSON-LD
+transformation
+methods.
+</ins></p><p><ins class="diff-chg">
+It
+is
+important
+to
+highlight
+that
+conformant
+</ins><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation"><ins class="diff-chg">
+JSON-LD
+API
+Implementations
+</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em><ins class="diff-chg">
+modify
+the
+input
+parameters.
+If
+an
+error
+is
+detected,
+the
+</ins><i><ins class="diff-chg">
+callback
+</ins></i><ins class="diff-chg">
+is
+invoked
+passing
+a
+</ins><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-chg">
+JsonLdError
+</ins></code></a><ins class="diff-chg">
+with
+the
+corresponding
+error
+</ins><code class="idlMemberName"><a href="#widl-JsonLdError-code"><ins class="diff-chg">
+code
+</ins></a></code><ins class="diff-chg">
+and
+processing
+is
+stopped.
+</ins></p>    <pre class="idl"><span class="idlInterface" id="idl-def-JsonLdProcessor">[<span class="extAttr">Constructor</span>]<ins class="diff-chg">
+interface <span class="idlInterfaceID">JsonLdProcessor</span> {
+</ins><span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">expand</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span><span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">compact</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a>?</span> <span class="idlParamName">context</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span><span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">flatten</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a>?</span> <span class="idlParamName">context</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span><ins class="diff-chg">
+};
+</ins></span></pre><section><h4 id="methods"><ins class="diff-chg">
+Methods
+</ins></h4><dl class="methods"><dt id="widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><code><ins class="diff-chg">
+compact
+</ins></code></dt><dd><p><a href="#compaction"><ins class="diff-chg">
+Compacts
+</ins></a><ins class="diff-chg">
+the
+given
+</ins><i><ins class="diff-chg">
+input
+</ins></i><ins class="diff-chg">
+using
+the
+</ins><i><ins class="diff-chg">
+context
+</ins></i><ins class="diff-chg">
+according
+to
+the
+steps
+in
+the
+</ins><a href="#compaction-algorithm"><ins class="diff-chg">
+Compaction
+algorithm
+</ins></a>:</p><ol class="algorithm"><li><ins class="diff-chg">
+If
+the
+passed
+</ins><i><ins class="diff-chg">
+input
+</ins></i><ins class="diff-chg">
+is
+a
+</ins><span class="idlParamType"><ins class="diff-chg">
+DOMString
+</ins>
+</span>
+<ins class="diff-new">representing
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+of
+a
+remote
+document,
+dereference
+it.
+If
+the
+retrieved
+document
+has
+a
+content
+type
+different
+than
+</ins><code><ins class="diff-new">
+application/ld+json
+</ins></code><ins class="diff-new">
+or
+</ins><code><ins class="diff-new">
+application/json
+</ins></code><ins class="diff-new">
+or
+if
+the
+document
+cannot
+be
+parsed
+as
+JSON,
+invoke
+the
+</ins><i><ins class="diff-new">
+callback
+</ins></i><ins class="diff-new">
+passing
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed"><ins class="diff-new">
+loading
+document
+failed
+</ins></a></code><ins class="diff-new">
+error.
+</ins></li><li><ins class="diff-new">
+Initialize
+a
+new
+empty
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>.</li><li><ins class="diff-new">
+If
+an
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-new">
+expandContext
+</ins></a></code><ins class="diff-new">
+has
+been
+passed,
+update
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a><ins class="diff-new">
+using
+the
+</ins><a href="#context-processing-algorithm"><ins class="diff-new">
+Context
+Processing
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+the
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-new">
+expandContext
+</ins></a></code><ins class="diff-new">
+as
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
+local
+context
+</ins></a>.</li><li><ins class="diff-new">
+If
+the
+</ins><i><ins class="diff-new">
+input
+</ins></i><ins class="diff-new">
+has
+been
+retrieved
+and
+the
+response
+has
+a
+content
+type
+</ins><code><ins class="diff-new">
+application/json
+</ins></code><ins class="diff-new">
+and
+an
+HTTP
+Link
+Header
+[
+</ins><cite><a class="bibref" href="#bib-RFC5988"><ins class="diff-new">
+RFC5988
+</ins></a></cite><ins class="diff-new">
+]
+using
+the
+</ins><code><ins class="diff-new">
+http://www.w3.org/ns/json-ld#context
+</ins></code><ins class="diff-new">
+link
+relation,
+update
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a><ins class="diff-new">
+using
+the
+</ins><a href="#context-processing-algorithm"><ins class="diff-new">
+Context
+Processing
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+the
+context
+referenced
+in
+the
+HTTP
+Link
+Header
+as
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-new">
+local
+context
+</ins></a>.</li><li><ins class="diff-new">
+Set
+</ins><i><ins class="diff-new">
+expanded
+</ins></i><ins class="diff-new">
+to
+the
+result
+of
+using
+the
+</ins><a href="#expansion-algorithm"><ins class="diff-new">
+Expansion
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+input
+</ins></i><ins class="diff-new">
+as
+</ins><i><ins class="diff-new">
+element
+</ins></i>.</li><li><ins class="diff-new">
+Set
+</ins><i><ins class="diff-new">
+compacted
+</ins></i><ins class="diff-new">
+to
+the
+result
+of
+using
+the
+</ins><a href="#compaction-algorithm"><ins class="diff-new">
+Compaction
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+</ins><i><ins class="diff-new">
+context
+</ins></i>,<i><ins class="diff-new">
+expanded
+</ins></i><ins class="diff-new">
+as
+</ins><i><ins class="diff-new">
+element
+</ins></i>,<ins class="diff-new">
+and
+if
+passed,
+the
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-new">
+compactArrays
+</ins></a></code><ins class="diff-new">
+flag
+in
+</ins><i><ins class="diff-new">
+options
+</ins></i>.</li><li><ins class="diff-new">
+Invoke
+</ins><i><ins class="diff-new">
+callback
+</ins></i>,<ins class="diff-new">
+passing
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+error
+</ins></i><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+compacted
+</ins></i><ins class="diff-new">
+for
+</ins><i><ins class="diff-new">
+document
+</ins></i>.</li></ol><table class="parameters"><tr><th><ins class="diff-new">
+Parameter
+</ins></th><th><ins class="diff-new">
+Type
+</ins></th><th><ins class="diff-new">
+Nullable
+</ins></th><th><ins class="diff-new">
+Optional
+</ins></th><th><ins class="diff-new">
+Description
+</ins></th></tr><tr><td class="prmName"><ins class="diff-new">
+input
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code><ins class="diff-new">
+JsonLdInput
+</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmOptFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmDesc"><ins class="diff-new">
+The
+JSON-LD
+object
+or
+array
+of
+JSON-LD
+objects
+to
+perform
+the
+compaction
+upon
+or
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+referencing
+the
+JSON-LD
+document
+to
+compact.
+</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
+context
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdContext" class="idlType"><code><ins class="diff-new">
+JsonLdContext
+</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
+✔
+</ins></td><td class="prmOptFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmDesc"><ins class="diff-new">
+The
+context
+to
+use
+when
+compacting
+the
+</ins><code><ins class="diff-new">
+input
+</ins></code><ins class="diff-new">
+;
+either
+in
+the
+form
+of
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a><ins class="diff-new">
+or
+as
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>.</td></tr><tr><td class="prmName"><ins class="diff-new">
+callback
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code><ins class="diff-new">
+JsonLdCallback
+</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmOptFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmDesc"><ins class="diff-new">
+A
+callback
+that
+is
+called
+when
+processing
+completed
+successfully
+on
+the
+given
+</ins><code><ins class="diff-new">
+input
+</ins></code>,<ins class="diff-new">
+or
+a
+fatal
+error
+prevented
+processing
+from
+completing.
+</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
+options
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-new">
+JsonLdOptions
+</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
+✔
+</ins></td><td class="prmOptTrue"><ins class="diff-new">
+✔
+</ins></td><td class="prmDesc"><ins class="diff-new">
+A
+set
+of
+options
+to
+configure
+the
+algorithms.
+This
+allows,
+e.g.,
+to
+set
+the
+input
+document's
+base
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>.</td></tr></table><div><em><ins class="diff-new">
+Return
+type:
+</ins></em><code><a><ins class="diff-new">
+void
+</ins></a></code>
+</div>
+<del class="diff-old">It
+</del>
+</dd>
+<dt id="widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">
+<code>
+<ins class="diff-chg">expand
+</ins></code></dt><dd><p><a href="#expansion"><ins class="diff-chg">
+Expands
+</ins></a><ins class="diff-chg">
+the
+given
+</ins><i><ins class="diff-chg">
+input
+</ins></i><ins class="diff-chg">
+according
+to
+the
+steps
+in
+the
+</ins><a href="#expansion-algorithm"><ins class="diff-chg">
+Expansion
+algorithm
+</ins></a>:</p><ol class="algorithm"><li><ins class="diff-chg">
+If
+the
+passed
+</ins><i><ins class="diff-chg">
+input
+</ins></i>
+is
+<del class="diff-old">still
+being
+discussed
+</del>
+<ins class="diff-chg">a
+</ins><span class="idlParamType"><ins class="diff-chg">
+DOMString
+</ins></span><ins class="diff-chg">
+representing
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>
+<del class="diff-old">whether
+</del>
+<ins class="diff-chg">of
+a
+remote
+document,
+dereference
+it.
+If
+the
+retrieved
+document
+has
+a
+content
+type
+different
+than
+</ins><code><ins class="diff-chg">
+application/ld+json
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+application/json
+</ins></code><ins class="diff-chg">
+or
+if
+the
+document
+cannot
+be
+parsed
+as
+JSON,
+invoke
+the
+</ins><i><ins class="diff-chg">
+callback
+</ins></i><ins class="diff-chg">
+passing
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed"><ins class="diff-chg">
+loading
+document
+failed
+</ins></a></code><ins class="diff-chg">
+error.
+</ins></li><li><ins class="diff-chg">
+Initialize
+a
+new
+empty
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>.</li><li><ins class="diff-chg">
+If
+an
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-chg">
+expandContext
+</ins></a></code><ins class="diff-chg">
+has
+been
+passed,
+update
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+using
+the
+</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
+Context
+Processing
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+the
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-chg">
+expandContext
+</ins></a></code><ins class="diff-chg">
+as
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>.</li><li><ins class="diff-chg">
+If
+the
+</ins><i><ins class="diff-chg">
+input
+</ins></i><ins class="diff-chg">
+has
+been
+retrieved
+and
+the
+response
+has
+a
+content
+type
+</ins><code><ins class="diff-chg">
+application/json
+</ins></code><ins class="diff-chg">
+and
+an
+HTTP
+Link
+Header
+[
+</ins><cite><a class="bibref" href="#bib-RFC5988"><ins class="diff-chg">
+RFC5988
+</ins></a></cite><ins class="diff-chg">
+]
+using
+the
+</ins><code><ins class="diff-chg">
+http://www.w3.org/ns/json-ld#context
+</ins></code><ins class="diff-chg">
+link
+relation,
+update
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+using
+the
+</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
+Context
+Processing
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+the
+context
+referenced
+in
+the
+HTTP
+Link
+Header
+as
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>.</li><li><ins class="diff-chg">
+Set
+</ins><i><ins class="diff-chg">
+expanded
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+using
+the
+</ins><a href="#expansion-algorithm"><ins class="diff-chg">
+Expansion
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+input
+</ins></i><ins class="diff-chg">
+as
+</ins><i><ins class="diff-chg">
+element
+</ins></i>.</li><li><ins class="diff-chg">
+Invoke
+</ins><i><ins class="diff-chg">
+callback
+</ins></i>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+error
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+expanded
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+document
+</ins></i>.</li></ol><table class="parameters"><tr><th><ins class="diff-chg">
+Parameter
+</ins></th><th><ins class="diff-chg">
+Type
+</ins></th><th><ins class="diff-chg">
+Nullable
+</ins></th><th><ins class="diff-chg">
+Optional
+</ins></th><th><ins class="diff-chg">
+Description
+</ins></th></tr><tr><td class="prmName"><ins class="diff-chg">
+input
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code><ins class="diff-chg">
+JsonLdInput
+</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-chg">
+✘
+</ins></td><td class="prmOptFalse"><ins class="diff-chg">
+✘
+</ins></td><td class="prmDesc"><ins class="diff-chg">
+The
+</ins>
+JSON-LD
+<ins class="diff-new">object
+or
+array
+of
+JSON-LD
+objects
+to
+perform
+the
+expansion
+upon
+or
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+referencing
+the
+JSON-LD
+document
+to
+expand.
+</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
+callback
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code><ins class="diff-new">
+JsonLdCallback
+</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmOptFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmDesc"><ins class="diff-new">
+A
+callback
+that
+is
+called
+when
+processing
+completed
+successfully
+on
+the
+given
+</ins><code><ins class="diff-new">
+input
+</ins></code>,<ins class="diff-new">
+or
+a
+fatal
+error
+prevented
+processing
+from
+completing.
+</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
+options
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-new">
+JsonLdOptions
+</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
+✔
+</ins></td><td class="prmOptTrue"><ins class="diff-new">
+✔
+</ins></td><td class="prmDesc"><ins class="diff-new">
+A
+set
+of
+options
+to
+configure
+the
+used
+algorithms
+such.
+This
+allows,
+e.g.,
+to
+set
+the
+input
+document's
+base
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>.</td></tr></table><div><em><ins class="diff-new">
+Return
+type:
+</ins></em><code><a><ins class="diff-new">
+void
+</ins></a></code></div></dd><dt id="widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><code><ins class="diff-new">
+flatten
+</ins></code></dt><dd><p><a href="#flattening"><ins class="diff-new">
+Flattens
+</ins></a><ins class="diff-new">
+the
+given
+</ins><i><ins class="diff-new">
+input
+</ins></i><ins class="diff-new">
+and
+</ins><a href="#compaction"><ins class="diff-new">
+compacts
+</ins></a><ins class="diff-new">
+it
+using
+the
+passed
+</ins><i><ins class="diff-new">
+context
+</ins></i><ins class="diff-new">
+according
+to
+the
+steps
+in
+the
+</ins><a href="#flattening-algorithm"><ins class="diff-new">
+Flattening
+algorithm
+</ins></a>:</p><ol class="algorithm"><li><ins class="diff-new">
+If
+the
+passed
+</ins><i><ins class="diff-new">
+input
+</ins></i><ins class="diff-new">
+is
+a
+</ins><span class="idlParamType"><ins class="diff-new">
+DOMString
+</ins></span><ins class="diff-new">
+representing
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+of
+a
+remote
+document,
+dereference
+it.
+If
+the
+retrieved
+document
+has
+a
+content
+type
+different
+than
+</ins><code><ins class="diff-new">
+application/ld+json
+</ins></code><ins class="diff-new">
+or
+</ins><code><ins class="diff-new">
+application/json
+</ins></code><ins class="diff-new">
+or
+if
+the
+document
+cannot
+be
+parsed
+as
+JSON,
+invoke
+the
+</ins><i><ins class="diff-new">
+callback
+</ins></i><ins class="diff-new">
+passing
+an
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed"><ins class="diff-new">
+loading
+document
+failed
+</ins></a></code><ins class="diff-new">
+error.
+</ins></li><li><ins class="diff-new">
+Initialize
+a
+new
+empty
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>.</li><li><ins class="diff-new">
+If
+an
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-new">
+expandContext
+</ins></a></code>
+has
+<ins class="diff-new">been
+passed,
+update
+</ins>
+the
+<del class="diff-old">notion
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context
+</ins></a><ins class="diff-chg">
+using
+the
+</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
+Context
+Processing
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+the
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext"><ins class="diff-chg">
+expandContext
+</ins></a></code><ins class="diff-chg">
+as
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>.</li><li><ins class="diff-chg">
+If
+the
+</ins><i><ins class="diff-chg">
+input
+</ins></i><ins class="diff-chg">
+has
+been
+retrieved
+and
+the
+response
+has
+a
+content
+type
+</ins><code><ins class="diff-chg">
+application/json
+</ins></code><ins class="diff-chg">
+and
+an
+HTTP
+Link
+Header
+[
+</ins><cite><a class="bibref" href="#bib-RFC5988"><ins class="diff-chg">
+RFC5988
+</ins></a></cite><ins class="diff-chg">
+]
+using
+the
+</ins><code><ins class="diff-chg">
+http://www.w3.org/ns/json-ld#context
+</ins></code><ins class="diff-chg">
+link
+relation,
+update
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+using
+the
+</ins><a href="#context-processing-algorithm"><ins class="diff-chg">
+Context
+Processing
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+the
+context
+referenced
+in
+the
+HTTP
+Link
+Header
+as
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a>.</li><li><ins class="diff-chg">
+Set
+</ins><i><ins class="diff-chg">
+expanded
+</ins></i><ins class="diff-chg">
+to
+the
+result
+</ins>
+of
+<ins class="diff-new">using
+the
+</ins><a href="#expansion-algorithm"><ins class="diff-new">
+Expansion
+algorithm
+</ins></a>,<ins class="diff-new">
+passing
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a><ins class="diff-new">
+and
+</ins><i><ins class="diff-new">
+input
+</ins></i><ins class="diff-new">
+as
+</ins><i><ins class="diff-new">
+element
+</ins></i>.</li><li><ins class="diff-new">
+Initialize
+</ins>
+an
+<del class="diff-old">initial
+</del>
+<ins class="diff-chg">empty
+</ins><i><ins class="diff-chg">
+identifier
+map
+</ins></i><ins class="diff-chg">
+and
+a
+</ins><i><ins class="diff-chg">
+counter
+</ins></i><ins class="diff-chg">
+(set
+to
+</ins><code><ins class="diff-chg">
+0
+</ins></code><ins class="diff-chg">
+)
+to
+be
+used
+by
+the
+</ins><a href="#generate-blank-node-identifier"><ins class="diff-chg">
+Generate
+Blank
+Node
+Identifier
+algorithm
+</ins></a>.</li><li><ins class="diff-chg">
+Set
+</ins><i><ins class="diff-chg">
+flattened
+</ins></i><ins class="diff-chg">
+to
+the
+result
+of
+using
+the
+</ins><a href="#flattening-algorithm"><ins class="diff-chg">
+Flattening
+algorithm
+</ins></a>,<ins class="diff-chg">
+passing
+</ins><i><ins class="diff-chg">
+expanded
+</ins></i><ins class="diff-chg">
+as
+</ins><i><ins class="diff-chg">
+element
+</ins></i>,<i><ins class="diff-chg">
+context
+</ins></i>,<ins class="diff-chg">
+and
+if
+passed,
+the
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays"><ins class="diff-chg">
+compactArrays
+</ins></a></code><ins class="diff-chg">
+flag
+in
+</ins><i><ins class="diff-chg">
+options
+</ins></i><ins class="diff-chg">
+(which
+is
+internally
+passed
+to
+the
+</ins><a href="#compaction-algorithm"><ins class="diff-chg">
+Compaction
+algorithm
+</ins></a><ins class="diff-chg">
+).
+</ins></li><li><ins class="diff-chg">
+Invoke
+</ins><i><ins class="diff-chg">
+callback
+</ins></i>,<ins class="diff-chg">
+passing
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+error
+</ins></i><ins class="diff-chg">
+and
+</ins><i><ins class="diff-chg">
+flattened
+</ins></i><ins class="diff-chg">
+for
+</ins><i><ins class="diff-chg">
+document
+</ins></i>.</li></ol><table class="parameters"><tr><th><ins class="diff-chg">
+Parameter
+</ins></th><th><ins class="diff-chg">
+Type
+</ins></th><th><ins class="diff-chg">
+Nullable
+</ins></th><th><ins class="diff-chg">
+Optional
+</ins></th><th><ins class="diff-chg">
+Description
+</ins></th></tr><tr><td class="prmName"><ins class="diff-chg">
+input
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code><ins class="diff-chg">
+JsonLdInput
+</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-chg">
+✘
+</ins></td><td class="prmOptFalse"><ins class="diff-chg">
+✘
+</ins></td><td class="prmDesc"><ins class="diff-chg">
+The
+JSON-LD
+object
+or
+array
+of
+JSON-LD
+objects
+or
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+referencing
+the
+JSON-LD
+document
+to
+flatten.
+</ins></td></tr><tr><td class="prmName">
+context
+</td>
+<td class="prmType">
+<code>
+<a href="#idl-def-JsonLdContext" class="idlType">
+<code>
+<ins class="diff-new">JsonLdContext
+</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
+✔
+</ins></td><td class="prmOptFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmDesc"><ins class="diff-new">
+The
+context
+to
+use
+when
+compacting
+the
+flattened
+</ins><code><ins class="diff-new">
+input
+</ins></code><ins class="diff-new">
+;
+either
+in
+the
+form
+of
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a>
+or
+<del class="diff-old">not.
+</del>
+<ins class="diff-chg">as
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.
+If
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-new">null
+</ins></a><ins class="diff-new">
+is
+passed,
+the
+result
+will
+not
+be
+compacted
+but
+kept
+in
+expanded
+form.
+</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
+callback
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code><ins class="diff-new">
+JsonLdCallback
+</ins></code></a></code></td><td class="prmNullFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmOptFalse"><ins class="diff-new">
+✘
+</ins></td><td class="prmDesc"><ins class="diff-new">
+A
+callback
+that
+is
+called
+when
+processing
+completed
+successfully
+on
+the
+given
+</ins><code><ins class="diff-new">
+input
+</ins></code>,<ins class="diff-new">
+or
+a
+fatal
+error
+prevented
+processing
+from
+completing.
+</ins></td></tr><tr><td class="prmName"><ins class="diff-new">
+options
+</ins></td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-new">
+JsonLdOptions
+</ins></code></a></code></td><td class="prmNullTrue"><ins class="diff-new">
+✔
+</ins></td><td class="prmOptTrue"><ins class="diff-new">
+✔
+</ins></td><td class="prmDesc"><ins class="diff-new">
+A
+set
+of
+options
+to
+configure
+the
+used
+algorithms
+such.
+This
+allows,
+e.g.,
+to
+set
+the
+input
+document's
+base
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>.</td></tr></table><div><em><ins class="diff-new">
+Return
+type:
+</ins></em><code><a><ins class="diff-new">
+void
+</ins></a></code></div></dd></dl></section><pre class="idl"><span class="idlTypedef" id="idl-def-JsonLdInput"><ins class="diff-new">
+typedef
+</ins><span class="idlTypedefType"><ins class="diff-new">
+(
+</ins><a><ins class="diff-new">
+object
+</ins></a><ins class="diff-new">
+or
+</ins><a><ins class="diff-new">
+object[]
+</ins></a><ins class="diff-new">
+or
+</ins><a><ins class="diff-new">
+DOMString
+</ins></a><ins class="diff-new">
+)
+</ins></span><span class="idlTypedefID"><ins class="diff-new">
+JsonLdInput
+</ins></span><ins class="diff-new">
+;
+</ins></span></pre><div class="idlTypedefDesc"><p><ins class="diff-new">
+The
+identifier
+</ins><a href="#idl-def-JsonLdInput" class="idlType"><code><ins class="diff-new">
+JsonLdInput
+</ins></code></a><ins class="diff-new">
+is
+used
+to
+refer
+to
+the
+</ins><span class="idlTypedefType"><ins class="diff-new">
+(object
+or
+object[]
+or
+DOMString)
+</ins></span><ins class="diff-new">
+type.
+</ins></p></div><pre class="idl"><span class="idlTypedef" id="idl-def-JsonLdContext"><ins class="diff-new">
+typedef
+</ins><span class="idlTypedefType"><ins class="diff-new">
+(
+</ins><a><ins class="diff-new">
+object
+</ins></a><ins class="diff-new">
+or
+</ins><a><ins class="diff-new">
+DOMString
+</ins></a><ins class="diff-new">
+)
+</ins></span><span class="idlTypedefID"><ins class="diff-new">
+JsonLdContext
+</ins></span><ins class="diff-new">
+;
+</ins></span></pre><div class="idlTypedefDesc"><p><ins class="diff-new">
+The
+identifier
+</ins><a href="#idl-def-JsonLdContext" class="idlType"><code><ins class="diff-new">
+JsonLdContext
+</ins></code></a><ins class="diff-new">
+is
+used
+to
+refer
+to
+the
+</ins><span class="idlTypedefType"><ins class="diff-new">
+(object
+or
+DOMString)
+</ins></span><ins class="diff-new">
+type.
+</ins></p></div></section><section id="callbacks"><h3><span class="secno"><ins class="diff-new">
+11.2
+</ins></span><ins class="diff-new">
+Callbacks
+</ins></h3><p><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation"><ins class="diff-new">
+JSON-LD
+API
+Implementations
+</ins></a><ins class="diff-new">
+utilize
+callbacks
+in
+order
+to
+exchange
+information
+in
+an
+asynchronous
+manner
+with
+applications.
+This
+section
+details
+the
+parameters
+of
+those
+callbacks.
+</ins></p><section><h4 id="jsonldcallback"><ins class="diff-new">
+JsonLdCallback
+</ins></h4><p><ins class="diff-new">
+The
+</ins><a href="#idl-def-JsonLdCallback" class="idlType"><code><ins class="diff-new">
+JsonLdCallback
+</ins></code></a><ins class="diff-new">
+is
+called
+when
+an
+API
+method
+of
+</ins><a href="#idl-def-JsonLdProcessor" class="idlType"><code><ins class="diff-new">
+JsonLdProcessor
+</ins></code></a><ins class="diff-new">
+has
+been
+completed,
+either
+successfully
+or
+by
+a
+fatal
+error.
+</ins></p><pre class="idl"><span class="idlCallback" id="idl-def-JsonLdCallback"><ins class="diff-new">
+callback
+</ins><span class="idlCallbackID"><ins class="diff-new">
+JsonLdCallback
+</ins></span><ins class="diff-new">
+=
+</ins><span class="idlCallbackType"><a><ins class="diff-new">
+void
+</ins></a></span><ins class="diff-new">
+(
+</ins><span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-new">
+JsonLdError
+</ins></code></a></span><span class="idlParamName"><ins class="diff-new">
+error
+</ins></span></span>,<span class="idlParam"><ins class="diff-new">optional </ins><span class="idlParamType"><ins class="diff-new">
+(
+</ins><a><ins class="diff-new">
+object
+</ins></a><ins class="diff-new">
+or
+</ins><a><ins class="diff-new">
+object[]
+</ins></a><ins class="diff-new">
+)
+</ins></span><span class="idlParamName"><ins class="diff-new">
+document
+</ins></span></span><ins class="diff-new">
+);
+</ins></span></pre><section><h5 id="callback-jsonldcallback-parameters"><ins class="diff-new">
+Callback
+</ins><a class="idlType" href="#idl-def-JsonLdCallback"><code><ins class="diff-new">
+JsonLdCallback
+</ins></code></a><ins class="diff-new">
+Parameters
+</ins></h5><dl class="callback-members"><dt id="widl-JsonLdCallback-error"><code><ins class="diff-new">
+error
+</ins></code><ins class="diff-new">
+of
+type
+</ins><span class="idlMemberType"><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-new">
+JsonLdError
+</ins></code></a></span></dt><dd><ins class="diff-new">
+If
+the
+value
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+then
+no
+issue
+was
+detected
+during
+processing.
+Otherwise,
+a
+processing
+error
+was
+detected
+and
+the
+details
+are
+contained
+within
+the
+</ins><em><ins class="diff-new">
+error
+</ins></em><ins class="diff-new">
+object.
+</ins></dd><dt id="widl-JsonLdCallback-document"><code><ins class="diff-new">
+document
+</ins></code><ins class="diff-new">
+of
+type
+</ins><span class="idlMemberType"><a><ins class="diff-new">
+(object
+or
+object[])
+</ins></a></span></dt><dd><ins class="diff-new">
+The
+processed
+</ins>
+JSON-LD
+<ins class="diff-new">document.
+</ins></dd></dl></section></section><section><h4 id="loadcontextcallback"><ins class="diff-new">
+LoadContextCallback
+</ins></h4><p><ins class="diff-new">
+The
+</ins><a href="#idl-def-LoadContextCallback" class="idlType"><code><ins class="diff-new">
+LoadContextCallback
+</ins></code></a><ins class="diff-new">
+defines
+the
+callback
+that
+custom
+context
+loaders
+have
+to
+implement
+to
+be
+used
+to
+retrieve
+remote
+contexts.
+</ins></p><pre class="idl"><span class="idlCallback" id="idl-def-LoadContextCallback"><ins class="diff-new">
+callback
+</ins><span class="idlCallbackID"><ins class="diff-new">
+LoadContextCallback
+</ins></span><ins class="diff-new">
+=
+</ins><span class="idlCallbackType"><a><ins class="diff-new">
+void
+</ins></a></span><ins class="diff-new">
+(
+</ins><span class="idlParam"><span class="idlParamType"><a><ins class="diff-new">
+DOMString
+</ins></a></span><span class="idlParamName"><ins class="diff-new">
+url
+</ins></span></span>,<span class="idlParam"><span class="idlParamType"><a href="#idl-def-ContextLoadedCallback" class="idlType"><code><ins class="diff-new">
+ContextLoadedCallback
+</ins></code></a></span><span class="idlParamName"><ins class="diff-new">
+callback
+</ins></span></span><ins class="diff-new">
+);
+</ins></span></pre><section><h5 id="callback-loadcontextcallback-parameters"><ins class="diff-new">
+Callback
+</ins><a class="idlType" href="#idl-def-LoadContextCallback"><code><ins class="diff-new">
+LoadContextCallback
+</ins></code></a><ins class="diff-new">
+Parameters
+</ins></h5><dl class="callback-members"><dt id="widl-LoadContextCallback-url"><code><ins class="diff-new">
+url
+</ins></code><ins class="diff-new">
+of
+type
+</ins><span class="idlMemberType"><a><ins class="diff-new">
+DOMString
+</ins></a></span></dt><dd><ins class="diff-new">
+The
+URL
+of
+the
+remote
+context
+to
+load.
+</ins></dd><dt id="widl-LoadContextCallback-callback"><code><ins class="diff-new">
+callback
+</ins></code><ins class="diff-new">
+of
+type
+</ins><span class="idlMemberType"><a href="#idl-def-ContextLoadedCallback" class="idlType"><code><ins class="diff-new">
+ContextLoadedCallback
+</ins></code></a></span></dt><dd><ins class="diff-new">
+The
+callback
+that
+is
+called
+when
+the
+remote
+context
+</ins>
+has
+<ins class="diff-new">been
+successfully
+loaded
+or
+</ins>
+an
+<del class="diff-old">initial
+</del>
+<ins class="diff-chg">error
+preventing
+its
+loading
+has
+been
+detected.
+</ins></dd></dl></section></section><section><h4 id="contextloadedcallback"><ins class="diff-chg">
+ContextLoadedCallback
+</ins></h4><p><ins class="diff-chg">
+The
+</ins><a href="#idl-def-ContextLoadedCallback" class="idlType"><code><ins class="diff-chg">
+ContextLoadedCallback
+</ins></code></a><ins class="diff-chg">
+is
+called
+in
+response
+to
+a
+call
+of
+the
+</ins><a href="#idl-def-LoadContextCallback" class="idlType"><code><ins class="diff-chg">
+LoadContextCallback
+</ins></code></a>.</p><pre class="idl"><span class="idlCallback" id="idl-def-ContextLoadedCallback"><ins class="diff-chg">
+callback
+</ins><span class="idlCallbackID"><ins class="diff-chg">
+ContextLoadedCallback
+</ins></span><ins class="diff-chg">
+=
+</ins><span class="idlCallbackType"><a><ins class="diff-chg">
+void
+</ins></a></span><ins class="diff-chg">
+(
+</ins><span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-chg">
+JsonLdError
+</ins></code></a></span><span class="idlParamName"><ins class="diff-chg">
+error
+</ins></span></span>,<span class="idlParam"><span class="idlParamType"><a><ins class="diff-chg">
+DOMString
+</ins></a></span><span class="idlParamName"><ins class="diff-chg">
+url
+</ins></span></span>,<span class="idlParam"><span class="idlParamType"><a><ins class="diff-chg">
+DOMString
+</ins></a></span><span class="idlParamName"><ins class="diff-chg">
+context
+</ins></span></span><ins class="diff-chg">
+);
+</ins></span></pre><section><h5 id="callback-contextloadedcallback-parameters"><ins class="diff-chg">
+Callback
+</ins><a class="idlType" href="#idl-def-ContextLoadedCallback"><code><ins class="diff-chg">
+ContextLoadedCallback
+</ins></code></a><ins class="diff-chg">
+Parameters
+</ins></h5><dl class="callback-members"><dt id="widl-ContextLoadedCallback-error"><code><ins class="diff-chg">
+error
+</ins></code><ins class="diff-chg">
+of
+type
+</ins><span class="idlMemberType"><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-chg">
+JsonLdError
+</ins></code></a></span></dt><dd><ins class="diff-chg">
+If
+the
+value
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+then
+no
+issue
+was
+detected
+during
+processing.
+Otherwise,
+a
+processing
+issue
+was
+detected
+and
+the
+details
+are
+contained
+within
+the
+</ins><em><ins class="diff-chg">
+error
+</ins></em><ins class="diff-chg">
+object.
+All
+errors
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+have
+a
+</ins><a href="#idl-def-JsonLdErrorCode" class="idlType"><code><ins class="diff-chg">
+JsonLdErrorCode
+</ins></code></a><ins class="diff-chg">
+of
+</ins><code class="error"><a href="#idl-def-JsonLdErrorCode.loading-remote-context-failed"><ins class="diff-chg">
+loading
+remote
+context
+failed
+</ins></a></code>.</dd><dt id="widl-ContextLoadedCallback-url"><code><ins class="diff-chg">
+url
+</ins></code><ins class="diff-chg">
+of
+type
+</ins><span class="idlMemberType"><a><ins class="diff-chg">
+DOMString
+</ins></a></span></dt><dd><ins class="diff-chg">
+The
+final
+URL
+of
+the
+loaded
+JSON-LD
+context.
+This
+is
+important
+to
+handle
+HTTP
+redirects
+properly.
+</ins></dd><dt id="widl-ContextLoadedCallback-context"><code><ins class="diff-chg">
+context
+</ins></code><ins class="diff-chg">
+of
+type
+</ins><span class="idlMemberType"><a><ins class="diff-chg">
+DOMString
+</ins></a></span></dt><dd><ins class="diff-chg">
+The
+raw
+content
+of
+the
+retrieved
+JSON-LD
+context.
+</ins></dd></dl></section></section></section><section id="data-structures"><h3><span class="secno"><ins class="diff-chg">
+11.3
+</ins></span><ins class="diff-chg">
+Data
+Structures
+</ins></h3><p><ins class="diff-chg">
+This
+section
+describes
+datatype
+definitions
+used
+within
+the
+JSON-LD
+API.
+</ins></p><section><h4 id="jsonldoptions"><ins class="diff-chg">
+JsonLdOptions
+</ins></h4><p><ins class="diff-chg">
+The
+</ins><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-chg">
+JsonLdOptions
+</ins></code></a><ins class="diff-chg">
+type
+is
+used
+to
+pass
+various
+options
+to
+the
+</ins><a href="#idl-def-JsonLdProcessor" class="idlType"><code><ins class="diff-chg">
+JsonLdProcessor
+</ins></code></a><ins class="diff-chg">
+methods.
+</ins></p>      <pre class="idl"><span class="idlDictionary" id="idl-def-JsonLdOptions">dictionary <span class="idlDictionaryID">JsonLdOptions</span> {<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a></span>             <span class="idlMemberName"><a href="#widl-JsonLdOptions-base">base</a></span>;</span><span class="idlMember">    <span class="idlMemberType"><a>boolean</a></span>               <span class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></span> = <span class="idlMemberValue">true</span>;</span><span class="idlMember">    <span class="idlMemberType"><a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a></span>   <span class="idlMemberName"><a href="#widl-JsonLdOptions-loadContext">loadContext</a></span>;</span><span class="idlMember">    <span class="idlMemberType">(<a>object</a> or <a>DOMString</a>)</span> <span class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></span> = <span class="idlMemberValue">null</span>;</span><span class="idlMember">    <span class="idlMemberType"><a>DOMString</a></span>             <span class="idlMemberName"><a href="#widl-JsonLdOptions-processingMode">processingMode</a></span> = <span class="idlMemberValue">&quot;json-ld-1.0&quot;</span>;</span><ins class="diff-chg">
+};
+</ins></span></pre><section><h5 id="dictionary-jsonldoptions-members"><ins class="diff-chg">
+Dictionary
+</ins><a class="idlType" href="#idl-def-JsonLdOptions"><code><ins class="diff-chg">
+JsonLdOptions
+</ins></code></a><ins class="diff-chg">
+Members
+</ins></h5><dl class="dictionary-members"><dt id="widl-JsonLdOptions-base"><code><ins class="diff-chg">
+base
+</ins></code><ins class="diff-chg">
+of
+type
+</ins><span class="idlMemberType"><a><ins class="diff-chg">
+DOMString
+</ins></a></span></dt><dd><ins class="diff-chg">
+The
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+to
+use
+when
+expanding
+or
+compacting
+the
+document.
+This
+overrides
+the
+value
+of
+</ins><em><ins class="diff-chg">
+input
+</ins></em><ins class="diff-chg">
+if
+it
+is
+an
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>.<ins class="diff-chg">
+If
+not
+specified
+and
+</ins><em><ins class="diff-chg">
+input
+</ins></em><ins class="diff-chg">
+is
+not
+an
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>,<ins class="diff-chg">
+the
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+defaults
+to
+the
+current
+document
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+if
+in
+a
+browser
+</ins>
+context,
+<ins class="diff-new">or
+the
+empty
+string
+if
+there
+is
+no
+document
+context.
+</ins><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
+Feature
+at
+Risk
+4
+</ins></span>:<ins class="diff-new">
+Default
+value
+of
+base
+member
+in
+JsonLdOptions
+</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
+Note:
+This
+feature
+is
+</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
+&quot;at
+risk&quot;
+</ins></a><ins class="diff-new">
+and
+may
+be
+removed
+from
+this
+specification
+based
+on
+feedback.
+Please
+send
+feedback
+to
+</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-new">
+public-rdf-comments@w3.org
+</ins></a>.<ins class="diff-new">
+For
+the
+current
+status
+see
+</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-new">
+features
+&quot;at
+risk&quot;
+in
+JSON-LD
+1.0
+</ins></a></p><p><ins class="diff-new">
+The
+default
+value
+of
+</ins><code class="idlMemberName"><a href="#widl-JsonLdOptions-base"><ins class="diff-new">
+base
+</ins></a></code><ins class="diff-new">
+in
+</ins><a href="#idl-def-JsonLdOptions" class="idlType"><code><ins class="diff-new">
+JsonLdOptions
+</ins></code></a><ins class="diff-new">
+implies
+that
+all
+IRIs
+that
+cannot
+be
+compacted
+otherwise
+are
+transformed
+to
+relative
+IRIs
+during
+compaction.
+To
+avoid
+that
+data
+is
+being
+lost,
+developers
+thus
+have
+to
+store
+the
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+along
+with
+the
+compacted
+document.
+Based
+on
+implementer
+feedback,
+the
+Working
+Group
+may
+decide
+to
+change
+the
+default
+value
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,<ins class="diff-new">
+meaning
+that
+IRIs
+are
+not
+automatically
+compacted
+to
+relative
+IRIs.
+</ins></p></div></div></dd><dt id="widl-JsonLdOptions-compactArrays"><code><ins class="diff-new">
+compactArrays
+</ins></code><ins class="diff-new">
+of
+type
+</ins><span class="idlMemberType"><a><ins class="diff-new">
+boolean
+</ins></a></span>,<ins class="diff-new">
+defaulting
+to
+</ins><code><ins class="diff-new">
+true
+</ins></code></dt><dd><ins class="diff-new">
+If
+set
+to
+</ins><code><ins class="diff-new">
+true
+</ins></code>,<ins class="diff-new">
+the
+JSON-LD
+processor
+replaces
+arrays
+with
+just
+one
+element
+with
+that
+element
+during
+compaction.
+If
+set
+to
+</ins><code><ins class="diff-new">
+false
+</ins></code>,<ins class="diff-new">
+all
+arrays
+will
+remain
+arrays
+even
+if
+they
+have
+just
+one
+element.
+</ins></dd><dt id="widl-JsonLdOptions-expandContext"><code><ins class="diff-new">
+expandContext
+</ins></code><ins class="diff-new">
+of
+type
+</ins><span class="idlMemberType"><a><ins class="diff-new">
+(object
+or
+DOMString)
+</ins></a></span>,<ins class="diff-new">
+defaulting
+to
+</ins><code><ins class="diff-new">
+null
+</ins></code></dt><dd><ins class="diff-new">
+A
+context
+that
+is
+used
+to
+initialize
+the
+active
+context
+when
+expanding
+a
+document.
+</ins></dd><dt id="widl-JsonLdOptions-loadContext"><code><ins class="diff-new">
+loadContext
+</ins></code><ins class="diff-new">
+of
+type
+</ins><span class="idlMemberType"><a href="#idl-def-LoadContextCallback" class="idlType"><code><ins class="diff-new">
+LoadContextCallback
+</ins></code></a></span></dt><dd><ins class="diff-new">
+The
+callback
+of
+the
+context
+loader
+to
+be
+used
+to
+retrieve
+remote
+contexts.
+If
+specified,
+</ins>
+it
+<del class="diff-old">must
+</del>
+<em class="rfc2119" title="MUST">
+<ins class="diff-chg">MUST
+</ins>
+</em>
+be
+<del class="diff-old">specified
+external
+</del>
+<ins class="diff-chg">used
+</ins>
+to
+<ins class="diff-new">retrieve
+remote
+contexts;
+otherwise,
+if
+not
+specified,
+the
+processor's
+built-in
+context
+loader
+</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+used.
+</ins></dd><dt id="widl-JsonLdOptions-processingMode"><code><ins class="diff-new">
+processingMode
+</ins></code><ins class="diff-new">
+of
+type
+</ins><span class="idlMemberType"><a><ins class="diff-new">
+DOMString
+</ins></a></span>,<ins class="diff-new">
+defaulting
+to
+</ins><code><ins class="diff-new">
+&quot;json-ld-1.0&quot;
+</ins></code></dt><dd><ins class="diff-new">
+If
+set
+to
+</ins><code><ins class="diff-new">
+json-ld-1.0
+</ins></code>,
+the
+JSON-LD
+<del class="diff-old">Syntax
+</del>
+<ins class="diff-chg">processor
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+produce
+exactly
+the
+same
+results
+as
+the
+algorithms
+defined
+in
+this
+specification.
+If
+set
+to
+another
+value,
+the
+JSON-LD
+processor
+is
+allowed
+to
+extend
+or
+modify
+the
+algorithms
+defined
+in
+this
+</ins>
+specification
+<del class="diff-old">at
+</del>
+<ins class="diff-chg">to
+enable
+application-specific
+optimizations.
+The
+definition
+of
+such
+optimizations
+is
+beyond
+the
+scope
+of
+this
+specification
+and
+thus
+not
+defined.
+Consequently,
+different
+implementations
+</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
+MAY
+</ins></em><ins class="diff-chg">
+implement
+different
+optimizations.
+Developers
+</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em><ins class="diff-chg">
+define
+modes
+beginning
+with
+</ins><code><ins class="diff-chg">
+json-ld
+</ins></code><ins class="diff-chg">
+as
+they
+are
+reserved
+for
+future
+versions
+of
+this
+specification.
+</ins></dd></dl></section></section><section><h4 id="jsonlderror"><ins class="diff-chg">
+JsonLdError
+</ins></h4><p><ins class="diff-chg">
+The
+</ins><a href="#idl-def-JsonLdError" class="idlType"><code><ins class="diff-chg">
+JsonLdError
+</ins></code></a><ins class="diff-chg">
+type
+is
+used
+to
+report
+processing
+errors
+to
+</ins>
+a
+<del class="diff-old">well-known
+location.
+</del>
+<a href="#idl-def-JsonLdCallback" class="idlType">
+<code>
+<ins class="diff-chg">JsonLdCallback
+</ins></code></a>.
+</p>
+      <pre class="idl"><span class="idlDictionary" id="idl-def-JsonLdError">dictionary <span class="idlDictionaryID">JsonLdError</span> {
+<span class="idlMember">    <span class="idlMemberType"><a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a></span> <span class="idlMemberName"><a href="#widl-JsonLdError-code">code</a></span>;</span>
+<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a>?</span>      <span class="idlMemberName"><a href="#widl-JsonLdError-message">message</a></span>;</span>
+<ins class="diff-new">};
+</ins></span>
+</pre>
+<section>
+<h5 id="dictionary-jsonlderror-members">
+<ins class="diff-chg">Dictionary
+</ins><a class="idlType" href="#idl-def-JsonLdError"><code><ins class="diff-chg">
+JsonLdError
+</ins></code></a><ins class="diff-chg">
+Members
+</ins></h5><dl class="dictionary-members"><dt id="widl-JsonLdError-code"><code><ins class="diff-chg">
+code
+</ins></code><ins class="diff-chg">
+of
+type
+</ins><span class="idlMemberType"><a href="#idl-def-JsonLdErrorCode" class="idlType"><code><ins class="diff-chg">
+JsonLdErrorCode
+</ins></code></a></span></dt><dd><ins class="diff-chg">
+a
+string
+representing
+the
+particular
+error
+type,
+as
+described
+in
+the
+various
+algorithms
+in
+this
+document.
+</ins></dd><dt id="widl-JsonLdError-message"><code><ins class="diff-chg">
+message
+</ins></code><ins class="diff-chg">
+of
+type
+</ins><span class="idlMemberType"><a><ins class="diff-chg">
+DOMString
+</ins></a></span>,<ins class="diff-chg">
+nullable
+</ins></dt><dd><ins class="diff-chg">
+an
+optional
+error
+message
+containing
+additional
+debugging
+information.
+The
+specific
+contents
+of
+error
+messages
+are
+outside
+the
+scope
+of
+this
+specification.
+</ins></dd></dl></section></section><section><h4 id="jsonlderrorcode"><ins class="diff-chg">
+JsonLdErrorCode
+</ins></h4><p><ins class="diff-chg">
+The
+</ins><a href="#idl-def-JsonLdErrorCode" class="idlType"><code><ins class="diff-chg">
+JsonLdErrorCode
+</ins></code></a><ins class="diff-chg">
+represents
+the
+collection
+of
+valid
+JSON-LD
+error
+codes.
+</ins></p>      <pre class="idl"><span class="idlEnum" id="idl-def-JsonLdErrorCode">enum <span class="idlEnumID">JsonLdErrorCode</span> {<ins class="diff-chg">
+    &quot;<a href="#idl-def-JsonLdErrorCode.loading-document-failed" class="idlEnumItem">loading document failed</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.list-of-lists" class="idlEnumItem">list of lists</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--index-value" class="idlEnumItem">invalid @index value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.conflicting-indexes" class="idlEnumItem">conflicting indexes</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--id-value" class="idlEnumItem">invalid @id value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-local-context" class="idlEnumItem">invalid local context</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.loading-remote-context-failed" class="idlEnumItem">loading remote context failed</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-remote-context" class="idlEnumItem">invalid remote context</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.recursive-context-inclusion" class="idlEnumItem">recursive context inclusion</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-base-IRI" class="idlEnumItem">invalid base IRI</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-vocab-mapping" class="idlEnumItem">invalid vocab mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-default-language" class="idlEnumItem">invalid default language</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.keyword-redefinition" class="idlEnumItem">keyword redefinition</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-term-definition" class="idlEnumItem">invalid term definition</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property" class="idlEnumItem">invalid reverse property</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping" class="idlEnumItem">invalid IRI mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.cyclic-IRI-mapping" class="idlEnumItem">cyclic IRI mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-keyword-alias" class="idlEnumItem">invalid keyword alias</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-type-mapping" class="idlEnumItem">invalid type mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-mapping" class="idlEnumItem">invalid language mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.colliding-keywords" class="idlEnumItem">colliding keywords</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-container-mapping" class="idlEnumItem">invalid container mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-type-value" class="idlEnumItem">invalid type value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-value-object" class="idlEnumItem">invalid value object</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-value-object-value" class="idlEnumItem">invalid value object value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-string" class="idlEnumItem">invalid language-tagged string</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-value" class="idlEnumItem">invalid language-tagged value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-typed-value" class="idlEnumItem">invalid typed value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-set-or-list-object" class="idlEnumItem">invalid set or list object</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-map-value" class="idlEnumItem">invalid language map value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.compaction-to-list-of-lists" class="idlEnumItem">compaction to list of lists</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-map" class="idlEnumItem">invalid reverse property map</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--reverse-value" class="idlEnumItem">invalid @reverse value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-value" class="idlEnumItem">invalid reverse property value</a>&quot;
+};
+</ins></span></pre><table class="simple"><tr><th colspan="2"><ins class="diff-chg">
+Enumeration
+description
+</ins></th></tr><tr><td><code id="idl-def-JsonLdErrorCode.loading-document-failed"><ins class="diff-chg">
+loading
+document
+failed
+</ins></code></td><td><ins class="diff-chg">
+The
+document
+could
+not
+be
+loaded
+or
+parsed
+as
+JSON.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.list-of-lists"><ins class="diff-chg">
+list
+of
+lists
+</ins></code></td><td><ins class="diff-chg">
+A
+list
+of
+lists
+was
+detected.
+List
+of
+lists
+are
+not
+supported
+in
+this
+version
+of
+JSON-LD
+due
+to
+the
+algorithmic
+complexity
+associated
+with
+conversion
+to
+RDF.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--index-value"><ins class="diff-chg">
+invalid
+@index
+value
+</ins></code></td><td><ins class="diff-chg">
+An
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+member
+was
+encountered
+whose
+value
+was
+not
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.conflicting-indexes"><ins class="diff-chg">
+conflicting
+indexes
+</ins></code></td><td><ins class="diff-chg">
+Multiple
+conflicting
+indexes
+have
+been
+found
+for
+the
+same
+node.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--id-value"><ins class="diff-chg">
+invalid
+@id
+value
+</ins></code></td><td><ins class="diff-chg">
+An
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+member
+was
+encountered
+whose
+value
+was
+not
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-local-context"><ins class="diff-chg">
+invalid
+local
+context
+</ins></code></td><td><ins class="diff-chg">
+In
+invalid
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+was
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.loading-remote-context-failed"><ins class="diff-chg">
+loading
+remote
+context
+failed
+</ins></code></td><td><ins class="diff-chg">
+There
+was
+a
+problem
+encountered
+loading
+a
+remote
+context.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-remote-context"><ins class="diff-chg">
+invalid
+remote
+context
+</ins></code></td><td><ins class="diff-chg">
+No
+valid
+context
+document
+has
+been
+found
+for
+a
+referenced,
+remote
+context.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.recursive-context-inclusion"><ins class="diff-chg">
+recursive
+context
+inclusion
+</ins></code></td><td><ins class="diff-chg">
+A
+cycle
+in
+remote
+context
+inclusions
+has
+been
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-base-IRI"><ins class="diff-chg">
+invalid
+base
+IRI
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+</ins><a class="tref internalDFN" title="base-iri" href="#dfn-base-iri"><ins class="diff-chg">
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+has
+been
+detected,
+i.e.,
+it
+is
+neither
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+nor
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-vocab-mapping"><ins class="diff-chg">
+invalid
+vocab
+mapping
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+</ins><a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping"><ins class="diff-chg">
+vocabulary
+mapping
+</ins></a><ins class="diff-chg">
+has
+been
+detected,
+i.e.,
+it
+is
+neither
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+nor
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-default-language"><ins class="diff-chg">
+invalid
+default
+language
+</ins></code></td><td><ins class="diff-chg">
+The
+value
+of
+the
+</ins><a class="tref internalDFN" title="default-language" href="#dfn-default-language"><ins class="diff-chg">
+default
+language
+</ins></a><ins class="diff-chg">
+is
+not
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+and
+thus
+invalid.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.keyword-redefinition"><ins class="diff-chg">
+keyword
+redefinition
+</ins></code></td><td><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+redefinition
+has
+been
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-term-definition"><ins class="diff-chg">
+invalid
+term
+definition
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+has
+been
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property"><ins class="diff-chg">
+invalid
+reverse
+property
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+reverse
+property
+definition
+has
+been
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-IRI-mapping"><ins class="diff-chg">
+invalid
+IRI
+mapping
+</ins></code></td><td><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+contains
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+that
+has
+an
+invalid
+or
+missing
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mapping
+</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.cyclic-IRI-mapping"><ins class="diff-chg">
+cyclic
+IRI
+mapping
+</ins></code></td><td><ins class="diff-chg">
+A
+cycle
+in
+</ins><a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+mappings
+</ins></a><ins class="diff-chg">
+has
+been
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-keyword-alias"><ins class="diff-chg">
+invalid
+keyword
+alias
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+alias
+definition
+has
+been
+encountered.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-type-mapping"><ins class="diff-chg">
+invalid
+type
+mapping
+</ins></code></td><td><ins class="diff-chg">
+An
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+member
+in
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+was
+encountered
+whose
+value
+could
+not
+be
+expanded
+to
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-mapping"><ins class="diff-chg">
+invalid
+language
+mapping
+</ins></code></td><td><ins class="diff-chg">
+An
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+member
+in
+a
+</ins><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition"><ins class="diff-chg">
+term
+definition
+</ins></a><ins class="diff-chg">
+was
+encountered
+whose
+value
+was
+neither
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+nor
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+and
+thus
+invalid.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.colliding-keywords"><ins class="diff-chg">
+colliding
+keywords
+</ins></code></td><td><ins class="diff-chg">
+Two
+properties
+which
+expand
+to
+the
+same
+keyword
+have
+been
+detected.
+This
+might
+occur
+if
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+and
+an
+an
+alias
+thereof
+are
+used
+at
+the
+same
+time.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-container-mapping"><ins class="diff-chg">
+invalid
+container
+mapping
+</ins></code></td><td><ins class="diff-chg">
+An
+</ins><code><ins class="diff-chg">
+@container
+</ins></code><ins class="diff-chg">
+member
+was
+encountered
+whose
+value
+was
+not
+one
+of
+the
+following
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+strings
+</ins></a>:<code><ins class="diff-chg">
+@list
+</ins></code>,<code><ins class="diff-chg">
+@set
+</ins></code>,<ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@index
+</ins></code>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-type-value"><ins class="diff-chg">
+invalid
+type
+value
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+value
+for
+an
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+member
+has
+been
+detected,
+i.e.,
+the
+value
+was
+neither
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+nor
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+of
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+strings
+</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-value-object"><ins class="diff-chg">
+invalid
+value
+object
+</ins></code></td><td><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins></a><ins class="diff-chg">
+with
+disallowed
+members
+has
+been
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-value-object-value"><ins class="diff-chg">
+invalid
+value
+object
+value
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+value
+for
+the
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+member
+of
+a
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins></a><ins class="diff-chg">
+has
+been
+detected,
+i.e.,
+it
+is
+neither
+a
+</ins><a class="tref internalDFN" title="scalar" href="#dfn-scalar"><ins class="diff-chg">
+scalar
+</ins></a><ins class="diff-chg">
+nor
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-tagged-string"><ins class="diff-chg">
+invalid
+language-tagged
+string
+</ins></code></td><td><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="language-tagged-string" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string"><ins class="diff-chg">
+language-tagged
+string
+</ins></a><ins class="diff-chg">
+with
+an
+invalid
+language
+value
+was
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-tagged-value"><ins class="diff-chg">
+invalid
+language-tagged
+value
+</ins></code></td><td><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+number
+</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a><ins class="diff-chg">
+with
+an
+associated
+language
+tag
+was
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-typed-value"><ins class="diff-chg">
+invalid
+typed
+value
+</ins></code></td><td><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
+typed
+value
+</ins></a><ins class="diff-chg">
+with
+an
+invalid
+type
+was
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-set-or-list-object"><ins class="diff-chg">
+invalid
+set
+or
+list
+object
+</ins></code></td><td><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-chg">
+set
+object
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins></a><ins class="diff-chg">
+with
+disallowed
+members
+has
+been
+detected.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-map-value"><ins class="diff-chg">
+invalid
+language
+map
+value
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+value
+in
+a
+</ins><a class="tref externalDFN" title="language-map" href="../json-ld/#dfn-language-map"><ins class="diff-chg">
+language
+map
+</ins></a><ins class="diff-chg">
+has
+been
+detected.
+It
+has
+to
+be
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+or
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+of
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+strings
+</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.compaction-to-list-of-lists"><ins class="diff-chg">
+compaction
+to
+list
+of
+lists
+</ins></code></td><td><ins class="diff-chg">
+The
+compacted
+document
+contains
+a
+list
+of
+lists
+as
+multiple
+lists
+have
+been
+compacted
+to
+the
+same
+term.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property-map"><ins class="diff-chg">
+invalid
+reverse
+property
+map
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+reverse
+property
+map
+has
+been
+detected.
+No
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a><ins class="diff-chg">
+apart
+from
+</ins><code><ins class="diff-chg">
+@context
+</ins></code><ins class="diff-chg">
+are
+allowed
+in
+reverse
+property
+maps.
+</ins></td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--reverse-value"><ins class="diff-chg">
+invalid
+@reverse
+value
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+value
+for
+an
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+member
+has
+been
+detected,
+i.e.,
+the
+value
+was
+not
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property-value"><ins class="diff-chg">
+invalid
+reverse
+property
+value
+</ins></code></td><td><ins class="diff-chg">
+An
+invalid
+value
+for
+a
+reverse
+property
+has
+been
+detected.
+The
+value
+of
+an
+inverse
+property
+must
+be
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a>.</td></tr></table></section></section></section><section class="appendix informative" id="acknowledgements">
+<h2>
+<span class="secno">
+<del class="diff-old">B.
+</del>
+<ins class="diff-chg">A.
+</ins>
+</span>
+Acknowledgements
+</h2>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-new">
+A
+large
+amount
+of
+thanks
+goes
+out
+to
+the
+JSON-LD
+Community
+Group
+participants
+who
+worked
+through
+many
+of
+the
+technical
+issues
+on
+the
+mailing
+list
+and
+the
+weekly
+telecons
+-
+of
+special
+mention
+are
+Niklas
+Lindström,
+François
+Daoust,
+Lin
+Clark,
+and
+Zdenko
+'Denny'
+Vrandečić.
+</ins>
+The
+editors
+would
+like
+to
+thank
+Mark
+Birbeck,
+who
+provided
+a
+great
+deal
+of
+the
+initial
+push
+behind
+the
+JSON-LD
+work
+via
+his
+work
+on
+<del class="diff-old">RDFj,
+</del>
+<ins class="diff-chg">RDFj.
+The
+work
+of
+</ins>
+Dave
+Lehn
+and
+Mike
+Johnson
+<del class="diff-old">who
+reviewed,
+provided
+feedback,
+</del>
+<ins class="diff-chg">are
+appreciated
+for
+reviewing,
+</ins>
+and
+<del class="diff-old">performed
+</del>
+<ins class="diff-chg">performing
+</ins>
+several
+implementations
+of
+the
+<del class="diff-old">specification,
+and
+</del>
+<ins class="diff-chg">specification.
+</ins>
+Ian
+<del class="diff-old">Davis,
+who
+created
+</del>
+<ins class="diff-chg">Davis
+is
+thanked
+for
+his
+work
+on
+</ins>
+RDF/JSON.
+Thanks
+also
+to
+Nathan
+Rixham,
+Bradley
+P.
+Allen,
+Kingsley
+Idehen,
+Glenn
+McDonald,
+Alexandre
+Passant,
+Danny
+Ayers,
+Ted
+Thibodeau
+Jr.,
+Olivier
+Grisel,
+Josh
+Mandel,
+Eric
+Prud'hommeaux,
+David
+Wood,
+Guus
+Schreiber,
+Pat
+Hayes,
+Sandro
+Hawke,
+and
+Richard
+Cyganiak
+for
+their
+input
+on
+the
+specification.
+</p>
+</section>
+<section id="references" class="appendix" typeof="bibo:Chapter" resource="#references" rel="bibo:chapter">
+<h2>
+<span class="secno">
+<del class="diff-old">C.
+</del>
+<ins class="diff-chg">B.
+</ins>
+</span>
+References
+</h2>
+<section id="normative-references" typeof="bibo:Chapter" resource="#normative-references" rel="bibo:chapter">
+<h3>
+<span class="secno">
+<del class="diff-old">C.1
+</del>
+<ins class="diff-chg">B.1
+</ins>
+</span>
+Normative
+references
+</h3>
+<del class="diff-old">[BCP47]
+A.
+Phillips;
+M.
+Davis.
+Tags
+for
+Identifying
+Languages
+September
+2009.
+IETF
+Best
+Current
+Practice.
+URL:
+http://tools.ietf.org/html/bcp47
+</del>
+<dl class="bibliography" about="">
+<dt id="bib-IEEE-754-1985">
+[IEEE-754-1985]
+</dt>
+<dd rel="dcterms:requires">
+IEEE.
+<cite>
+IEEE
+Standard
+for
+Binary
+Floating-Point
+Arithmetic.
+</cite>
+<del class="diff-old">See
+</del>
+<ins class="diff-chg">URL:
+</ins>
+<a href="http://standards.ieee.org/reading/ieee/std_public/description/busarch/754-1985_desc.html">
+http://standards.ieee.org/reading/ieee/std_public/description/busarch/754-1985_desc.html
+</a>
+</dd>
+<dt id="bib-JSON-LD">
+[JSON-LD]
+</dt>
+<del class="diff-old">The
+JSON-LD
+Syntax
+</del>
+<dd rel="dcterms:requires">
+Manu
+Sporny,
+Gregg
+Kellogg,
+Markus
+<del class="diff-old">Lanthaler
+</del>
+<ins class="diff-chg">Lanthaler,
+</ins>
+Editors.
+<del class="diff-old">World
+Wide
+Web
+Consortium
+</del>
+<cite>
+<a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">
+<ins class="diff-chg">JSON-LD
+1.0
+</ins></a>.</cite><ins class="diff-chg">
+W3C
+Working
+Draft
+</ins>
+(work
+in
+progress).
+<del class="diff-old">22
+May
+2012.
+Editor's
+Draft.
+This
+edition
+of
+the
+JSON-LD
+Syntax
+specification
+is
+http://json-ld.org/spec/ED/json-ld-syntax/20120522/.
+</del>
+<ins class="diff-chg">URL:
+</ins><a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/"><ins class="diff-chg">
+http://www.w3.org/TR/2013/WD-json-ld-20130411/
+</ins></a>.
+The
+latest
+edition
+<del class="diff-old">of
+the
+JSON-LD
+Syntax
+</del>
+is
+available
+at
+<del class="diff-old">http://json-ld.org/spec/latest/json-ld-syntax/
+[JSON-POINTER]
+JSON
+Pointer
+P.
+Bryan,
+Ed.
+IETF
+Draft.
+URL:
+http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-02
+</del>
+<a href="http://www.w3.org/TR/json-ld/">
+<ins class="diff-chg">http://www.w3.org/TR/json-ld/
+</ins>
+</a>
+</dd>
+<del class="diff-old">[RDF-CONCEPTS]
+</del>
+<dt id="bib-RDF-MT">
+<ins class="diff-chg">[RDF-MT]
+</ins>
+</dt>
+<dd rel="dcterms:requires">
+<ins class="diff-chg">Patrick
+Hayes.
+</ins><a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210">
+<cite>
+RDF
+<del class="diff-old">1.1
+Concepts
+and
+Abstract
+Syntax
+</del>
+<ins class="diff-chg">Semantics
+</ins>
+</cite>
+<del class="diff-old">Richard
+Cyganiak,
+David
+Wood,
+Editors.
+World
+Wide
+Web
+Consortium
+(work
+in
+progress).
+30
+May
+2012.
+Editor's
+Draft.
+This
+edition
+of
+the
+JSON-LD
+Syntax
+specification
+is
+http://www.w3.org/TR/2011/WD-rdf11-concepts-20110830/.
+The
+latest
+edition
+of
+the
+JSON-LD
+Syntax
+</del>
+</a>.
+<ins class="diff-chg">10
+February
+2004.
+W3C
+Recommendation.
+URL:
+</ins><a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210"><ins class="diff-chg">
+http://www.w3.org/TR/2004/REC-rdf-mt-20040210
+</ins>
+</a>
+<del class="diff-old">is
+available
+at
+http://www.w3.org/TR/rdf11-concepts/
+</del>
+</dd>
+<del class="diff-old">[RDF-SCHEMA]
+</del>
+<dt id="bib-RFC2119">
+<ins class="diff-chg">[RFC2119]
+</ins>
+</dt>
+<del class="diff-old">Dan
+Brickley;
+Ramanathan
+V.
+Guha.
+</del>
+<dd rel="dcterms:requires">
+<ins class="diff-chg">S.
+Bradner.
+</ins><a href="http://www.ietf.org/rfc/rfc2119.txt">
+<cite>
+<del class="diff-old">RDF
+Vocabulary
+Description
+Language
+1.0:
+RDF
+Schema.
+</del>
+<ins class="diff-chg">Key
+words
+for
+use
+in
+RFCs
+to
+Indicate
+Requirement
+Levels.
+</ins>
+</cite>
+</a>
+<del class="diff-old">10
+February
+2004.
+W3C
+Recommendation.
+</del>
+<ins class="diff-chg">March
+1997.
+Internet
+RFC
+2119.
+</ins>
+URL:
+<del class="diff-old">http://www.w3.org/TR/2004/REC-rdf-schema-20040210
+</del>
+<a href="http://www.ietf.org/rfc/rfc2119.txt">
+<ins class="diff-chg">http://www.ietf.org/rfc/rfc2119.txt
+</ins>
+</a>
+</dd>
+<dt id="bib-RFC3986">
+[RFC3986]
+</dt>
+<dd rel="dcterms:requires">
+T.
+Berners-Lee;
+R.
+Fielding;
+L.
+Masinter.
+<a href="http://www.ietf.org/rfc/rfc3986.txt">
+<cite>
+Uniform
+Resource
+Identifier
+(URI):
+Generic
+<del class="diff-old">Syntax.
+</del>
+<ins class="diff-chg">Syntax
+(RFC
+3986)
+</ins>
+</cite>
+</a>.
+January
+2005.
+<del class="diff-old">Internet
+RFC
+3986.
+</del>
+<ins class="diff-chg">RFC.
+</ins>
+URL:
+<a href="http://www.ietf.org/rfc/rfc3986.txt">
+http://www.ietf.org/rfc/rfc3986.txt
+</a>
+</dd>
+<dt id="bib-RFC3987">
+[RFC3987]
+</dt>
+<dd rel="dcterms:requires">
+M.
+Dürst;
+M.
+Suignard.
+<a href="http://www.ietf.org/rfc/rfc3987.txt">
+<cite>
+Internationalized
+Resource
+Identifiers
+<del class="diff-old">(IRIs).
+</del>
+<ins class="diff-chg">(IRIs)
+(RFC
+3987)
+</ins>
+</cite>
+</a>.
+January
+2005.
+<del class="diff-old">Internet
+RFC
+3987.
+</del>
+<ins class="diff-chg">RFC.
+</ins>
+URL:
+<a href="http://www.ietf.org/rfc/rfc3987.txt">
+http://www.ietf.org/rfc/rfc3987.txt
+</a>
+</dd>
+<dt id="bib-RFC4627">
+[RFC4627]
+</dt>
+<dd rel="dcterms:requires">
+D.
+Crockford.
+<a href="http://www.ietf.org/rfc/rfc4627.txt">
+<cite>
+The
+application/json
+Media
+Type
+for
+JavaScript
+Object
+Notation
+(JSON)
+<ins class="diff-new">(RFC
+4627)
+</ins>
+</cite>
+</a>.
+July
+2006.
+<del class="diff-old">Internet
+RFC
+4627.
+</del>
+<ins class="diff-chg">RFC.
+</ins>
+URL:
+<a href="http://www.ietf.org/rfc/rfc4627.txt">
+http://www.ietf.org/rfc/rfc4627.txt
+</a>
+</dd>
+<del class="diff-old">[WEBIDL]
+</del>
+<dt id="bib-RFC5988">
+<ins class="diff-chg">[RFC5988]
+</ins>
+</dt>
+<dd rel="dcterms:requires">
+<ins class="diff-chg">M.
+Nottingham.
+</ins>
+<cite>
+<a href="http://www.ietf.org/rfc/rfc5988.txt">
+Web
+<del class="diff-old">IDL
+</del>
+<ins class="diff-chg">Linking
+</ins></a>.</cite><ins class="diff-chg">
+October
+2010.
+Internet
+RFC
+5988.
+URL:
+</ins><a href="http://www.ietf.org/rfc/rfc5988.txt"><ins class="diff-chg">
+http://www.ietf.org/rfc/rfc5988.txt
+</ins>
+</a>
+</dd>
+<dt id="bib-WEBIDL">
+<ins class="diff-chg">[WEBIDL]
+</ins></dt><dd rel="dcterms:requires">
+Cameron
+McCormack,
+Editor.
+<del class="diff-old">World
+Wide
+</del>
+<cite>
+<a href="http://www.w3.org/TR/2012/CR-WebIDL-20120419/">
+Web
+<del class="diff-old">Consortium.
+</del>
+<ins class="diff-chg">IDL.
+</ins></a></cite>
+19
+April
+2012.
+<ins class="diff-new">W3C
+</ins>
+Candidate
+<del class="diff-old">Recommendataion.
+This
+edition
+of
+Web
+IDL
+is
+http://www.w3.org/TR/2012/CR-WebIDL-20120419/.
+</del>
+<ins class="diff-chg">Recommendation
+(work
+in
+progress).
+URL:
+</ins><a href="http://www.w3.org/TR/2012/CR-WebIDL-20120419/"><ins class="diff-chg">
+http://www.w3.org/TR/2012/CR-WebIDL-20120419/
+</ins></a>.
+The
+latest
+edition
+<del class="diff-old">of
+Web
+IDL
+</del>
+is
+available
+at
+<del class="diff-old">http://dev.w3.org/2006/webapi/WebIDL/
+</del>
+<a href="http://www.w3.org/TR/WebIDL/">
+<ins class="diff-chg">http://www.w3.org/TR/WebIDL/
+</ins></a>
+</dd>
+<dt id="bib-XMLSCHEMA11-2">
+[XMLSCHEMA11-2]
+</dt>
+<dd rel="dcterms:requires">
+Henry
+S.
+<del class="diff-old">Thompson;
+</del>
+<ins class="diff-chg">Thompson
+</ins>
+et
+al.
+<a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/">
+<cite>
+W3C
+XML
+Schema
+Definition
+Language
+(XSD)
+1.1
+Part
+2:
+<del class="diff-old">Datatypes.
+</del>
+<ins class="diff-chg">Datatypes
+</ins>
+</cite>
+</a>.
+5
+April
+2012.
+W3C
+<del class="diff-old">Recommendation
+</del>
+<ins class="diff-chg">Recommendation.
+</ins>
+URL:
+<a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/">
+http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/
+</a>
+</dd>
+</dl>
+</section>
+<section id="informative-references" typeof="bibo:Chapter" resource="#informative-references" rel="bibo:chapter">
+<h3>
+<span class="secno">
+<del class="diff-old">C.2
+</del>
+<ins class="diff-chg">B.2
+</ins>
+</span>
+Informative
+references
+</h3>
+<dl class="bibliography" about="">
+<dt id="bib-BCP47">
+<ins class="diff-chg">[BCP47]
+</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
+A.
+Phillips;
+M.
+Davis.
+</ins><a href="http://tools.ietf.org/html/bcp47"><cite><ins class="diff-chg">
+Tags
+for
+Identifying
+Languages
+</ins></cite></a>.<ins class="diff-chg">
+September
+2009.
+IETF
+Best
+Current
+Practice.
+URL:
+</ins><a href="http://tools.ietf.org/html/bcp47"><ins class="diff-chg">
+http://tools.ietf.org/html/bcp47
+</ins></a></dd>
+<dt id="bib-ECMA-262">
+[ECMA-262]
+</dt>
+<dd rel="dcterms:references">
+<a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">
+<cite>
+ECMAScript
+Language
+<del class="diff-old">Specification.
+</del>
+<ins class="diff-chg">Specification,
+Edition
+5.1
+</ins>
+</cite>
+<del class="diff-old">December
+1999.
+</del>
+</a>.
+<ins class="diff-chg">June
+2011.
+</ins>
+URL:
+<a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">
+http://www.ecma-international.org/publications/standards/Ecma-262.htm
+</a>
+</dd>
+<del class="diff-old">[TURTLE-TR]
+</del>
+<dt id="bib-JSON-LD-TESTS">
+<ins class="diff-chg">[JSON-LD-TESTS]
+</ins>
+</dt>
+<del class="diff-old">Eric
+Prud'hommeaux,
+Gavin
+Carothers.
+</del>
+<dd rel="dcterms:references">
+<cite>
+<del class="diff-old">Turtle:
+Terse
+</del>
+<a href="http://www.w3.org/2013/json-ld-tests/">
+<ins class="diff-chg">JSON-LD
+1.0
+Test
+Suite
+</ins></a></cite>.<ins class="diff-chg">
+W3C
+Test
+Suite
+(work
+in
+progress).
+URL:
+</ins><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-chg">
+http://www.w3.org/2013/json-ld-tests/
+</ins></a></dd><dt id="bib-RDF11-CONCEPTS"><ins class="diff-chg">
+[RDF11-CONCEPTS]
+</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
+Richard
+Cyganiak,
+David
+Wood,
+Editors.
+</ins><cite><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">
+RDF
+<del class="diff-old">Triple
+Language.
+</del>
+<ins class="diff-chg">1.1
+Concepts
+and
+Abstract
+Syntax.
+</ins>
+</a>
+</cite>
+<del class="diff-old">09
+August
+2011.
+</del>
+<ins class="diff-chg">15
+January
+2013.
+</ins>
+W3C
+Working
+<del class="diff-old">Draft.
+</del>
+<ins class="diff-chg">Draft
+(work
+in
+progress).
+</ins>
+URL:
+<del class="diff-old">http://www.w3.org/TR/2011/WD-turtle-20110809/
+</del>
+<a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">
+<ins class="diff-chg">http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/
+</ins></a>.<ins class="diff-chg">
+The
+latest
+edition
+is
+available
+at
+</ins><a href="http://www.w3.org/TR/rdf11-concepts/"><ins class="diff-chg">
+http://www.w3.org/TR/rdf11-concepts/
+</ins>
+</a>
+</dd>
+<del class="diff-old">[UNICODE]
+</del>
+<dt id="bib-TURTLE">
+<ins class="diff-chg">[TURTLE]
+</ins>
+</dt>
+<del class="diff-old">The
+Unicode
+Consortium.
+</del>
+<dd rel="dcterms:references">
+<ins class="diff-chg">Eric
+Prud'hommeaux,
+Gavin
+Carothers,
+Editors.
+</ins>
+<cite>
+<del class="diff-old">The
+Unicode
+Standard.
+</del>
+<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
+<ins class="diff-new">Turtle:
+Terse
+RDF
+Triple
+Language.
+</ins>
+</a>
+<del class="diff-old">2003.
+Defined
+by:
+The
+Unicode
+Standard,
+Version
+4.0
+(Boston,
+MA,
+Addison-Wesley,
+ISBN
+0-321-18578-1),
+as
+updated
+from
+time
+to
+time
+by
+the
+publication
+of
+new
+versions
+</del>
+</cite>
+<ins class="diff-chg">19
+February
+2013.
+W3C
+Candidate
+Recommendation
+(work
+in
+progress).
+</ins>
+URL:
+<del class="diff-old">http://www.unicode.org/unicode/standard/versions/enumeratedversions.html
+</del>
+<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
+<ins class="diff-chg">http://www.w3.org/TR/2013/CR-turtle-20130219/
+</ins></a>.<ins class="diff-chg">
+The
+latest
+edition
+is
+available
+at
+</ins><a href="http://www.w3.org/TR/turtle/"><ins class="diff-chg">
+http://www.w3.org/TR/turtle/
+</ins>
+</a>
+</dd>
+</dl>
+</section>
+</section>
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spec/WD/json-ld-api/20130411/index.html	Tue Apr 09 11:49:05 2013 -0400
@@ -0,0 +1,4590 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
+<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" typeof="bibo:Document">
+<head>
+<title>JSON-LD 1.0 Processing Algorithms and API</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<style type="text/css">
+  .diff {
+    font-weight:bold; color:#0a3;
+  }
+  .error a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+  }
+  .atrisk-head {
+    font-style: italic;
+  }
+</style>
+<style type="text/css">
+/* --- INLINES --- */
+em.rfc2119 {
+    text-transform:     lowercase;
+    font-variant:       small-caps;
+    font-style:         normal;
+    color:              #900;
+}
+
+h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
+h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
+    border: none;
+}
+
+dfn {
+    font-weight:    bold;
+}
+
+a.internalDFN {
+    color:  inherit;
+    border-bottom:  1px solid #99c;
+    text-decoration:    none;
+}
+
+a.externalDFN {
+    color:  inherit;
+    border-bottom:  1px dotted #ccc;
+    text-decoration:    none;
+}
+
+a.bibref {
+    text-decoration:    none;
+}
+
+cite .bibref {
+    font-style: normal;
+}
+
+code {
+    color:  #ff4500;
+}
+
+
+/* --- --- */
+ol.algorithm { counter-reset:numsection; list-style-type: none; }
+ol.algorithm li { margin: 0.5em 0; }
+ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
+
+/* --- TOC --- */
+.toc a, .tof a {
+    text-decoration:    none;
+}
+
+a .secno, a .figno {
+    color:  #000;
+}
+
+ul.tof, ol.tof {
+    list-style: none outside none;
+}
+
+.caption {
+    margin-top: 0.5em;
+    font-style:   italic;
+}
+
+/* --- TABLE --- */
+table.simple {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    border-bottom:  3px solid #005a9c;
+}
+
+.simple th {
+    background: #005a9c;
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+}
+
+.simple th[scope="row"] {
+    background: inherit;
+    color:  inherit;
+    border-top: 1px solid #ddd;
+}
+
+.simple td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+    background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd > p:first-child {
+    margin-top: 0;
+}
+
+.section dd > p:last-child {
+    margin-bottom: 0;
+}
+
+.section dd {
+    margin-bottom:  1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+    margin-bottom:  0;
+}
+</style><style type="text/css">/* --- EXAMPLES --- */
+div.example-title {
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.example-title span {
+    text-transform: uppercase;
+}
+aside.example, div.example, div.illegal-example {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+div.illegal-example { color: red }
+div.illegal-example p { color: black }
+aside.example, div.example {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+    border-color: #e0cb52;
+    background: #fcfaee;
+}
+
+aside.example div.example {
+    border-left-width: .1em;
+    border-color: #999;
+    background: #fff;
+}
+aside.example div.example div.example-title {
+    color: #999;
+}
+</style><style type="text/css">/* --- ISSUES/NOTES --- */
+div.issue-title, div.note-title {
+    padding-right:  1em;
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.issue-title { color: #e05252; }
+div.note-title { color: #52e052; }
+div.issue-title span, div.note-title span {
+    text-transform: uppercase;
+}
+div.note, div.issue {
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+.note > p:first-child, .issue > p:first-child { margin-top: 0 }
+.issue, .note {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+}
+div.issue, div.note {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+span.note, span.issue { padding: .1em .5em .15em; }
+
+.issue {
+    border-color: #e05252;
+    background: #fbe9e9;
+}
+.note {
+    border-color: #52e052;
+    background: #e9fbe9;
+}
+
+
+</style><style type="text/css">/* --- WEB IDL --- */
+pre.idl {
+    border-top: 1px solid #90b8de;
+    border-bottom: 1px solid #90b8de;
+    padding:    1em;
+    line-height:    120%;
+}
+
+pre.idl::before {
+    content:    "WebIDL";
+    display:    block;
+    width:      150px;
+    background: #90b8de;
+    color:  #fff;
+    font-family:    initial;
+    padding:    3px;
+    font-weight:    bold;
+    margin: -1em 0 1em -1em;
+}
+
+.idlType {
+    color:  #ff4500;
+    font-weight:    bold;
+    text-decoration:    none;
+}
+
+/*.idlModule*/
+/*.idlModuleID*/
+/*.idlInterface*/
+.idlInterfaceID, .idlDictionaryID, .idlCallbackID, .idlEnumID {
+    font-weight:    bold;
+    color:  #005a9c;
+}
+a.idlEnumItem {
+    color:  #000;
+    border-bottom:  1px dotted #ccc;
+    text-decoration: none;
+}
+
+.idlSuperclass {
+    font-style: italic;
+    color:  #005a9c;
+}
+
+/*.idlAttribute*/
+.idlAttrType, .idlFieldType, .idlMemberType {
+    color:  #005a9c;
+}
+.idlAttrName, .idlFieldName, .idlMemberName {
+    color:  #ff4500;
+}
+.idlAttrName a, .idlFieldName a, .idlMemberName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlMethod*/
+.idlMethType, .idlCallbackType {
+    color:  #005a9c;
+}
+.idlMethName {
+    color:  #ff4500;
+}
+.idlMethName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlCtor*/
+.idlCtorName {
+    color:  #ff4500;
+}
+.idlCtorName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlParam*/
+.idlParamType {
+    color:  #005a9c;
+}
+.idlParamName, .idlDefaultValue {
+    font-style: italic;
+}
+
+.extAttr {
+    color:  #666;
+}
+
+/*.idlSectionComment*/
+.idlSectionComment {
+    color: gray;
+}
+
+/*.idlConst*/
+.idlConstType {
+    color:  #005a9c;
+}
+.idlConstName {
+    color:  #ff4500;
+}
+.idlConstName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlException*/
+.idlExceptionID {
+    font-weight:    bold;
+    color:  #c00;
+}
+
+.idlTypedefID, .idlTypedefType {
+    color:  #005a9c;
+}
+
+.idlRaises, .idlRaises a.idlType, .idlRaises a.idlType code, .excName a, .excName a code {
+    color:  #c00;
+    font-weight:    normal;
+}
+
+.excName a {
+    font-family:    monospace;
+}
+
+.idlRaises a.idlType, .excName a.idlType {
+    border-bottom:  1px dotted #c00;
+}
+
+.excGetSetTrue, .excGetSetFalse, .prmNullTrue, .prmNullFalse, .prmOptTrue, .prmOptFalse {
+    width:  45px;
+    text-align: center;
+}
+.excGetSetTrue, .prmNullTrue, .prmOptTrue { color:  #0c0; }
+.excGetSetFalse, .prmNullFalse, .prmOptFalse { color:  #c00; }
+
+.idlImplements a {
+    font-weight:    bold;
+}
+
+dl.attributes, dl.methods, dl.constants, dl.constructors, dl.fields, dl.dictionary-members {
+    margin-left:    2em;
+}
+
+.attributes dt, .methods dt, .constants dt, .constructors dt, .fields dt, .dictionary-members dt {
+    font-weight:    normal;
+}
+
+.attributes dt code, .methods dt code, .constants dt code, .constructors dt code, .fields dt code, .dictionary-members dt code {
+    font-weight:    bold;
+    color:  #000;
+    font-family:    monospace;
+}
+
+.attributes dt code, .fields dt code, .dictionary-members dt code {
+    background:  #ffffd2;
+}
+
+.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
+    color:  #005a9c;
+    background:  transparent;
+    font-family:    inherit;
+    font-weight:    normal;
+    font-style: italic;
+}
+
+.methods dt code {
+    background:  #d9e6f8;
+}
+
+.constants dt code {
+    background:  #ddffd2;
+}
+
+.constructors dt code {
+    background:  #cfc;
+}
+
+.attributes dd, .methods dd, .constants dd, .constructors dd, .fields dd, .dictionary-members dd {
+    margin-bottom:  1em;
+}
+
+table.parameters, table.exceptions {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    margin: 0.5em 0;
+    width:  100%;
+}
+table.parameters { border-bottom:  1px solid #90b8de; }
+table.exceptions { border-bottom:  1px solid #deb890; }
+
+.parameters th, .exceptions th {
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+    font-family:    initial;
+    font-weight:    normal;
+    text-shadow:    #666 1px 1px 0;
+}
+.parameters th { background: #90b8de; }
+.exceptions th { background: #deb890; }
+
+.parameters td, .exceptions td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+    vertical-align: top;
+}
+
+.parameters tr:first-child td, .exceptions tr:first-child td {
+    border-top: none;
+}
+
+.parameters td.prmName, .exceptions td.excName, .exceptions td.excCodeName {
+    width:  100px;
+}
+
+.parameters td.prmType {
+    width:  120px;
+}
+
+table.exceptions table {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    width:  100%;
+}
+</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
+</head>
+
+<body><div class="head">
+  <p>
+
+      <a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" /></a>
+
+  </p>
+  <h1 class="title" id="title">JSON-LD 1.0 Processing Algorithms and API</h1>
+
+  <h2 id="w3c-last-call-working-draft-11-april-2013"><abbr title="World Wide Web Consortium">W3C</abbr> Last Call Working Draft 11 April 2013</h2>
+  <dl>
+
+      <dt>This version:</dt>
+      <dd><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/">http://www.w3.org/TR/2013/WD-json-ld-api-20130411/</a></dd>
+      <dt>Latest published version:</dt>
+      <dd><a href="http://www.w3.org/TR/json-ld-api/">http://www.w3.org/TR/json-ld-api/</a></dd>
+
+
+      <dt>Latest editor's draft:</dt>
+      <dd><a href="http://json-ld.org/spec/latest/json-ld-api/index.html">http://json-ld.org/spec/latest/json-ld-api/index.html</a></dd>
+
+
+      <dt>Test suite:</dt>
+      <dd><a href="http://www.w3.org/2013/json-ld-tests/">http://www.w3.org/2013/json-ld-tests/</a></dd>
+
+
+
+
+      <dt>Previous version:</dt>
+      <dd><a href="http://www.w3.org/TR/2012/WD-json-ld-api-20120712/">http://www.w3.org/TR/2012/WD-json-ld-api-20120712/</a></dd>
+
+
+    <dt>Editors:</dt>
+    <dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>, <a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">Graz University of Technology</a></span>
+</dd>
+<dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">Gregg Kellogg</a>, <a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">Kellogg Associates</a></span>
+</dd>
+<dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://manu.sporny.org/">Manu Sporny</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
+</dd>
+
+
+      <dt>Authors:</dt>
+      <dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Dave Longley" href="http://digitalbazaar.com/">Dave Longley</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
+</dd>
+<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">Gregg Kellogg</a>, <a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">Kellogg Associates</a></span>
+</dd>
+<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>, <a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">Graz University of Technology</a></span>
+</dd>
+<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://digitalbazaar.com/">Manu Sporny</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
+</dd>
+
+
+  </dl>
+
+
+    <p>
+
+        This document is also available in this non-normative format:
+
+      <a rel="alternate" href="diff-20120712.html">diff to previous version</a>
+    </p>
+
+
+
+
+      <p class="copyright">
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©
+        2010-2013
+
+        <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup>
+        (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,
+        <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
+        <a href="http://www.keio.ac.jp/">Keio</a>, <a href="http://ev.buaa.edu.cn/">Beihang</a>), All Rights Reserved.
+        <abbr title="World Wide Web Consortium">W3C</abbr> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and
+        <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.
+      </p>
+
+
+  <hr />
+</div>
+<div id="abstract" class="introductory section" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:chapter"><h2>Abstract</h2>
+  <p>This specification defines an Application Programming Interface (API)
+    and a set of algorithms for programmatic transformations of JSON-LD
+    documents. Restructuring data according the defined transformations
+    often dramatically simplifies its usage.</p>
+</div><div id="sotd" class="introductory section" typeof="bibo:Chapter" resource="#sotd" rel="bibo:chapter"><h2>Status of This Document</h2>
+
+
+
+        <p>
+          <em>This section describes the status of this document at the time of its publication. Other
+          documents may supersede this document. A list of current <abbr title="World Wide Web Consortium">W3C</abbr> publications and the latest revision
+          of this technical report can be found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports
+          index</a> at http://www.w3.org/TR/.</em>
+        </p>
+
+  <p>This document has been under development for over 25 months in the
+    JSON for Linking Data Community Group. The document has recently been
+    transferred to the RDF Working Group for review, improvement, and publication
+    along the Recommendation track. The specification has undergone significant
+    development, review, and changes during the course of the last 25 months.
+    There are several independent
+    <a href="http://json-ld.org/#impl">interoperable implementations</a> of
+    this specification and a fairly complete test suite [<cite><a class="bibref" href="#bib-JSON-LD-TESTS">JSON-LD-TESTS</a></cite>].</p>
+
+        <p>
+          This document was published by the <a href="http://www.w3.org/2011/rdf-wg/">RDF Working Group</a> as a Last Call Working Draft.
+
+            This document is intended to become a <abbr title="World Wide Web Consortium">W3C</abbr> Recommendation.
+
+
+          If you wish to make comments regarding this document, please send them to
+          <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>
+          (<a href="mailto:public-rdf-comments-request@w3.org?subject=subscribe">subscribe</a>,
+          <a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">archives</a>).
+
+          The Last Call period ends 11 May 2013.
+
+
+        All comments are welcome.
+
+
+          </p>
+
+  <div style="padding: 1em; margin: 1em; border: 1px solid red;">
+    <p>The Working Group welcomes reports of implementations, sent to the
+      comments address. If we gather sufficient evidence of interoperable
+      implementations, the group may request to skip Call for Implementations
+      (Candidate Recommendation) drafts and have the next round of
+      publications be Proposed Recommendations.</p>
+  </div>
+
+          <p>
+            Publication as a Last Call Working Draft does not imply endorsement by the <abbr title="World Wide Web Consortium">W3C</abbr> Membership.
+            This is a draft document and may be updated, replaced or obsoleted by other documents at
+            any time. It is inappropriate to cite this document as other than work in progress.
+          </p>
+
+
+          <p>
+            This is a Last Call Working Draft and thus the Working Group has determined that this document has satisfied the
+            relevant technical requirements and is sufficiently stable to advance through the Technical Recommendation process.
+          </p>
+
+        <p>
+
+            This document was produced by a group operating under the
+            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+
+
+
+
+              <abbr title="World Wide Web Consortium">W3C</abbr> maintains a <a href="http://www.w3.org/2004/01/pp-impl/46168/status" rel="disclosure">public list of any patent disclosures</a>
+
+            made in connection with the deliverables of the group; that page also includes instructions for
+            disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains
+            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the
+            information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
+            6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+
+
+        </p>
+
+
+
+
+</div><div class="section" id="toc"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a href="#features" class="tocxref"><span class="secno">2. </span>Features</a><ul class="toc"><li class="tocline"><a href="#expansion" class="tocxref"><span class="secno">2.1 </span>Expansion</a></li><li class="tocline"><a href="#compaction" class="tocxref"><span class="secno">2.2 </span>Compaction</a></li><li class="tocline"><a href="#flattening" class="tocxref"><span class="secno">2.3 </span>Flattening</a></li><li class="tocline"><a href="#rdf-conversion" class="tocxref"><span class="secno">2.4 </span>RDF Conversion</a></li></ul></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">3. </span>Conformance</a></li><li class="tocline"><a href="#general-terminology" class="tocxref"><span class="secno">4. </span>General Terminology</a></li><li class="tocline"><a href="#algorithm-terms" class="tocxref"><span class="secno">5. </span>Algorithm Terms</a></li><li class="tocline"><a href="#context-processing-algorithms" class="tocxref"><span class="secno">6. </span>Context Processing Algorithms</a><ul class="toc"><li class="tocline"><a href="#context-processing-algorithm" class="tocxref"><span class="secno">6.1 </span>Context Processing Algorithm</a></li><li class="tocline"><a href="#create-term-definition" class="tocxref"><span class="secno">6.2 </span>Create Term Definition</a></li><li class="tocline"><a href="#iri-expansion" class="tocxref"><span class="secno">6.3 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion</a></li></ul></li><li class="tocline"><a href="#expansion-algorithms" class="tocxref"><span class="secno">7. </span>Expansion Algorithms</a><ul class="toc"><li class="tocline"><a href="#expansion-algorithm" class="tocxref"><span class="secno">7.1 </span>Expansion Algorithm</a></li><li class="tocline"><a href="#value-expansion" class="tocxref"><span class="secno">7.2 </span>Value Expansion</a></li></ul></li><li class="tocline"><a href="#compaction-algorithms" class="tocxref"><span class="secno">8. </span>Compaction Algorithms</a><ul class="toc"><li class="tocline"><a href="#compaction-algorithm" class="tocxref"><span class="secno">8.1 </span>Compaction Algorithm</a></li><li class="tocline"><a href="#inverse-context-creation" class="tocxref"><span class="secno">8.2 </span>Inverse Context Creation</a></li><li class="tocline"><a href="#iri-compaction" class="tocxref"><span class="secno">8.3 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction</a></li><li class="tocline"><a href="#term-selection" class="tocxref"><span class="secno">8.4 </span>Term Selection</a></li><li class="tocline"><a href="#value-compaction" class="tocxref"><span class="secno">8.5 </span>Value Compaction</a></li></ul></li><li class="tocline"><a href="#flattening-algorithms" class="tocxref"><span class="secno">9. </span>Flattening Algorithms</a><ul class="toc"><li class="tocline"><a href="#flattening-algorithm" class="tocxref"><span class="secno">9.1 </span>Flattening Algorithm</a></li><li class="tocline"><a href="#node-map-generation" class="tocxref"><span class="secno">9.2 </span>Node Map Generation</a></li><li class="tocline"><a href="#generate-blank-node-identifier" class="tocxref"><span class="secno">9.3 </span>Generate Blank Node Identifier</a></li></ul></li><li class="tocline"><a href="#rdf-conversion-algorithms" class="tocxref"><span class="secno">10. </span>RDF Conversion Algorithms</a><ul class="toc"><li class="tocline"><a href="#convert-to-rdf-algorithm" class="tocxref"><span class="secno">10.1 </span>Convert to RDF Algorithm</a></li><li class="tocline"><a href="#object-to-rdf-conversion" class="tocxref"><span class="secno">10.2 </span>Object to RDF Conversion</a></li><li class="tocline"><a href="#list-to-rdf-conversion" class="tocxref"><span class="secno">10.3 </span>List to RDF Conversion</a></li><li class="tocline"><a href="#convert-from-rdf-algorithm" class="tocxref"><span class="secno">10.4 </span>Convert from RDF Algorithm</a></li><li class="tocline"><a href="#rdf-to-object-conversion" class="tocxref"><span class="secno">10.5 </span>RDF to Object Conversion</a></li><li class="tocline"><a href="#data-round-tripping" class="tocxref"><span class="secno">10.6 </span>Data Round Tripping</a></li></ul></li><li class="tocline"><a href="#the-application-programming-interface" class="tocxref"><span class="secno">11. </span>The Application Programming Interface</a><ul class="toc"><li class="tocline"><a href="#the-jsonldprocessor-interface" class="tocxref"><span class="secno">11.1 </span>The <span class="formerLink"><code>JsonLdProcessor</code></span> Interface</a></li><li class="tocline"><a href="#callbacks" class="tocxref"><span class="secno">11.2 </span>Callbacks</a></li><li class="tocline"><a href="#data-structures" class="tocxref"><span class="secno">11.3 </span>Data Structures</a></li></ul></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></div>
+
+
+
+
+<div class="informative section" id="introduction">
+
+<!--OddPage-->
+<h2><span class="secno">1. </span>Introduction</h2><p><em>This section is non-normative.</em></p>
+
+  <p>This document is a detailed specification for an Application Programming
+    Interface for the JSON-LD syntax. The document is primarily intended for
+    the following audiences:</p>
+
+  <ul>
+    <li>Developers who want an overview of the JSON-LD API.</li>
+    <li>Web authors and developers who want a very detailed view of how
+      a <a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processor</a> or a <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementation</a>
+      operates.</li>
+    <li>Software developers who want to implement the algorithms to transform
+      JSON-LD documents.</li>
+  </ul>
+
+  <p>To understand the basics in this specification you must first be familiar with
+    JSON, which is detailed in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]. You must also understand the
+    JSON-LD syntax defined in [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>], which is the base syntax used by all
+    of the algorithms in this document. To understand the API and how it is
+    intended to operate in a programming environment, it is useful to have working
+    knowledge of the JavaScript programming language [<cite><a class="bibref" href="#bib-ECMA-262">ECMA-262</a></cite>] and
+    WebIDL [<cite><a class="bibref" href="#bib-WEBIDL">WEBIDL</a></cite>]. To understand how JSON-LD maps to RDF, it is helpful to be
+    familiar with the basic RDF concepts [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</p>
+</div>
+<!-- end of Introduction -->
+
+
+
+<div class="informative section" id="features">
+
+<!--OddPage-->
+<h2><span class="secno">2. </span>Features</h2><p><em>This section is non-normative.</em></p>
+
+  <p>The JSON-LD Syntax specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>] defines a syntax to
+    express Linked Data in JSON. Because there is more than one way to
+    express Linked Data using this syntax, it is often useful to be able to
+    transform JSON-LD documents so that they may be more easily consumed by
+    specific applications.</p>
+
+  <p>JSON-LD uses <a class="tref internalDFN" title="context" href="#dfn-context">contexts</a> to allow Linked Data
+    to be expressed in a way that is specifically tailored to a particular
+    person or application. By providing a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>,
+    JSON data can be expressed in a way that is a natural fit for a particular
+    person or application whilst also indicating how the data should be
+    understood at a global scale. In order for people or applications to
+    share data that was created using a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> that is different
+    from their own, a JSON-LD processor must be able to transform a document
+    from one <a class="tref internalDFN" title="context" href="#dfn-context">context</a> to another. Instead of requiring JSON-LD
+    processors to write specific code for every imaginable
+    <a class="tref internalDFN" title="context" href="#dfn-context">context</a> switching scenario, it is much easier to specify a
+    single algorithm that can remove any <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. Similarly,
+    another algorithm can be specified to subsequently apply any
+    <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. These two algorithms represent the most basic
+    transformations of JSON-LD documents. They are referred to as
+    <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expansion</a> and <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compaction</a>, respectively.</p>
+
+  <p>There are four major types of transformation that are discussed in this
+    document: expansion, compaction, flattening, and RDF conversion.</p>
+
+  <div class="informative section" id="expansion">
+    <h3><span class="secno">2.1 </span>Expansion</h3><p><em>This section is non-normative.</em></p>
+
+    <p>The algorithm that removes <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is
+      called <dfn title="expansion" id="dfn-expansion">expansion</dfn>. Before performing any other
+      transformations on a JSON-LD document, it is easiest to
+      remove any <a class="tref internalDFN" title="context" href="#dfn-context">context</a> from it and to make data structures
+      more regular.</p>
+
+    <p>To get an idea of how context and data structuring affects the same data,
+      here is an example of JSON-LD that uses only <a class="tref internalDFN" title="term" href="#dfn-term">terms</a>
+      and is fairly compact:</p>
+
+    <div class="example"><div class="example-title"><span>Example 1</span>: Sample JSON-LD document</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;
+}</pre></div>
+
+    <p>The next input example uses one <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> to express a property
+    and an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> to encapsulate another, but
+    leaves the rest of the information untouched.</p>
+
+    <div class="example"><div class="example-title"><span>Example 2</span>: Sample JSON-LD document using an IRI instead of a term to express a property</div><pre class="example">{
+  &quot;@context&quot;: {
+    <span class="diff">&quot;website&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;</span>
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;<span class="diff">http://xmlns.com/foaf/0.1/name</span>&quot;: &quot;Markus Lanthaler&quot;,
+  <span class="diff">&quot;website&quot;</span>: <span class="diff">{ &quot;@id&quot;:</span> &quot;http://www.markus-lanthaler.com/&quot; <span class="diff">}</span>
+}</pre></div>
+
+    <p>Note that both inputs are valid JSON-LD and both represent the same
+      information. The difference is in their <a class="tref internalDFN" title="context" href="#dfn-context">context</a> information
+      and in the data structures used. A JSON-LD processor can remove
+      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and ensure that the data is more regular by employing
+      <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expansion</a>.</p>
+
+    <p><a class="tref internalDFN" title="expansion" href="#dfn-expansion">Expansion</a> has two important goals: removing any contextual
+      information from the document, and ensuring all values are represented
+      in a regular form. These goals are accomplished by expanding all properties
+      to <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a> and by expressing all
+      values in <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a> in
+      <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a>. <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">Expanded form</a> is the most verbose
+      and regular way of expressing of values in JSON-LD; all contextual
+      information from the document is instead stored locally with each value.
+      Running the <a href="#expansion-algorithm">Expansion algorithm</a>
+      (<code class="idlMemberName"><a href="#widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">expand</a></code>
+      operation) against the above examples results in the following output:</p>
+
+    <div class="example"><div class="example-title"><span>Example 3</span>: Expanded sample document</div><pre class="example">[
+  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
+    ]
+  }
+]</pre></div>
+
+    <p>Note that in the output above all <a class="tref internalDFN" title="context" href="#dfn-context">context</a> definitions have
+      been removed, all <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> and
+      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> have been expanded to absolute
+      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, and all
+      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a> are expressed in
+      <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a> in <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a>. While the
+      output is more verbose and difficult for a human to read, it establishes a
+      baseline that makes JSON-LD processing easier because of its very regular
+      structure.</p>
+  </div>
+<!-- end of Expansion -->
+
+
+  <div class="informative section" id="compaction">
+    <h3><span class="secno">2.2 </span>Compaction</h3><p><em>This section is non-normative.</em></p>
+
+    <p>While <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expansion</a> removes <a class="tref internalDFN" title="context" href="#dfn-context">context</a> from a given
+      input, <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compaction's</a> primary function is to
+      perform the opposite operation: to express a given input according to
+      a particular <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. <dfn title="compaction" id="dfn-compaction">Compaction</dfn> applies a
+      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> that specifically tailors the way information is
+      expressed for a particular person or application. This simplifies applications
+      that consume JSON or JSON-LD by expressing the data in application-specific
+      terms, and it makes the data easier to read by humans.</p>
+
+    <p><a class="tref internalDFN" title="compaction" href="#dfn-compaction">Compaction</a> uses a developer-supplied <a class="tref internalDFN" title="context" href="#dfn-context">context</a> to
+      shorten <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> to <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or
+      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> and
+      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a> expressed in
+      <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a> to simple values such as <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>
+      or <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>.</p>
+
+    <p>For example, assume the following expanded JSON-LD input document:</p>
+
+    <div class="example"><div class="example-title"><span>Example 4</span>: Expanded sample document</div><pre class="example">[
+  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
+    ]
+  }
+]</pre></div>
+
+    <p>Additionally, assume the following developer-supplied JSON-LD
+      <a class="tref internalDFN" title="context" href="#dfn-context">context</a>:</p>
+
+    <div class="example"><div class="example-title"><span>Example 5</span>: JSON-LD context</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  }
+}</pre></div>
+
+    <p>Running the <a href="#compaction-algorithm">Compaction Algorithm</a>
+      (<code class="idlMemberName"><a href="#widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">compact</a></code>
+      operation) given the context supplied above against the JSON-LD input
+      document provided above would result in the following output:</p>
+
+    <div class="example"><div class="example-title"><span>Example 6</span>: Compacted sample document</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;
+}</pre></div>
+
+    <p>Note that all <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> have been compacted to
+      <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> as specified in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>,
+      which has been injected into the output. While compacted output is
+      useful to humans, it is also used to generate structures that are easy to
+      program against. Compaction enables developers to map any expanded document
+      into an application-specific compacted document. While the context provided
+      above mapped <code>http://xmlns.com/foaf/0.1/name</code> to <code>name</code>, it
+      could also have been mapped to any other term provided by the developer.</p>
+  </div>
+<!-- end of Compaction -->
+
+
+  <div class="informative section" id="flattening">
+    <h3><span class="secno">2.3 </span>Flattening</h3><p><em>This section is non-normative.</em></p>
+
+    <p>While expansion ensures that a document is in a uniform structure,
+      flattening goes a step further to ensure that the shape of the data
+      is deterministic. In expanded documents, the properties of a single
+      <a class="tref internalDFN" title="node" href="#dfn-node">node</a> may be spread across a number of different
+      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a>. By flattening a
+      document, all properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> are collected in a single
+      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> and all <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>
+      are labeled with a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. This may drastically
+      simplify the code required to process JSON-LD data in certain applications.</p>
+
+    <p>For example, assume the following JSON-LD input document:</p>
+
+    <div class="example"><div class="example-title"><span>Example 7</span>: Sample JSON-LD document</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;knows&quot;: [
+    {
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    }
+  ]
+}</pre></div>
+
+    <p>Running the <a href="#flattening-algorithm">Flattening algorithm</a>
+      (<code class="idlMemberName"><a href="#widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">flatten</a></code>
+      operation) with a context set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> to prevent compaction
+      returns the following document:</p>
+
+    <div class="example"><div class="example-title"><span>Example 8</span>: Flattened sample document in expanded form</div><pre class="example">[
+  {
+    &quot;@id&quot;: &quot;_:t0&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Dave Longley&quot; }
+    ]
+  },
+  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/knows&quot;: [
+      { &quot;@id&quot;: &quot;_:t0&quot; }
+    ]
+  }
+]</pre></div>
+
+    <p>Note how in the output above all properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> are collected in a
+      single <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> and how the <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> representing
+      &quot;Dave Longley&quot; has been assigned the <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
+      <code>_:t0</code>.</p>
+
+    <p>To make it easier for humans to read or for certain applications to
+      process it, a flattened document can be compacted by passing a context. Using
+      the same context as the input document, the flattened and compacted document
+      looks as follows:</p>
+
+    <div class="example"><div class="example-title"><span>Example 9</span>: Flattened and compacted sample document</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@graph&quot;: [
+    {
+      &quot;@id&quot;: &quot;_:t0&quot;,
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+      &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+      &quot;knows&quot;: { &quot;@id&quot;: &quot;_:t0&quot; }
+    }
+  ]
+}</pre></div>
+
+    <p>Please note that the result of flattening and compacting a document
+      is always a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> which contains an <code>@graph</code>
+      member that represents the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a>.</p>
+  </div>
+<!-- end of Flattening -->
+
+
+  <div class="informative section" id="rdf-conversion">
+    <h3><span class="secno">2.4 </span>RDF Conversion</h3><p><em>This section is non-normative.</em></p>
+
+    <p>JSON-LD can be used to serialize data expressed in RDF as described in
+      [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>]. This ensures that data can be round-tripped to and from
+      any RDF syntax without any loss in fidelity.</p>
+
+    <p>For example, assume the following RDF input serialized in Turtle [<cite><a class="bibref" href="#bib-TURTLE">TURTLE</a></cite>]:</p>
+
+    <div class="example"><div class="example-title"><span>Example 10</span>: Sample Turtle document</div><pre class="example">&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Markus Lanthaler&quot; .
+&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/homepage&gt; &lt;http://www.markus-lanthaler.com/&gt; .</pre></div>
+
+    <p>Using the <a href="#convert-from-rdf-algorithm">Convert from RDF algorithm</a> a
+      developer could transform this document into expanded JSON-LD:</p>
+
+    <div class="example"><div class="example-title"><span>Example 11</span>: Sample Turtle document converted to JSON-LD</div><pre class="example">[
+  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Markus Lanthaler&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      { &quot;@id&quot;: &quot;http://www.markus-lanthaler.com/&quot; }
+    ]
+  }
+]</pre></div>
+
+    <p>Note that the output above could easily be compacted using the technique outlined
+      in the previous section. It is also possible to transform the JSON-LD document back
+      to RDF using the <a href="#convert-to-rdf-algorithm">Convert to RDF algorithm</a>.</p>
+  </div>
+<!-- end of RDF Conversion -->
+
+</div>
+<!-- end of Features section -->
+
+
+
+<div class="section" id="conformance">
+
+<!--OddPage-->
+<h2><span class="secno">3. </span>Conformance</h2>
+
+  <p>All examples and notes as well as sections marked as non-normative in this
+    specification are non-normative. Everything else in this specification is
+    normative.</p>
+
+  <p>The keywords <em class="rfc2119" title="MUST">MUST</em>, <em class="rfc2119" title="MUST NOT">MUST NOT</em>, <em class="rfc2119" title="REQUIRED">REQUIRED</em>, <em class="rfc2119" title="SHOULD">SHOULD</em>, <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em>, <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em>,
+    <em class="rfc2119" title="MAY">MAY</em>, and <em class="rfc2119" title="OPTIONAL">OPTIONAL</em> in this specification are to be interpreted as described
+    in [<cite><a class="bibref" href="#bib-RFC2119">RFC2119</a></cite>].</p>
+
+  <p>There are three classes of products that can claim conformance to this
+    specification: <a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processors</a>,
+    <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementations</a>,
+    and <a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter">JSON-LD-RDF Converters</a>.</p>
+
+  <p>A conforming <dfn title="json-ld-processor" id="dfn-json-ld-processor">JSON-LD Processor</dfn> is a system which can perform the
+    <a href="#expansion-algorithm">Expansion</a>, <a href="#compaction-algorithm">Compaction</a>,
+    and <a href="#flattening-algorithm">Flattening</a> operations defined in this specification.</p>
+
+  <p>A conforming <dfn title="json-ld-api-implementation" id="dfn-json-ld-api-implementation">JSON-LD API Implementation</dfn> is a conforming <a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processor</a>
+    that exposes the <a href="#the-application-programming-interface">Application Programming Interface (API)</a>
+    defined in this specification. It <em class="rfc2119" title="MUST">MUST</em> implement the <code>json-ld-1.0</code>
+    processing mode (for further details, see the
+    <code class="idlMemberName"><a href="#widl-JsonLdOptions-processingMode">processingMode</a></code>
+    option of <a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>).</p>
+
+  <p><a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processors</a> and
+    <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">API Implementations</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em>
+    attempt to correct malformed <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> or language tags;
+    however, they <em class="rfc2119" title="MAY">MAY</em> issue validation warnings. IRIs are not modified other
+    than converted between <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative</a> and
+    <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>.</p>
+
+  <p>A conforming <dfn title="json-ld-rdf-converter" id="dfn-json-ld-rdf-converter">JSON-LD-RDF Converter</dfn> is a system that can perform
+    <a href="#convert-to-rdf-algorithm">Conversion to RDF</a> and
+    <a href="#convert-from-rdf-algorithm">Conversion from RDF</a>.</p>
+
+  <p>The algorithms in this specification are generally written with more concern for clarity
+    than efficiency. Thus, <a class="tref internalDFN" title="json-ld-processor" href="#dfn-json-ld-processor">JSON-LD Processors</a>
+    and <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">API Implementations</a> may
+    implement the algorithms given in this specification in any way desired,
+    so long as the end result is indistinguishable from the result that would
+    be obtained by the specification's algorithms.</p>
+
+  <div class="note"><div class="note-title"><span>Note</span></div><p class="">Implementers can partially check their level of conformance to
+    this specification by successfully passing the test cases of the JSON-LD test
+    suite [<cite><a class="bibref" href="#bib-JSON-LD-TESTS">JSON-LD-TESTS</a></cite>]. Note, however, that passing all the tests in the test
+    suite does not imply complete conformance to this specification. It only implies
+    that the implementation conforms to aspects tested by the test suite.</p></div>
+</div>
+<!-- end of Conformance section -->
+
+
+
+<div class="section" id="general-terminology">
+
+<!--OddPage-->
+<h2><span class="secno">4. </span>General Terminology</h2>
+
+  <p>This document uses the following terms as defined in JSON [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]. Refer
+    to the <em>JSON Grammar</em> section in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>] for formal definitions.</p>
+
+  <dl>
+    <dt><dfn title="json-object" id="dfn-json-object">JSON object</dfn></dt>
+    <dd>An object structure is represented as a pair of curly brackets surrounding
+      zero or more key-value pairs. A key is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.
+      A single colon comes after each key, separating the key from the value.
+      A single comma separates a value from a following key. In contrast to JSON,
+      in JSON-LD the keys in an object must be unique.</dd>
+    <dt><dfn title="array" id="dfn-array">array</dfn></dt>
+    <dd>An array structure is represented as square brackets surrounding zero
+      or more values. Values are separated by commas.
+      In JSON, an array is an <em>ordered</em> sequence of zero or more values.
+      While JSON-LD uses the same array representation as JSON,
+      the collection is <em>unordered</em> by default. While order is
+      preserved in regular JSON arrays, it is not in regular JSON-LD arrays
+      unless specifically defined (see
+      <cite><a href="../json-ld/#sets-and-lists">Sets and Lists</a></cite> in
+      the JSON-LD specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>]).</dd>
+    <dt><dfn title="string" id="dfn-string">string</dfn></dt>
+    <dd>A string is a sequence of zero or more Unicode characters,
+      wrapped in double quotes, using backslash escapes (if necessary). A
+      character is represented as a single character string.</dd>
+    <dt><dfn title="number" id="dfn-number">number</dfn></dt>
+    <dd>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.</dd>
+    <dt><dfn title="true" id="dfn-true">true</dfn> and <dfn title="false" id="dfn-false">false</dfn></dt>
+    <dd>Values that are used to express one of two possible boolean states.</dd>
+    <dt><dfn title="null" id="dfn-null">null</dfn></dt>
+    <dd>The <a class="tref internalDFN" title="null" href="#dfn-null">null</a> value. A key-value pair in the
+      <code>@context</code> where the value, or the <code>@id</code> of the
+      value, is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> explicitly decouples a term's association
+      with an <abbr title="Internationalized Resource Identifier">IRI</abbr>. A key-value pair in the body of a JSON-LD document whose
+      value is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> has the same meaning as if the key-value pair
+      was not defined. If <code>@value</code>, <code>@list</code>, or
+      <code>@set</code> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in expanded form, then
+      the entire <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is ignored.</dd>
+  </dl>
+
+  <p>Furthermore, the following terminology is used throughout this document:</p>
+
+  <dl>
+    <dt><dfn title="keyword" id="dfn-keyword">keyword</dfn></dt>
+    <dd>A JSON key that is specific to JSON-LD, specified in the section
+      <cite><a href="../json-ld/#syntax-tokens-and-keywords">Syntax Tokens and Keywords</a></cite>
+      of the JSON-LD specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>].</dd>
+    <dt><dfn title="context" id="dfn-context">context</dfn></dt>
+    <dd>A set of rules for interpreting a JSON-LD document as specified in the section
+      <cite><a href="../json-ld/#the-context">The Context</a></cite> of the JSON-LD
+      specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>].</dd>
+    <dt><dfn title="json-ld-document" id="dfn-json-ld-document">JSON-LD document</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> is a serialization of a collection of
+      <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graphs</a> and comprises exactly one
+      <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> and zero or more <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graphs</a>.</dd>
+    <dt><dfn title="named-graph" id="dfn-named-graph">named graph</dfn></dt>
+    <dd>A named graph is a pair consisting of an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>
+      (the <dfn title="graph-name" id="dfn-graph-name">graph name</dfn>) and a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>.</dd>
+    <dt><dfn title="default-graph" id="dfn-default-graph">default graph</dfn></dt>
+    <dd>The default graph is the only graph in a JSON-LD document which has no <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a>.</dd>
+    <dt><dfn title="json-ld-graph" id="dfn-json-ld-graph">JSON-LD graph</dfn></dt>
+    <dd>A labeled directed graph, i.e., a set of <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>
+      connected by <a class="tref internalDFN" title="edge" href="#dfn-edge">edges</a>,
+      as specified in the <cite><a href="../json-ld/#data-model">Data Model</a></cite>
+      section of the JSON-LD specification [<cite><a class="bibref" href="#bib-JSON-LD">JSON-LD</a></cite>].</dd>
+    <dt><dfn title="edge" id="dfn-edge">edge</dfn></dt>
+    <dd>Every <a class="tref internalDFN" title="edge" href="#dfn-edge">edge</a> has a direction associated with it and is labeled with
+      an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. Within the JSON-LD syntax
+      these edge labels are called <dfn title="property" id="dfn-property">properties</dfn>. Whenever possible, an
+      <a class="tref internalDFN" title="edge" href="#dfn-edge">edge</a> should be labeled with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</dd>
+    <dt><dfn title="node" id="dfn-node">node</dfn></dt>
+    <dd>Every <a class="tref internalDFN" title="node" href="#dfn-node">node</a> is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>,
+      a <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a>, or a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>.</dd>
+    <dt><dfn title="iri" id="dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></dfn></dt>
+    <dd>An <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> (Internationalized Resource Identifier) is a string that conforms to the syntax
+      defined in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>].</dd>
+    <dt><dfn title="absolute-iri" id="dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn></dt>
+    <dd>An absolute <abbr title="Internationalized Resource Identifier">IRI</abbr> is defined in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>] containing a <em>scheme</em> along with a <em>path</em> and
+      optional <em>query</em> and fragment segments.</dd>
+    <dt><dfn title="relative-iri" id="dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn></dt>
+    <dd>A relative <abbr title="Internationalized Resource Identifier">IRI</abbr> is an <abbr title="Internationalized Resource Identifier">IRI</abbr> that is relative some other <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>;
+      in the case of JSON-LD this is the base location of the document.</dd>
+    <dt><dfn title="blank-node" id="dfn-blank-node">blank node</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> that is neither an
+      <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, nor a <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a>, nor a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>.</dd>
+    <dt><dfn title="blank-node-identifier" id="dfn-blank-node-identifier">blank node identifier</dfn></dt>
+    <dd>A blank node identifier is a string that can be used as an identifier for a
+      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> within the scope of a JSON-LD document. Blank node identifiers
+      begin with <code>_:</code>.</dd>
+    <dt><dfn title="json-ld-value" id="dfn-json-ld-value">JSON-LD value</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, a <a class="tref internalDFN" title="number" href="#dfn-number">number</a>,
+      <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, a <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>, or a
+      <a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged string</a>.</dd>
+    <dt><dfn title="typed-value" id="dfn-typed-value">typed value</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a> consists of a value, which is a string, and a type,
+      which is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</dd>
+    <dt><dfn title="language-tagged-string" id="dfn-language-tagged-string">language-tagged string</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged string</a> consists of a string and a non-empty language
+      tag as defined by [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>]. The language tag must be well-formed according to
+      <a href="http://tools.ietf.org/html/bcp47#section-2.2.9">section 2.2.9 Classes of Conformance</a>
+      of [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>], and is normalized to lowercase.</dd>
+    <dt><dfn title="list" id="dfn-list">list</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="list" href="#dfn-list">list</a> is an ordered sequence of <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
+      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>, and
+      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a>.</dd>
+  </dl>
+</div>
+<!-- end of General Terminology section -->
+
+
+
+<div class="section" id="algorithm-terms">
+
+<!--OddPage-->
+<h2><span class="secno">5. </span>Algorithm Terms</h2>
+
+  <dl>
+    <dt><dfn title="active-graph" id="dfn-active-graph">active graph</dfn></dt>
+    <dd>The name of the currently active graph that the processor should use when
+      processing.</dd>
+    <dt><dfn title="active-subject" id="dfn-active-subject">active subject</dfn></dt>
+    <dd>The currently active subject that the processor should use when
+      processing.</dd>
+    <dt><dfn title="active-property" id="dfn-active-property">active property</dfn></dt>
+    <dd>The currently active <a class="tref internalDFN" title="property" href="#dfn-property">property</a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> that
+      the processor should use when processing.</dd>
+    <dt><dfn title="active-context" id="dfn-active-context">active context</dfn></dt>
+    <dd>A context that is used to resolve <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> while
+      the processing algorithm is running.</dd>
+    <dt><dfn title="local-context" id="dfn-local-context">local context</dfn></dt>
+    <dd>A context that is specified within a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>,
+      specified via the <code>@context</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>.</dd>
+    <dt><dfn title="json-ld-input" id="dfn-json-ld-input">JSON-LD input</dfn></dt>
+    <dd>The JSON-LD data structure that is provided as input to the algorithm.</dd>
+    <dt><dfn title="term" id="dfn-term">term</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is a short word defined in a context that may be expanded to
+      an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a></dd>
+    <dt><dfn title="compact-iri" id="dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn></dt>
+    <dd>A compact <abbr title="Internationalized Resource Identifier">IRI</abbr> has the form of <dfn title="prefix" id="dfn-prefix">prefix</dfn>:<em>suffix</em> and is used as a way
+      of expressing an <abbr title="Internationalized Resource Identifier">IRI</abbr> without needing to define separate <a class="tref internalDFN" title="term" href="#dfn-term">term</a> definitions for
+      each <abbr title="Internationalized Resource Identifier">IRI</abbr> contained within a common vocabulary identified by <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>.</dd>
+    <dt><dfn title="node-object" id="dfn-node-object">node object</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> represents zero or more properties of a
+      <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in the <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> serialized by the
+      JSON-LD document. A <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>
+      if it exists outside of the JSON-LD <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and:
+      <ul>
+        <li>it does not contain the <code>@value</code>, <code>@list</code>,
+          or <code>@set</code> keywords, or</li>
+        <li>it is not the top-most <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> in the JSON-LD document consisting
+          of no other members than <code>@graph</code> and <code>@context</code>.</li>
+      </ul>
+    </dd>
+    <dt><dfn title="value-object" id="dfn-value-object">value object</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that has an <code>@value</code>
+      member.</dd>
+    <dt><dfn title="list-object" id="dfn-list-object">list object</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that has an <code>@list</code>
+      member.</dd>
+    <dt><dfn title="set-object" id="dfn-set-object">set object</dfn></dt>
+    <dd>A <a class="tref internalDFN" title="set-object" href="#dfn-set-object">set object</a> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that has an <code>@set</code>
+      member.</dd>
+    <dt><dfn title="scalar" id="dfn-scalar">scalar</dfn></dt>
+    <dd>A scalar is either a JSON <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, <a class="tref internalDFN" title="number" href="#dfn-number">number</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
+      or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>.</dd>
+    <dt><dfn title="rdf-subject" id="dfn-rdf-subject">RDF subject</dfn></dt>
+    <dd>A <a class="tref externalDFN" title="subject" href="http://www.w3.org/TR/rdf11-concepts/#dfn-subject">subject</a>
+      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</dd>
+    <dt><dfn title="rdf-predicate" id="dfn-rdf-predicate">RDF predicate</dfn></dt>
+    <dd>A <a class="tref externalDFN" title="predicate" href="http://www.w3.org/TR/rdf11-concepts/#dfn-predicate">predicate</a>
+      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</dd>
+    <dt><dfn title="rdf-object" id="dfn-rdf-object">RDF object</dfn></dt>
+    <dd>An <a class="tref externalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object">object</a>
+      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</dd>
+    <dt><dfn title="rdf-triple" id="dfn-rdf-triple">RDF triple</dfn></dt>
+    <dd>A <a class="tref externalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a>
+      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</dd>
+    <dt><dfn title="rdf-dataset" id="dfn-rdf-dataset">RDF dataset</dfn></dt>
+    <dd>A <a class="tref externalDFN" title="dataset" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset">dataset</a>
+      as specified by [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>] representing a collection of
+      <a class="tref externalDFN" title="rdf-graphs" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-graph">RDF graphs</a>.</dd>
+  </dl>
+</div>
+<!-- end of Algorithm Terms section -->
+
+
+
+<div class="section" id="context-processing-algorithms">
+
+<!--OddPage-->
+<h2><span class="secno">6. </span>Context Processing Algorithms</h2>
+
+  <div class="section" id="context-processing-algorithm">
+    <h3><span class="secno">6.1 </span>Context Processing Algorithm</h3>
+
+    <p>When processing a JSON-LD data structure, each processing rule is applied
+      using information provided by the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. This
+      section describes how to produce an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</p>
+
+    <p>The <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> contains the active
+      <dfn title="term-definition" id="dfn-term-definition">term definitions</dfn> which specify how
+      properties and values have to be interpreted as well as the current <dfn title="base-iri" id="dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn>,
+      the <dfn title="vocabulary-mapping" id="dfn-vocabulary-mapping">vocabulary mapping</dfn> and the <dfn title="default-language" id="dfn-default-language">default language</dfn>. Each
+      <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> consists of an <dfn title="iri-mapping" id="dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</dfn>, a boolean
+      flag <dfn title="reverse-property" id="dfn-reverse-property">reverse property</dfn>, an optional <dfn title="type-mapping" id="dfn-type-mapping">type mapping</dfn>
+      or <dfn title="language-mapping" id="dfn-language-mapping">language mapping</dfn>, and an optional  <dfn title="container-mapping" id="dfn-container-mapping">container mapping</dfn>.
+      A <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> can not only be used to map a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+      to an <abbr title="Internationalized Resource Identifier">IRI</abbr>, but also to map a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> to a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>,
+      in which case it is referred to as a <dfn title="keyword-alias" id="dfn-keyword-alias">keyword alias</dfn>.</p>
+
+    <p>When processing, the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is initialized
+      without any <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definitions</a>,
+      <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, or <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>.
+      If a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is encountered during processing, a new
+      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is created by cloning the existing
+      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. Then the information from the
+      <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is merged into the new <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.
+      Given that <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local contexts</a> may contain
+      references to remote contexts, this includes their retrieval.</p>
+
+    <div class="informative section">
+      <h4 id="overview">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>First we prepare a new <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> <i>result</i> by cloning
+        the current <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. Then we normalize the form of the passed
+        <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.
+        <a class="tref internalDFN" title="local-context" href="#dfn-local-context">Local contexts</a> may be in the form of a
+        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, or an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing
+        a combination of the two. Finally we process each <a class="tref internalDFN" title="context" href="#dfn-context">context</a> contained
+        in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> <a class="tref internalDFN" title="array" href="#dfn-array">array</a> as follows.</p>
+
+      <p>If <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, it represents a reference to
+        a remote context. We dereference the remote context and replace <a class="tref internalDFN" title="context" href="#dfn-context">context</a>
+        with the value of the <code>@context</code> key of the top-level object in the
+        retrieved JSON-LD document. If there's no such key, an invalid remote context has
+        been detected. Otherwise, we process <a class="tref internalDFN" title="context" href="#dfn-context">context</a> by recursively using
+        this algorithm ensuring that there is no cyclical reference.</p>
+
+      <p>If <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, we first update the
+        <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, the <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, and the
+        <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a> by processing three specific keywords:
+        <code>@base</code>, <code>@vocab</code>, and <code>@language</code>.
+        These are handled before any other keys in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> because
+        they affect how the other keys are processed.</p>
+
+      <p>Then, for every other key in <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, we update
+        the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <i>result</i>. Since
+        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definitions</a> in a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>
+        may themselves contain <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or
+        <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>, we may need to recurse.
+        When doing so, we must ensure that there is no cyclical dependency,
+        which is an error. After we have processed any
+        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> dependencies,
+        we update the current <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>,
+        which may be a <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword alias</a>.</p>
+
+      <p>Finally, we return <i>result</i> as the new <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm">Algorithm</h4>
+
+      <p>This algorithm specifies how a new <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is updated
+        with a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>. The algorithm takes three input variables:
+        an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and an  <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+        <i>remote contexts</i> which is used to detect cyclical context inclusions.
+        If <i>remote contexts</i> is not passed, it is initialized to an empty
+        <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</p>
+
+      <ol class="algorithm">
+        <li>Initialize <i>result</i> to the result of cloning
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
+        <li>If <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
+          set it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
+          <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
+        <li>
+          For each item <i>context</i> in <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>:
+          <ol class="algorithm">
+            <li>If <i>context</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set <i>result</i> to a
+              newly-initialized <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and continue with the
+              next <i>context</i>.</li>
+            <li>If <i>context</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>,
+              <ol class="algorithm">
+                <li>Set <i>context</i> to the result of resolving <i>value</i> against
+                  the base <abbr title="Internationalized Resource Identifier">IRI</abbr> which is established as specified in
+                  <cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1">section 5.1 Establishing a Base URI</a></cite>
+                  of [<cite><a class="bibref" href="#bib-RFC3986">RFC3986</a></cite>]. Only the basic algorithm in
+                  <cite><a href="http://tools.ietf.org/html/rfc3986#section-5.2">section 5.2</a></cite>
+                  of [<cite><a class="bibref" href="#bib-RFC3986">RFC3986</a></cite>] is used; neither
+                  <cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.2">Syntax-Based Normalization</a></cite> nor
+                  <cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.3">Scheme-Based Normalization</a></cite>
+                  are performed. Characters additionally allowed in <abbr title="Internationalized Resource Identifier">IRI</abbr>
+                  references are treated in the same way that unreserved
+                  characters are treated in URI references, per
+                  <cite><a href="http://tools.ietf.org/html/rfc3987#section-6.5">section 6.5</a></cite>
+                  of [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>].</li>
+                <li>If <i>context</i> is in the <i>remote contexts</i> array, a
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.recursive-context-inclusion">recursive context inclusion</a></code>
+                  error has been detected and processing is aborted;
+                  otherwise, add <i>context</i> to <i>remote contexts</i>.</li>
+                <li>Initialize <i>context no base</i> to the result of cloning the
+                  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
+                <li>Remove the <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> of <i>context no base</i>.</li>
+                <li>Dereference <i>context</i>. If the dereferenced document has no
+                  top-level <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with an <code>@context</code> member, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-remote-context">invalid remote context</a></code>
+                  has been detected and processing is aborted; otherwise,
+                  set <i>context</i> to the value of that member.</li>
+                <li>Set <i>context</i> to the result of recursively calling this algorithm,
+                  passing <i>context no base</i> for <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+                  <i>context</i> for <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>remote contexts</i>.</li>
+                <li>If <i>context</i> has no <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> but <i>result</i> does,
+                  set the <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> of <i>context</i> to the one of
+                  <i>result</i>.</li>
+                <li>Overwrite <i>result</i> with <i>context</i> and continue with the
+                  next <i>context</i>.</li>
+              </ol>
+            </li><li>If <i>context</i> is not a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-local-context">invalid local context</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>If <i>context</i> has an <code>@base</code> key:
+              <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 1</span>: @base keyword</div><div class="atrisk">
+                <p class="atrisk-head">Note: This feature is
+                  <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
+                  be removed from this specification based on feedback. Please send feedback to
+                  <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
+                  For the current status see
+                  <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
+                <p>Support for the <code>@base</code> keyword might be removed from JSON-LD 1.0 if
+                  implementation experience reveals that the fact that a document may have multiple
+                  base IRIs is confusing for developers. It is also being discussed whether relative
+                  IRIs are allowed as values of <code>@base</code> or whether the empty string should
+                  be used to explicitly specify that there isn't a base <abbr title="Internationalized Resource Identifier">IRI</abbr>, which could be used to
+                  ensure that relative IRIs remain relative when expanding.</p>
+              </div></div>
+              <ol class="algorithm">
+                <li>Initialize <i>value</i> to the value associated with the
+                  <code>@base</code> key.</li>
+                <li>If <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, remove the
+                  <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> of <i>result</i>.</li>
+                <li>Otherwise, if <i>value</i> is an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+                  the <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> of <i>result</i> is set to <i>value</i>.
+                  If it is not an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-base-IRI">invalid base <abbr title="Internationalized Resource Identifier">IRI</abbr></a></code>
+                  error has been detected and processing is aborted.</li>
+              </ol>
+            </li>
+            <li>If <i>context</i> has an <code>@vocab</code> key:
+              <ol class="algorithm">
+                <li>Initialize <i>value</i> to the value associated with the
+                  <code>@vocab</code> key.</li>
+                <li>If <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, remove
+                  any <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a> from <i>result</i>.</li>
+                <li>Otherwise, if <i>value</i> is an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+                  the <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a> of <i>result</i> is set
+                  to <i>value</i>. If it is not an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-vocab-mapping">invalid vocab mapping</a></code>
+                  error has been detected and processing is aborted.</li>
+              </ol>
+            </li>
+            <li>If <i>context</i> has an <code>@language</code> key:
+              <ol class="algorithm">
+                <li>Initialize <i>value</i> to the value associated with the
+                  <code>@language</code> key.</li>
+                <li>If <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, remove
+                  any <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a> from <i>result</i>.</li>
+                <li>Otherwise, if <i>value</i> is <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, the
+                  <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a> of <i>result</i> is set to
+                  lowercased <i>value</i>. If it is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-default-language">invalid default language</a></code>
+                  error has been detected and processing is aborted.</li>
+              </ol>
+            </li>
+            <li>Create a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>defined</i> to use to keep
+              track of whether or not a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> has already been defined
+              or currently being defined during recursion.</li>
+            <li>For each <i>key</i>-<i>value</i> pair in <i>context</i> where
+              <i>key</i> is not <code>@base</code>, <code>@vocab</code>, or
+              <code>@language</code>, invoke the
+              <a href="#create-term-definition">Create Term Definition algorithm</a>,
+              passing <i>result</i> for <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+              <i>context</i> for <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, <i>key</i>,
+              and <i>defined</i>.</li>
+          </ol>
+        </li>
+        <li>Return <i>result</i>.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Context Processing -->
+
+
+  <div class="section" id="create-term-definition">
+    <h3><span class="secno">6.2 </span>Create Term Definition</h3>
+
+    <p>This algorithm is called from the
+      <a href="#context-processing-algorithm">Context Processing algorithm</a>
+      to create a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>
+      for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> being processed in a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</p>
+
+    <div class="informative section">
+      <h4 id="overview-1">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p><a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">Term definitions</a> are created by
+        parsing the information in the given <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> for the
+        given <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. If the given <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is a
+        <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, it may omit an <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> by
+        depending on its <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> having its own
+        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>. If the <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> is
+        a key in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, then its <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
+        must first be created, through recursion, before continuing. Because a
+        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> can depend on other
+        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definitions</a>, a mechanism must
+        be used to detect cyclical dependencies. The solution employed here
+        uses a map, <i>defined</i>, that keeps track of whether or not a
+        <a class="tref internalDFN" title="term" href="#dfn-term">term</a> has been defined or is currently in the process of
+        being defined. This map is checked before any recursion is attempted.</p>
+
+      <p>After all dependencies for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> have been defined, the rest of
+        the information in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> for the given
+        <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is taken into account, creating the appropriate
+        <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>, <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>, and
+        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> for the
+        <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-1">Algorithm</h4>
+
+      <p>The algorithm has four required inputs which are:
+        an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>,
+        a <i>term</i>, and a map <i>defined</i>.</p>
+
+      <ol class="algorithm">
+        <li>If <i>defined</i> contains the key <i>term</i> and the associated
+          value is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> (indicating that the
+          <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has already been created), return. Otherwise,
+          if the value is <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, a
+          <code class="error"><a href="#idl-def-JsonLdErrorCode.cyclic-IRI-mapping">cyclic <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
+          error has been detected and processing is aborted.</li>
+        <li>Set the value associated with <i>defined</i>'s <i>term</i> key to
+          <a class="tref internalDFN" title="false" href="#dfn-false">false</a>. This indicates that the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
+          is now being created but is not yet complete.</li>
+        <li>Since <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> cannot be overridden,
+          <i>term</i> must not be a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. Otherwise, a
+          <code class="error"><a href="#idl-def-JsonLdErrorCode.keyword-redefinition">keyword redefinition</a></code>
+          error has been detected and processing is aborted.</li>
+        <li>Remove any existing <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> for <i>term</i> in
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
+        <li>Initialize <i>value</i> to the value associated with the key
+          <i>term</i> in <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
+        <li>If <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or <i>value</i>
+          is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing the key-value pair
+          <code>@id</code>-<a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set the
+          <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to
+          <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set the value associated with <i>defined</i>'s
+          key <i>term</i> to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, and return.</li>
+        <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>:
+          <ol class="algorithm">
+            <li>Expand <i>value</i> by setting it to the result of
+              using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>,
+              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>value</i>,
+              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
+              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i>,
+              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>defined</i>.</li>
+            <li>If <i>value</i> is <code>@context</code>, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-keyword-alias">invalid keyword alias</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>Set the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> for the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
+              for <i>term</i> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to <i>value</i>,
+              set the value associated with <i>defined</i>'s key <i>term</i> to
+              <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, and return.</li>
+          </ol>
+        </li>
+        <li>Otherwise, <i>value</i> must be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, if not, an
+          <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-term-definition">invalid term definition</a></code>
+          error has been detected and processing is aborted.</li>
+        <li>Create a new <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>, <i>definition</i>.</li>
+        <li>If <i>value</i> contains the key <code>@reverse</code>:
+          <ol class="algorithm">
+            <li>If <i>value</i> contains an <code>@id</code>, an
+              <code>@type</code>, or an <code>@language</code>, member, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property">invalid reverse property</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>If the value associated with the <code>@reverse</code> key
+              is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>Otherwise, set the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> of <i>definition</i> to the
+              result of using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>,
+              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, the value associated with
+              the <code>@reverse</code> key for <i>value</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>
+              for <i>vocab</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i>,
+              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>defined</i>. If the result
+              is not an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, i.e., it contains no
+              colon (<code>:</code>), an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>Set the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of <i>definition</i> to
+              <code>@id</code>.</li>
+            <li>If <i>value</i> contains an <code>@container</code> member,
+              set the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> of <i>definition</i>
+              to <code>@index</code> if that is the value of the
+              <code>@container</code> member; otherwise an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property">invalid reverse property</a></code>
+              error has been detected (reverse properties only support
+              index-containers) and processing is aborted.</li>
+            <li>Set the <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a> flag of <i>definition</i>
+              to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>.</li>
+            <li>Set the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> of <i>term</i> in
+              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to <i>definition</i> and the
+              value associated with <i>defined</i>'s key <i>term</i> to
+              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and return.</li>
+          </ol>
+        </li>
+        <li>Set the <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a> flag of <i>definition</i>
+          to <a class="tref internalDFN" title="false" href="#dfn-false">false</a>.</li>
+        <li>If <i>value</i> contains the key <code>@id</code>:
+          <ol class="algorithm">
+            <li>If the value associated with the <code>@id</code> key is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>Otherwise, set the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> of <i>definition</i> to the
+              result of using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
+              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, the value associated with the <code>@id</code> key for
+              <i>value</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
+              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i>,
+              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>defined</i>.</li>
+          </ol>
+        </li>
+        <li>
+          Otherwise if the <i>term</i> contains a colon (<code>:</code>):
+          <ol class="algorithm">
+            <li>If <i>term</i> is a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> with a
+              <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> that is a key in <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>
+              a dependency has been found. Use this algorithm recursively passing
+              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, the
+              <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> as <i>term</i>, and <i>defined</i>.</li>
+            <li>If <i>term</i>'s <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> has a
+              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, set
+              the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> of <i>definition</i> to the result of
+              concatenating the value associated with the <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>'s
+              <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> and the <i>term</i>'s <i>suffix</i>.</li>
+            <li>Otherwise, <i>term</i> is an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Set the
+              <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> of <i>definition</i> to <i>term</i>.</li>
+          </ol>
+        </li>
+        <li>Otherwise, if <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a
+          <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>
+          of <i>definition</i> is set to the result of concatenating the value
+          associated with the <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a> and <i>term</i>.
+          If it does not have a <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, an
+          <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
+          error been detected and processing is aborted.</li>
+        <li>If <i>value</i> contains the key <code>@type</code>:
+          <ol class="algorithm">
+            <li>Initialize <i>type</i> to the value associated with the
+              <code>@type</code> key, which must be a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>. Otherwise, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-mapping">invalid type mapping</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>Set <i>type</i> to the result of using the
+              <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
+              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>type</i> for <i>value</i>,
+              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
+              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i>,
+              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, and <i>defined</i>. If the expanded <i>type</i> is
+              neither <code>@id</code>, nor <code>@vocab</code>, nor an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-mapping">invalid type mapping</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>Set the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> for <i>definition</i> to <i>type</i>.</li>
+          </ol>
+        </li>
+        <li>If <i>value</i> contains the key <code>@container</code>:
+          <ol class="algorithm">
+            <li>Initialize <i>container</i> to the value associated with the
+              <code>@container</code> key, which must be either
+              <code>@list</code>, <code>@set</code>, <code>@index</code>,
+              or <code>@language</code>. Otherwise, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-container-mapping">invalid container mapping</a></code> error
+              has been detected and processing is aborted.</li>
+            <li>Set the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> of <i>definition</i> to
+              <i>container</i>.</li>
+          </ol>
+        </li>
+        <li>If <i>value</i> contains the key <code>@language</code> and
+          does not contain the key <code>@type</code>:
+          <ol class="algorithm">
+            <li>Initialize <i>language</i> to the value associated with the
+              <code>@language</code> key, which must be either <a class="tref internalDFN" title="null" href="#dfn-null">null</a>
+              or a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>. Otherwise, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-mapping">invalid language mapping</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>If <i>language</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> set it to
+              lowercased <i>language</i>. Set the <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>
+              of <i>definition</i> to <i>language</i>.</li>
+          </ol>
+        </li>
+        <li>Set the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> of <i>term</i> in
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to <i>definition</i> and set the value
+          associated with <i>defined</i>'s key <i>term</i> to
+          <a class="tref internalDFN" title="true" href="#dfn-true">true</a>.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Term Creation -->
+
+
+  <div class="section" id="iri-expansion">
+    <h3><span class="secno">6.3 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion</h3>
+
+    <p>In JSON-LD documents, some keys and values may represent
+      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>. This section defines an algorithm for
+      transforming a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> that represents an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> into
+      an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.
+      It also covers transforming <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword aliases</a>
+      into <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>.</p>
+
+    <p><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> expansion may occur during context processing or during
+      any of the other JSON-LD algorithms. If <abbr title="Internationalized Resource Identifier">IRI</abbr> expansion occurs during context
+      processing, then the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> and its related <i>defined</i>
+      map from the <a href="#context-processing-algorithm">Context Processing algorithm</a>
+      are passed to this algorithm. This allows for <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
+      dependencies to be processed via the
+      <a href="#create-term-definition">Create Term Definition algorithm</a>.</p>
+
+    <div class="informative section">
+      <h4 id="overview-2">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>In order to expand <i>value</i> to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, we must
+        first determine if it is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, a
+        <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword alias</a>, or some form of <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Based on what
+        we find, we handle the specific kind of expansion; for example, we expand
+        a <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword alias</a> to a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> and a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+        to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> according to its <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>
+        in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. While inspecting <i>value</i> we
+        may also find that we need to create <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
+        dependencies because we're running this algorithm during context processing.
+        We can tell whether or not we're running during context processing by
+        checking <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> against <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.
+        We know we need to create a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in the
+        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> when <i>value</i> is
+        a key in the <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> and the <i>defined</i> map
+        does not have a key for <i>value</i> with an associated value of
+        <a class="tref internalDFN" title="true" href="#dfn-true">true</a>. The <i>defined</i> map is used during
+        <a href="#context-processing-algorithm">Context Processing</a> to keep track of
+        which <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> have already been defined or are
+        in the process of being defined. We create a
+        <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> by using the
+        <a href="#create-term-definition">Create Term Definition algorithm</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-2">Algorithm</h4>
+
+      <p>The algorithm takes two required and four optional input variables. The
+        required inputs are an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and a <i>value</i>
+        to be expanded. The optional inputs are two flags,
+        <i>document relative</i> and <i>vocab</i>, that specifying
+        whether <i>value</i> can be interpreted as a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+        against the document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or the
+        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
+        <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, respectively, and
+        a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> and a map <i>defined</i> to be used when
+        this algorithm is used during <a href="#context-processing-algorithm">Context Processing</a>.
+        If not passed, the two flags are set to <code>false</code> and
+        <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> and <i>defined</i> are initialized to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+      <ol class="algorithm">
+        <li>If <i>value</i> is a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
+          return <i>value</i> as is.</li>
+        <li>If <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, it contains
+          a key that equals <i>value</i>, and the value associated with the key
+          that equals <i>value</i> in <i>defined</i> is not <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
+          invoke the <a href="#create-term-definition">Create Term Definition algorithm</a>,
+          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>,
+          <i>value</i> as <i>term</i>, and <i>defined</i>. This will ensure that
+          a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> is created for <i>value</i> in
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> during <a href="#context-processing-algorithm">Context Processing</a>.
+        </li>
+        <li>If <i>vocab</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and the
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> for
+          <i>value</i>, return the associated <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>.</li>
+        <li>If <i>value</i> contains a colon (<code>:</code>), it is either
+          an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>:
+          <ol class="algorithm">
+            <li>Split <i>value</i> into a <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> and <i>suffix</i>
+              at the first occurrence of a colon (<code>:</code>).</li>
+            <li>If <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> is underscore (<code>_</code>)
+              or <i>suffix</i> begins with double-forward-slash
+              (<code>//</code>), return <i>value</i> as it is already an
+              <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
+            <li>If <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, it
+              contains a key that equals <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>, and the value
+              associated with the key that equals <i>prefix</i> in <i>defined</i>
+              is not <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, invoke the
+              <a href="#create-term-definition">Create Term Definition algorithm</a>,
+              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+              <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>, <i>prefix</i> as <i>term</i>,
+              and <i>defined</i>. This will ensure that a
+              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> is created for <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>
+              in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> during
+              <a href="#context-processing-algorithm">Context Processing</a>.</li>
+            <li>If <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> contains a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
+              for <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>, return the result of concatenating
+              the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> associated with <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> and
+              <i>suffix</i>.</li>
+            <li>Return <i>value</i> as it is already an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
+          </ol>
+        </li>
+        <li>If <i>vocab</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, and
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>,
+          return the result of concatenating the <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>
+          with <i>value</i>.</li>
+        <li>Otherwise, if <i>document relative</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
+          set <i>value</i> to the result of resolving <i>value</i> against
+          the <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Only the basic algorithm in
+          <cite><a href="http://tools.ietf.org/html/rfc3986#section-5.2">section 5.2</a></cite>
+          of [<cite><a class="bibref" href="#bib-RFC3986">RFC3986</a></cite>] is used; neither
+          <cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.2">Syntax-Based Normalization</a></cite> nor
+          <cite><a href="http://tools.ietf.org/html/rfc3986#section-6.2.3">Scheme-Based Normalization</a></cite>
+          are performed. Characters additionally allowed in <abbr title="Internationalized Resource Identifier">IRI</abbr> references are treated
+          in the same way that unreserved characters are treated in URI references, per
+          <cite><a href="http://tools.ietf.org/html/rfc3987#section-6.5">section 6.5</a></cite>
+          of [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>].</li>
+        <li>If <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and
+          <i>value</i> is not an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an
+          <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid <abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a></code>
+          error has been detected and processing is aborted.</li>
+        <li>Otherwise, return <i>value</i> as is.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of IRI Expansion -->
+
+</div>
+<!-- end of Context Processing section -->
+
+
+
+<div class="section" id="expansion-algorithms">
+
+<!--OddPage-->
+<h2><span class="secno">7. </span>Expansion Algorithms</h2>
+
+  <div class="section" id="expansion-algorithm">
+    <h3><span class="secno">7.1 </span>Expansion Algorithm</h3>
+
+    <p>This algorithm expands a JSON-LD document, such that all <a class="tref internalDFN" title="context" href="#dfn-context">context</a>
+      definitions are removed, all <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> and
+      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> are expanded to
+      <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>,
+      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>, or
+      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> and all
+      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a> are expressed in
+      <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a> in <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a>.</p>
+
+    <div class="informative section">
+      <h4 id="overview-3">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>Starting with its root <i>element</i>, we can process the
+        JSON-LD document recursively, until we have a fully
+        <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expanded</a> <i>result</i>. When
+        <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expanding</a> an <i>element</i>, we can treat
+        each one differently according to its type, in order to break down the
+        problem:</p>
+
+      <ol>
+        <li>If the <i>element</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, there is nothing
+          to expand.</li>
+        <li>Otherwise, if <i>element</i> is a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>, we expand it
+          according to the <a href="#value-expansion">Value Expansion algorithm</a>.</li>
+        <li>Otherwise, if the <i>element</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, then we expand
+          each of its items recursively and return them in a new
+          <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+        <li>Otherwise, <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. We expand
+          each of its keys, adding them to our <i>result</i>, and then we expand
+          each value for each key recursively. Some of the keys will be
+          <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or
+          <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> and others will be
+          <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> or simply ignored because
+          they do not have definitions in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. Any
+          <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> will be expanded using the
+          <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>.
+        </li>
+      </ol>
+
+      <p>Finally, after ensuring <i>result</i> is in an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
+        we return <i>result</i>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-3">Algorithm</h4>
+
+      <p>The algorithm takes three input variables: an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+        an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and an <i>element</i> to be expanded.
+        To begin, the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is set to the result of performing,
+        <a href="#context-processing-algorithm">Context Processing</a> on the passed
+        <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>,
+        or empty if <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
+        is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
+        and <i>element</i> is set to the <a class="tref internalDFN" title="json-ld-input" href="#dfn-json-ld-input">JSON-LD input</a>.</p>
+
+      <ol class="algorithm">
+        <li>If <i>element</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
+        <li>If <i>element</i> is a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>,
+          <ol class="algorithm">
+            <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or <code>@graph</code>,
+              drop the free-floating <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a> by returning <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
+            <li>Return the result of the
+              <a href="#value-expansion">Value Expansion algorithm</a>, passing the
+              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and
+              <i>element</i> as <i>value</i>.</li>
+          </ol>
+        </li>
+        <li>If <i>element</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
+          <ol class="algorithm">
+            <li>Initialize an empty array, <i>result</i>.</li>
+            <li>For each <i>item</i> in <i>element</i>:
+              <ol class="algorithm">
+                <li>Initialize <i>expanded item</i> to the result of using this
+                  algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+                  <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>item</i> as <i>element</i>.</li>
+                <li>If the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is <code>@list</code> or its
+                  <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> is set to <code>@list</code>, the
+                  <i>expanded item</i> must not be an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> or a
+                  <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, otherwise a
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists">list of lists</a></code>
+                  error has been detected and processing is aborted.</li>
+                <li>If <i>expanded item</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, append each
+                  of its items to <i>result</i>. Otherwise, if
+                  <i>expanded item</i> is not null, append it to <i>result</i>.</li>
+              </ol>
+            </li>
+            <li>Return <i>result</i>.</li>
+          </ol>
+        </li>
+        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+        <li>If <i>element</i> contains the key <code>@context</code>, set
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> to the result of the
+          <a href="#context-processing-algorithm">Context Processing algorithm</a>,
+          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and the value of the
+          <code>@context</code> key as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
+        <li>Initialize an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, <i>result</i>.</li>
+        <li>For each <i>key</i> and <i>value</i> in <i>element</i>,
+          ordered lexicographically by <i>key</i>:
+          <ol class="algorithm">
+            <li>If <i>key</i> is <code>@context</code>, continue to
+              the next <i>key</i>.</li>
+            <li>Set <i>expanded property</i> to the result of
+              using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>,
+              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>key</i> for
+              <i>value</i>, and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>.</li>
+            <li>If <i>expanded property</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or it neither
+              contains a colon (<code>:</code>) nor it is a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>,
+              drop <i>key</i> by continuing to the next <i>key</i>.</li>
+            <li>If <i>expanded property</i> is a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>:
+              <ol class="algorithm">
+                <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> equals <code>@reverse</code>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-map">invalid reverse property map</a></code>
+                  error has been detected and processing is aborted.</li>
+                <li>If <i>result</i> has already an <i>expanded property</i> member, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.colliding-keywords">colliding keywords</a></code>
+                  error has been detected and processing is aborted.</li>
+                <li>If <i>expanded property</i> is <code>@id</code> and
+                  <i>value</i> is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--id-value">invalid @id value</a></code>
+                  error has been detected and processing is aborted. Otherwise,
+                  set <i>expanded value</i> to the result of using the
+                  <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>,
+                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>value</i>, and <a class="tref internalDFN" title="true" href="#dfn-true">true</a>
+                  for <i>document relative</i>.</li>
+                <li>If <i>expanded property</i> is <code>@type</code> and <i>value</i>
+                  is neither a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> nor an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of
+                  <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-value">invalid type value</a></code>
+                  error has been detected and processing is aborted. Otherwise,
+                  set <i>expanded value</i> to the result of using the
+                  <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
+                  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
+                  and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i> to expand the <i>value</i>
+                  or each of its items.</li>
+                <li>If <i>expanded property</i> is <code>@graph</code>, set
+                  <i>expanded value</i> to the result of using this algorithm
+                  recursively passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <code>@graph</code>
+                  for <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>value</i> for <i>element</i>.</li>
+                <li>If <i>expanded property</i> is <code>@value</code> and
+                  <i>value</i> is not a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a> or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object-value">invalid value object value</a></code>
+                  error has been detected and processing is aborted. Otherwise,
+                  set <i>expanded value</i> to <i>value</i>. If <i>expanded value</i>
+                  is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set the <code>@value</code>
+                  member of <i>result</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and continue with the
+                  next <i>key</i> from <i>element</i>. Null values need to be preserved
+                  in this case as the meaning of an <code>@type</code> member depends
+                  on the existence of an <code>@value</code> member.</li>
+                <li>If <i>expanded property</i> is <code>@language</code> and
+                  <i>value</i> is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-string">invalid language-tagged string</a></code>
+                  error has been detected and processing is aborted. Otherwise,
+                  set <i>expanded value</i> to lowercased <i>value</i>.</li>
+                <li>If <i>expanded property</i> is <code>@index</code> and
+                  <i>value</i> is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--index-value">invalid @index value</a></code>
+                  error has been detected and processing is aborted. Otherwise,
+                  set <i>expanded value</i> to <i>value</i>.</li>
+                <li>If <i>expanded property</i> is <code>@list</code>:
+                  <ol class="algorithm">
+                    <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or
+                      <code>@graph</code>, continue with the next <i>key</i>
+                      from <i>element</i> to remove the free-floating list..</li>
+                    <li>Otherwise, initialize <i>expanded value</i> to the result of using
+                      this algorithm recursively passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+                      <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>value</i> for <i>element</i>.</li>
+                    <li>If <i>expanded value</i> is a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, a
+                      <code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists">list of lists</a></code>
+                      error has been detected and processing is aborted.</li>
+                  </ol>
+                </li>
+                <li>If <i>expanded property</i> is <code>@set</code>, set
+                  <i>expanded value</i> to the result of using this algorithm
+                  recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+                  <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>value</i> for
+                  <i>element</i>.</li>
+                <li>If <i>expanded property</i> is <code>@reverse</code> and
+                  <i>value</i> is not a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, an
+                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value">invalid @reverse value</a></code>
+                  error has been detected and processing is aborted. Otherwise
+                  <ol class="algorithm">
+                    <li>Initialize <i>expanded value</i> to the result of using this
+                      algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+                      <code>@reverse</code> as <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and
+                      <i>value</i> as <i>element</i>.</li>
+                    <li>If <i>expanded value</i> contains an <code>@reverse</code> member,
+                      i.e., properties that are reversed twice, execute for each of its
+                      <i>property</i> and <i>item</i> the following steps:
+                      <ol class="algorithm">
+                        <li>If <i>result</i> does not have a <i>property</i> member, create
+                          one and set its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                        <li>Append <i>item</i> to the value of the <i>property</i> member
+                          of <i>result</i>.</li>
+                      </ol>
+                    </li>
+                    <li>If <i>expanded value</i> contains members other than <code>@reverse</code>:
+                      <ol class="algorithm">
+                        <li>If <i>result</i> does not have an <code>@reverse</code> member, create
+                          one and set its value to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+                        <li>Reference the value of the <code>@reverse</code> member in <i>result</i>
+                          using the variable <i>reverse map</i>.</li>
+                        <li>For each <i>property</i> and <i>items</i> in <i>expanded value</i>
+                          other than <code>@reverse</code>:
+                          <ol class="algorithm">
+                            <li>For each <i>item</i> in <i>items</i>:
+                              <ol class="algorithm">
+                                <li>If <i>item</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> or <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, an
+                                  <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value">invalid reverse property value</a></code>
+                                  has been detected and processing is aborted.</li>
+                                <li>If <i>reverse map</i> has no <i>property</i> member, create one
+                                  and initialize its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                                <li>Append <i>item</i> to the value of the <i>property</i>
+                                  member in <i>reverse map</i>.</li>
+                              </ol>
+                            </li>
+                          </ol>
+                        </li>
+                      </ol>
+                    </li>
+                    <li>Continue with the next <i>key</i> from <i>element</i>.</li>
+                  </ol>
+                </li>
+                <li>Unless <i>expanded value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set
+                  the <i>expanded property</i> member of <i>result</i> to
+                  <i>expanded value</i>.</li>
+                <li>Continue with the next <i>key</i> from <i>element.</i>.</li>
+              </ol>
+            </li>
+            <li>Otherwise, if <i>key</i>'s <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> in
+              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is <code>@language</code> and
+              <i>value</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> then <i>value</i>
+              is expanded from a <a class="tref externalDFN" title="language-map" href="../json-ld/#dfn-language-map">language map</a>
+              as follows:
+              <ol class="algorithm">
+                <li>Initialize <i>expanded value</i> to an empty
+                  <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                <li>For each key-value pair <i>language</i>-<i>language value</i>
+                  in <i>value</i>, ordered lexicographically by <i>language</i>:
+                  <ol class="algorithm">
+                    <li>If <i>language value</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+                      set it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
+                      <i>language value</i>.</li>
+                    <li>For each <i>item</i> in <i>language value</i>:
+                      <ol class="algorithm">
+                        <li><i>item</i> must be a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>,
+                          otherwise an
+                          <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-map-value">invalid language map value</a></code>
+                          error has been detected and processing is aborted.</li>
+                        <li>Append a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> to
+                          <i>expanded value</i> that consists of two
+                          key-value pairs: (<code>@value</code>-<i>item</i>)
+                          and (<code>@language</code>-lowercased
+                          <i>language</i>).</li>
+                      </ol>
+                    </li>
+                  </ol>
+                </li>
+              </ol>
+            </li>
+            <li>Otherwise, if <i>key</i>'s <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> in
+              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is <code>@index</code> and
+              <i>value</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> then <i>value</i>
+              is expanded from an index map as follows:
+              <ol class="algorithm">
+                <li>Initialize <i>expanded value</i> to an empty
+                  <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                <li>For each key-value pair <i>index</i>-<i>index value</i>
+                  in <i>value</i>, ordered lexicographically by <i>index</i>:
+                  <ol class="algorithm">
+                    <li>If <i>index value</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+                      set it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
+                      <i>index value</i>.</li>
+                    <li>Initialize <i>index value</i> to the result of
+                      using this algorithm recursively, passing
+                      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+                      <i>key</i> as <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>,
+                      and <i>index value</i> as <i>element</i>.</li>
+                    <li>For each <i>item</i> in <i>index value</i>:
+                      <ol class="algorithm">
+                        <li>If <i>item</i> does not have the key
+                          <code>@index</code>, add the key-value pair
+                          (<code>@index</code>-<i>index</i>) to
+                          <i>item</i>.</li>
+                        <li>Append <i>item</i> to <i>expanded value</i>.</li>
+                      </ol>
+                    </li>
+                  </ol>
+                </li>
+              </ol>
+            </li>
+            <li>Otherwise, initialize <i>expanded value</i> to the result of
+              using this algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+              <i>key</i> for <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>value</i>
+              for <i>element</i>.</li>
+            <li>If <i>expanded value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, ignore <i>key</i>
+              by continuing to the next <i>key</i> from <i>element</i>.</li>
+            <li>If the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> associated to <i>key</i> in
+              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is <code>@list</code> and
+              <i>expanded value</i> is not already a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>,
+              convert <i>expanded value</i> to a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>
+              by first setting it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
+              <i>expanded value</i> if it is not already an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
+              and then by setting it to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing
+              the key-value pair <code>@list</code>-<i>expanded value</i>.</li>
+            <li>Otherwise, if the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> associated to
+              <i>key</i> indicates that it is a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a>
+              <ol class="algorithm">
+                <li>If <i>result</i> has no <code>@reverse</code> member, create
+                  one and initialize its value to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+                <li>Reference the value of the <code>@reverse</code> member in <i>result</i>
+                  using the variable <i>reverse map</i>.
+                </li><li>If <i>expanded value</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set
+                  it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing <i>expanded value</i>.</li>
+                <li>For each <i>item</i> in <i>expanded value</i>
+                  <ol class="algorithm">
+                    <li>If <i>item</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> or <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, an
+                      <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value">invalid reverse property value</a></code>
+                      has been detected and processing is aborted.</li>
+                    <li>If <i>reverse map</i> has no <i>expanded property</i> member,
+                      create one and initialize its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                    <li>Append <i>item</i> to the value of the <i>expanded property</i>
+                      member of <i>reverse map</i>.</li>
+                  </ol>
+                </li>
+              </ol>
+            </li>
+            <li>Otherwise, if <i>key</i> is not a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a>:
+              <ol class="algorithm">
+                <li>If <i>result</i> does not have an <i>expanded property</i>
+                  member, create one and initialize its value to an empty
+                  <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                <li>Append <i>expanded value</i> to value of the <i>expanded property</i>
+                  member of <i>result</i>.</li>
+              </ol>
+            </li>
+          </ol>
+        </li>
+        <li>If <i>result</i> contains the key <code>@value</code>:
+          <ol class="algorithm">
+            <li>The <i>result</i> must not contain any keys other than
+              <code>@value</code>, <code>@language</code>, <code>@type</code>,
+              and <code>@index</code>. It must not contain both the
+              <code>@language</code> key and the <code>@type</code> key.
+              Otherwise, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object">invalid value object</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>If the value of <i>result</i>'s <code>@value</code> key is
+              <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, then set <i>result</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
+            <li>Otherwise, if the value of <i>result</i>'s <code>@value</code> member
+              is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> and <i>result</i> contains the key
+              <code>@language</code>, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-value">invalid language-tagged value</a></code>
+              error has been detected (only <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>
+              can be language-tagged) and processing is aborted.</li>
+            <li>Otherwise, if the <i>result</i> has a <code>@type</code> member
+              and its value is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-typed-value">invalid typed value</a></code>
+              error has been detected and processing is aborted.</li>
+          </ol>
+        </li>
+        <li>Otherwise, if <i>result</i> contains the key <code>@type</code>
+          and its associated value is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set it to
+          an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only the associated value.</li>
+        <li>Otherwise, if <i>result</i> contains the key <code>@set</code>
+          or <code>@list</code>:
+          <ol class="algorithm">
+            <li>The <i>result</i> must contain at most one other key and that
+              key must be <code>@index</code>. Otherwise, an
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-set-or-list-object">invalid set or list object</a></code>
+              error has been detected and processing is aborted.</li>
+            <li>If <i>result</i> contains the key <code>@set</code>, then
+              set <i>result</i> to the key's associated value.</li>
+          </ol>
+        </li>
+        <li>If <i>result</i> contains only the key
+          <code>@language</code>, set <i>result</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
+        <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or <code>@graph</code>,
+          drop free-floating values as follows:
+          <ol class="algorithm">
+            <li>If <i>result</i> is an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> or contains
+              the keys <code>@value</code> or <code>@list</code>, set <i>result</i> to
+              <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
+            <li>Otherwise, if <i>result</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> whose only
+              key is <code>@id</code>, set <i>result</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
+          </ol>
+        </li>
+        <li>Return <i>result</i>.</li>
+      </ol>
+
+      <p>If, after the above algorithm is run, the result is a
+        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that contains only an <code>@graph</code> key, set the
+        result to the value of <code>@graph</code>'s value. Otherwise, if the result
+        is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Finally, if
+        the result is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, then set the result to an
+        <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only the result.</p>
+    </div>
+  </div>
+<!-- end of Expansion Algorithm -->
+
+
+
+  <div class="section" id="value-expansion">
+    <h3><span class="secno">7.2 </span>Value Expansion</h3>
+
+    <p>Some values in JSON-LD can be expressed in a
+      <a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form">compact form</a>. These values are required
+      to be <a class="tref internalDFN" title="expansion" href="#dfn-expansion">expanded</a> at times when processing
+      JSON-LD documents. A value is said to be in <dfn title="expanded-form" id="dfn-expanded-form">expanded form</dfn>
+      after the application of this algorithm.</p>
+
+    <div class="informative section">
+      <h4 id="overview-4">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> in the
+        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> set to <code>@id</code> or <code>@vocab</code>,
+        a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with a single member <code>@id</code> whose
+        value is the result of using the
+        <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a> on <i>value</i>
+        is returned.</p>
+
+      <p>Otherwise, the result will be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing
+        an <code>@value</code> member whose value is the passed <i>value</i>.
+        Additionally, an <code>@type</code> member will be included if there is a
+        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> associated with the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
+        or an <code>@language</code> member if <i>value</i> is a
+        <a class="tref internalDFN" title="string" href="#dfn-string">string</a> and there is <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> associated
+        with the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-4">Algorithm</h4>
+
+      <p>The algorithm takes three required inputs: an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+        an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and a <i>value</i> to expand.</p>
+
+      <ol class="algorithm">
+        <li>If the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
+          in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that is <code>@id</code>, return a new
+          <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing a single key-value pair where the
+          key is <code>@id</code> and the value is the result of using the
+          <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>value</i>, and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for
+          <i>document relative</i>.</li>
+        <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> in
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that is <code>@vocab</code>, return
+          a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing a single key-value pair
+          where the key is <code>@id</code> and the value is the result of
+          using the <a href="#iri-expansion"><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion algorithm</a>, passing
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <i>value</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for
+          <i>vocab</i>, and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for
+          <i>document relative</i>.</li>
+        <li>Otherwise, initialize <i>result</i> to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
+          with an <code>@value</code> member whose value is set to
+          <i>value</i>.</li>
+        <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> in
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, add an <code>@type</code> member to
+          <i>result</i> and set its value to the value associated with the
+          <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>.</li>
+        <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>:
+          <ol class="algorithm">
+            <li>If a <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> is associated with
+              <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+              add an <code>@language</code> to <i>result</i> and set its
+              value to the language code associated with the
+              <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>; unless the
+              <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in
+              which case no member is added.</li>
+            <li>Otherwise, if the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a
+              <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>, add an <code>@language</code>
+              to <i>result</i> and set its value to the
+              <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>.</li>
+          </ol>
+        </li>
+        <li>Return <i>result</i>.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Value Expansion -->
+
+
+</div>
+<!-- end of Expansion section -->
+
+
+
+<div class="section" id="compaction-algorithms">
+
+<!--OddPage-->
+<h2><span class="secno">8. </span>Compaction Algorithms</h2>
+
+  <div class="section" id="compaction-algorithm">
+    <h3><span class="secno">8.1 </span>Compaction Algorithm</h3>
+
+    <p>This algorithm compacts a JSON-LD document, such that the given
+      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is applied. This must result in shortening
+      any applicable <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> to
+      <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or
+      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>, any applicable
+      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> to
+      <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword aliases</a>, and
+      any applicable <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a>
+      expressed in <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a> to simple values such as
+      <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> or
+      <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>.</p>
+
+    <div class="informative section">
+      <h4 id="overview-5">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>Starting with its root <i>element</i>, we can process the
+        JSON-LD document recursively, until we have a fully
+        <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compacted</a> <i>result</i>. When
+        <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compacting</a> an <i>element</i>, we can treat
+        each one differently according to its type, in order to break down the
+        problem:</p>
+
+      <ol>
+        <li>If the <i>element</i> is a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>, it is
+          already in <a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form">compacted form</a>, so we simply return it.</li>
+        <li>If the <i>element</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, we compact
+          each of its items recursively and return them in a new
+          <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. The value
+          of each key in element is compacted recursively. Some of the keys will be
+          compacted, using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+          to <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>
+          and others will be compacted from <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> to
+          <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword aliases</a> or simply left
+          unchanged because they do not have definitions in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>.
+          Values will be converted to <a class="tref internalDFN" title="compacted-form" href="#dfn-compacted-form">compacted form</a> via the
+          <a href="#value-compaction">Value Compaction algorithm</a>. Some data
+          will be reshaped based on <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>
+          specified in the context such as <code>@index</code> or <code>@language</code>
+          maps.</li>
+      </ol>
+
+      <p>The final output is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with a <code>@context</code>
+        key, if a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> was given, where the <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
+        is either <i>result</i> or a wrapper for it where <i>result</i> appears
+        as the value of an (aliased) <code>@graph</code> key because <i>result</i>
+        contained two or more items in an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-5">Algorithm</h4>
+
+      <p>The algorithm takes five required input variables: an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+        an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, an
+        <i>element</i> to be compacted, and a flag
+        <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>.
+        To begin, the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is set to the result of
+        performing <a href="#context-processing-algorithm">Context Processing</a>
+        on the passed <a class="tref internalDFN" title="context" href="#dfn-context">context</a>, the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> is
+        set to the result of performing the
+        <a href="#inverse-context-creation">Inverse Context Creation algorithm</a>
+        on <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is
+        set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, <i>element</i> is set to the result of
+        performing the <a href="#expansion-algorithm">Expansion algorithm</a>
+        on the <a class="tref internalDFN" title="json-ld-input" href="#dfn-json-ld-input">JSON-LD input</a>, and, if not passed,
+        <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
+        is set to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>.</p>
+
+      <ol class="algorithm">
+        <li>If <i>element</i> is a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>, it is already in its most
+          compact form, so simply return <i>element</i>.</li>
+        <li>If <i>element</i> is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>:
+          <ol class="algorithm">
+            <li>Initialize <i>result</i> to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+            <li>For each <i>item</i> in <i>element</i>:
+              <ol class="algorithm">
+                <li>Initialize <i>compacted item</i> to the result of using this
+                  algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+                  <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and
+                  em&gt;item for <i>element</i>.</li>
+                <li>If <i>compacted item</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, then append
+                  it to <i>result</i>.</li>
+              </ol>
+            </li>
+            <li>If <i>result</i> contains only one item (it has a length of
+              <code>1</code>), <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has no
+              <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, and
+              <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
+              is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, set <i>result</i> to its only item.</li>
+            <li>Return <i>result</i>.</li>
+          </ol>
+        </li>
+        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+        <li>If <i>element</i> has an <code>@value</code> or <code>@id</code>
+          member and the result of using the
+          <a href="#value-compaction">Value Compaction algorithm</a>,
+          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+          <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>,and <i>element</i> as <i>value</i> is
+          a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a>, return that result.</li>
+        <li>Initialize <i>inside reverse</i> to <a class="tref internalDFN" title="true" href="#dfn-true">true</a> if
+          <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> equals <code>@reverse</code>,
+          otherwise to <a class="tref internalDFN" title="false" href="#dfn-false">false</a>.</li>
+        <li>Initialize <i>result</i> to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+        <li>For each key <i>expanded property</i> and value <i>expanded value</i>
+          in <i>element</i>,  ordered lexicographically by <i>expanded property</i>:
+          <ol class="algorithm">
+            <li>If <i>expanded property</i> is <code>@id</code> or
+              <code>@type</code>:
+                <ol class="algorithm">
+                  <li>If <i>expanded value</i> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>,
+                    then initialize <i>compacted value</i> to the result
+                    of using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+                    passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+                    <i>expanded value</i> for <i>iri</i>,
+                    and <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i> if
+                    <i>expanded property</i> is <code>@type</code>,
+                    <a class="tref internalDFN" title="false" href="#dfn-false">false</a> otherwise.</li>
+                  <li>Otherwise, <i>expanded value</i> must be a
+                    <code>@type</code> <a class="tref internalDFN" title="array" href="#dfn-array">array</a>:
+                    <ol class="algorithm">
+                      <li>Initialize <i>compacted value</i> to an empty
+                        <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                      <li>For each item <i>expanded type</i> in
+                        <i>expanded value</i>, append the result of
+                        of using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+                        passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+                        <i>expanded type</i> for <i>iri</i>, and
+                        <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>,
+                        to <i>compacted value</i>.</li>
+                      <li>If <i>compacted value</i> contains only one
+                        item (it has a length of <code>1</code>), then
+                        set <i>compacted value</i> to its only item.</li>
+                    </ol>
+                  </li>
+                  <li>Initialize <i>alias</i> to the result of using the
+                    <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+                    passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, and
+                    <i>expanded property</i> for <i>iri</i>.</li>
+                  <li>Add a member <i>alias</i> to <i>result</i> whose value is
+                    set to <i>compacted value</i> and continue to the next
+                    <i>expanded property</i>.</li>
+                </ol>
+              </li>
+            <li>If <i>expanded property</i> is <code>@reverse</code>:
+              <ol class="algorithm">
+                <li>Initialize <i>compacted value</i> to the result of using this
+                  algorithm recursively, passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+                  <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, <code>@reverse</code> for
+                  <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>expanded value</i>
+                  for <i>element</i>.</li>
+                <li>For each <i>property</i> and <i>value</i> in <i>compacted value</i>:
+                  <ol class="algorithm">
+                    <li>If the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> for <i>property</i> in the
+                      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> indicates that <i>property</i> is
+                      a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a>
+                      <ol class="algorithm">
+                        <li>If
+                          <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
+                          is <a class="tref internalDFN" title="false" href="#dfn-false">false</a> and <i>value</i> is not an
+                          <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set <i>value</i> to a new
+                          <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only <i>value</i>.</li>
+                        <li>If <i>property</i> is not a member of
+                          <i>result</i>, add one and set its value to <i>value</i>.</li>
+                        <li>Otherwise, if the value of the <i>property</i> member of
+                          <i>result</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set it to a new
+                          <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only the value. Then
+                          append <i>value</i> to its value if <i>value</i>
+                          is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, otherwise append each
+                          of its items.</li>
+                        <li>Remove the <i>property</i> member from
+                          <i>compacted value</i>.</li>
+                      </ol>
+                    </li>
+                  </ol>
+                </li>
+                <li>If <i>compacted value</i> has some remaining members, i.e.,
+                  it is not an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>:
+                  <ol class="algorithm">
+                    <li>Initialize <i>alias</i> to the result of using the
+                      <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+                      passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, and
+                      <code>@reverse</code> for <i>iri</i>.</li>
+                    <li>Set the value of the <i>alias</i> member of <i>result</i> to
+                      <i>compacted value</i> and continue with the next
+                      <i>expanded property</i> from <i>element</i>.</li>
+                  </ol>
+              </li></ol>
+            </li>
+            <li>If <i>expanded property</i> is <code>@index</code> and
+              <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>
+              in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that is <code>@index</code>,
+              then the compacted result will be inside of an <code>@index</code>
+              container, drop the <code>@index</code> property by continuing
+              to the next <i>expanded property</i>.</li>
+            <li>Otherwise, if <i>expanded property</i> is <code>@index</code>,
+              <code>@value</code>, or <code>@language</code>:
+              <ol class="algorithm">
+                <li>Initialize <i>alias</i> to the result of using
+                  the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, and
+                  <i>expanded property</i> for <i>iri</i>.</li>
+                <li>Add a member <i>alias</i> to <i>result</i> whose value is
+                  set to <i>expanded value</i> and continue with the next
+                  <i>expanded property</i>.</li>
+              </ol>
+            </li>
+            <li>If <i>expanded value</i> is an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>:
+              <ol class="algorithm">
+                <li>Initialize <i>item active property</i> to the result of
+                  using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+                  <i>expanded property</i> for <i>iri</i>,
+                  <i>expanded value</i> for <i>value</i>,
+                  <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>, and
+                  <i>inside reverse</i>.</li>
+                <li>If <i>result</i> does not have the key that equals
+                  <i>item active property</i>, set this key's value in
+                  <i>result</i> to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Otherwise, if
+                  the key's value is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, then set it
+                  to one containing only the value.</li>
+              </ol>
+            </li>
+            <li>
+              At this point, <i>expanded value</i> must be an
+              <a class="tref internalDFN" title="array" href="#dfn-array">array</a> due to the
+              <a href="#expansion-algorithm">Expansion algorithm</a>.
+              For each item <i>expanded item</i> in <i>expanded value</i>:
+              <ol class="algorithm">
+                <li>Initialize <i>item active property</i> to the result of using
+                  the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+                  <i>expanded property</i> for <i>iri</i>,
+                  <i>expanded item</i> for <i>value</i>,
+                  <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>, and
+                  <i>inside reverse</i>.</li>
+                <li>Initialize <i>container</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. If there
+                  is a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> for
+                  <i>item active property</i> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+                  set <i>container</i> to its value.</li>
+                <li>Initialize <i>compacted item</i> to the result of using
+                  this algorithm recursively, passing
+                  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+                  <i>item active property</i> for <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>,
+                  <i>expanded item</i> for <i>element</i> if it does
+                  not contain the key <code>@list</code>, otherwise pass
+                  the key's associated value for <i>element</i>.</li>
+                <li>
+                  If <i>expanded item</i> is a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>:
+                  <ol class="algorithm">
+                    <li>If <i>compacted item</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
+                      then set it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only
+                      <i>compacted item</i>.</li>
+                    <li>If <i>container</i> is not <code>@list</code>:
+                      <ol class="algorithm">
+                        <li>Convert <i>compacted item</i> to a
+                          <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a> by setting it to a
+                          <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing key-value pair
+                          where the key is the result of the
+                          <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+                          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+                          <code>@list</code> for <i>iri</i>, and <i>compacted item</i>
+                          for <i>value</i>.</li>
+                        <li>If <i>expanded item</i> contains the key
+                          <code>@index</code>, then add a key-value pair
+                          to <i>compacted item</i> where the key is the
+                          result of the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+                          passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+                          <code>@index</code> as <i>iri</i>, and the associated with the
+                          <code>@index</code> key in <i>expanded item</i> as <i>value</i>.</li>
+                      </ol>
+                    </li>
+                    <li>Otherwise, <i>item active property</i> must not be a key
+                      in <i>result</i> because there cannot be two
+                      <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list objects</a> associated
+                      with an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> that has a
+                      <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>; a
+                      <code class="error"><a href="#idl-def-JsonLdErrorCode.compaction-to-list-of-lists">compaction to list of lists</a></code>
+                      error has been detected and processing is aborted.</li>
+                  </ol>
+                </li>
+                <li>
+                  If <i>container</i> is <code>@language</code> or
+                  <code>@index</code>:
+                  <ol class="algorithm">
+                    <li>If <i>item active property</i> is a key in
+                      <i>result</i>, then initialize <i>map object</i> to
+                      its associated value, otherwise initialize it to an empty
+                      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+                    <li>If <i>container</i> is <code>@language</code> and
+                      <i>compacted item</i> contains the key
+                      <code>@value</code>, then set <i>compacted item</i>
+                      to the value associated with its <code>@value</code> key.</li>
+                    <li>Initialize <i>map key</i> to the value associated with
+                      with the key that equals <i>container</i> in
+                      <i>expanded item</i>.</li>
+                    <li>If <i>map key</i> is not a key in <i>map object</i>,
+                      then set this key's value in <i>map object</i>
+                      to <i>compacted item</i>. Otherwise, if the value
+                      is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, then set it to one
+                      containing only the value and then append
+                      <i>compacted item</i> to it.</li>
+                  </ol>
+                </li>
+                <li>
+                  Otherwise,
+                  <ol class="algorithm">
+                    <li>If
+                      <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
+                      is <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, <i>container</i> is <code>@set</code> or
+                      <code>@list</code>, or <i>expanded property</i> is
+                      <code>@list</code> or <code>@graph</code> and
+                      <i>compacted item</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
+                      set it to a new <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+                      containing only <i>compacted item</i>.</li>
+                    <li>If <i>item active property</i> is not a key in
+                      <i>result</i> then add the key-value pair,
+                      (<i>item active property</i>-<i>compacted item</i>),
+                      to <i>result</i>.</li>
+                    <li>Otherwise, if the value associated with the key that
+                      equals <i>item active property</i> in <i>result</i>
+                      is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, set it to a new
+                      <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing only the value. Then
+                      append <i>compacted item</i> to the value if
+                      <i>compacted item</i> is not an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
+                      otherwise, concatenate it.</li>
+                  </ol>
+                </li>
+              </ol>
+            </li>
+          </ol>
+        </li>
+        <li>Return <i>result</i>.</li>
+      </ol>
+
+      <p>If, after the algorithm outlined above is run, the result <i>result</i>
+        is an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, replace it with a new
+        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with a single member whose key is the result
+        of using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+        passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, and
+        <code>@graph</code> as <i>iri</i> and whose value is the <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+        <i>result</i>. Finally, if a <i>context</i> has been passed, add an
+        <code>@context</code> member to <i>result</i> and set its value to
+        the passed <i>context</i>.</p>
+    </div>
+  </div>
+<!-- end of Compaction -->
+
+
+  <div class="section" id="inverse-context-creation">
+    <h3><span class="secno">8.2 </span>Inverse Context Creation</h3>
+
+    <p>When there is more than one <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that could be chosen
+      to compact an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, it has to be ensured that the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+      selection is both deterministic and represents the most context-appropriate
+      choice whilst taking into consideration algorithmic complexity.</p>
+
+    <p>In order to make <a class="tref internalDFN" title="term" href="#dfn-term">term</a> selections, the concept of an
+      <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> is introduced. An <dfn title="inverse-context" id="dfn-inverse-context">inverse context</dfn>
+      is essentially a reverse lookup table that maps
+      <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>,
+      <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mappings</a>, and
+      <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mappings</a> to a simple
+      <a class="tref internalDFN" title="term" href="#dfn-term">term</a> for a given <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. A
+      <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> only needs to be generated for an
+      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> if it is being used for <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compaction</a>.</p>
+
+    <p>To make use of an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, a list of preferred
+      <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a> and the
+      <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> are gathered
+      for a particular value associated with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. These parameters
+      are then fed to the <a href="#term-selection">Term Selection algorithm</a>,
+      which will find the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that most appropriately
+      matches the value's mappings.</p>
+
+    <div class="informative section">
+      <h4 id="overview-6">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>To create an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> for a given
+        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, each <a class="tref internalDFN" title="term" href="#dfn-term">term</a> in the
+        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is visited, ordered by length, shortest
+        first (ties are broken by choosing the lexicographically least
+        <a class="tref internalDFN" title="term" href="#dfn-term">term</a>). For each <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, an entry is added to
+        the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> for each possible combination of
+        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> and <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
+        or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> that would legally match the
+        <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. Illegal matches include differences between a
+        value's <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> and
+        that of the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. If a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> has no
+        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>, <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>, or
+        <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> (or some combination of these), then it
+        will have an entry in the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> using the special
+        key <code>@none</code>. This allows the
+        <a href="#term-selection">Term Selection algorithm</a> to fall back
+        to choosing more generic <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> when a more
+        specifically-matching <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is not available for a particular
+        <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> and value combination.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-6">Algorithm</h4>
+
+      <p>The algorithm takes one required input: the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that
+        the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> is being created for.</p>
+
+      <ol class="algorithm">
+        <li>Initialize <i>result</i> to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+        <li>Initialize <i>default language</i> to <code>@none</code>. If the
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>,
+          set <i>default language</i> to it.</li>
+        <li>For each key <a class="tref internalDFN" title="term" href="#dfn-term">term</a> and value <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in
+          the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, ordered by shortest <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+          first (breaking ties by choosing the lexicographically least
+          <a class="tref internalDFN" title="term" href="#dfn-term">term</a>):
+          <ol class="algorithm">
+            <li>If the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
+              <a class="tref internalDFN" title="term" href="#dfn-term">term</a> cannot be selected during <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compaction</a>,
+              so continue to the next <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</li>
+            <li>Initialize <i>container</i> to <code>@none</code>. If there
+              is a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> in
+              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>, set <i>container</i> to
+              its associated value.</li>
+            <li>Initialize <i>iri</i> to the value of the <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>
+              for the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>.</li>
+            <li>If <i>iri</i> is not a key in <i>result</i>, add
+              a key-value pair where the key is <i>iri</i> and the value
+              is an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> to <i>result</i>.</li>
+            <li>Reference the value associated with the <i>iri</i> member in
+              <i>result</i> using the variable <i>container map</i>.</li>
+            <li>If <i>container</i> has no <i>container map</i> member,
+              create one and set its value to a new
+              <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with two members. The first member is
+              <code>@language</code> and its value is a new empty
+              <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, the second member is <code>@type</code>
+              and its value is a new empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+            <li>Reference the value associated with the <i>container</i> member
+              in <i>container map</i> using the variable <i>type/language map</i>.</li>
+            <li>If the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> indicates that the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+              represents a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a>:
+              <ol class="algorithm">
+                <li>Reference the value associated with the <code>@type</code>
+                  member in <i>type/language map</i> using the variable
+                  <i>type map</i>.</li>
+                <li>If <i>type map</i> does not have a <code>@reverse</code>
+                  member, create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+                  being processed.</li>
+              </ol>
+            </li>
+            <li>Otherwise, if <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has a
+              <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>:
+              <ol class="algorithm">
+                <li>Reference the value associated with the <code>@type</code>
+                  member in <i>type/language map</i> using the variable
+                  <i>type map</i>.</li>
+                <li>If <i>type map</i> does not have a member corresponding
+                  to the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> in <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>,
+                  create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+                  being processed.</li>
+              </ol>
+            </li>
+            <li>Otherwise, if <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has a
+              <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> (might be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>):
+              <ol class="algorithm">
+                <li>Reference the value associated with the <code>@language</code>
+                  member in <i>type/language map</i> using the variable
+                  <i>language map</i>.</li>
+                <li>If the <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> equals <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
+                  set <i>language</i> to <code>@null</code>; otherwise set it
+                  to the language code in <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>.</li>
+                <li>If <i>language map</i> does not have a <i>language</i> member,
+                  create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+                  being processed.</li>
+              </ol>
+            </li>
+            <li>Otherwise:
+              <ol class="algorithm">
+                <li>Reference the value associated with the <code>@language</code>
+                  member in <i>type/language map</i> using the variable
+                  <i>language map</i>.</li>
+                <li>If <i>language map</i> does not have a <i>default language</i>
+                  member, create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+                  being processed.</li>
+                <li>If <i>language map</i> does not have a <code>@none</code>
+                  member, create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+                  being processed.</li>
+                <li>Reference the value associated with the <code>@type</code>
+                  member in <i>type/language map</i> using the variable
+                  <i>type map</i>.</li>
+                <li>If <i>type map</i> does not have a <code>@none</code>
+                  member, create one and set its value to the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+                  being processed.</li>
+              </ol>
+            </li>
+          </ol>
+        </li>
+        <li>Return <i>result</i>.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Inverse Context Creation -->
+
+
+  <div class="section" id="iri-compaction">
+    <h3><span class="secno">8.3 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction</h3>
+
+    <p>This algorithm compacts an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> to a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> or
+      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> to a
+      <a class="tref internalDFN" title="keyword-alias" href="#dfn-keyword-alias">keyword alias</a>. A value that is associated with the
+      <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> may be passed in order to assist in selecting the most
+      context-appropriate <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</p>
+
+    <div class="informative section">
+      <h4 id="overview-7">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>If the passed <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, we simply
+        return <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. Otherwise, we first try to find a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+        that the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> can be compacted to if
+        it is relative to <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
+        <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>. In order to select the most appropriate
+        <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, we may have to collect information about the passed
+        <i>value</i>. This information includes which
+        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>
+        would be preferred for expressing the <i>value</i>, and what its
+        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> is. For
+        <a class="tref internalDFN" title="list-object" href="#dfn-list-object">JSON-LD lists</a>, the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
+        or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> will be chosen based on the most
+        specific values that work for all items in the list. Once this
+        information is gathered, it is passed to the
+        <a href="#term-selection">Term Selection algorithm</a>, which will
+        return the most appropriate <a class="tref internalDFN" title="term" href="#dfn-term">term</a> to use.</p>
+
+      <p>If no <a class="tref internalDFN" title="term" href="#dfn-term">term</a> was found that could be used to compact the
+        <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, an attempt is made compact the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> using the
+        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a> <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>,
+        if there is one. If the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> could not be compacted, an
+        attempt is made to find a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. If there is no
+        appropriate <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is
+        transformed to a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a> using the document's
+        <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Finally, if the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
+        <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> still could not be compacted, it is returned
+        as is.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-7">Algorithm</h4>
+
+      <p>This algorithm takes three required inputs and three optional inputs.
+        The required inputs an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+        and the <i>iri</i> to be compacted. The optional inputs are a <i>value</i> associated
+        with the <i>iri</i>, a <i>vocab</i> flag which specifies whether the
+        passed <i>iri</i> should be compacted using the
+        <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
+        <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>, and a <i>reverse</i> flag which specifies whether
+        a <a class="tref internalDFN" title="reverse-property" href="#dfn-reverse-property">reverse property</a> is being compacted. If not passed, <i>value</i> is set to
+        <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and <i>vocab</i> and <i>reverse</i> are both set to
+        <code>false</code>.</p>
+
+      <ol class="algorithm">
+        <li>If <i>iri</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
+        <li>If <i>vocab</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and <i>iri</i> is a
+          key in <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>:
+          <ol class="algorithm">
+            <li>Initialize <i>default language</i> to
+              <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
+              <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>, if it has one, otherwise to
+              <code>@none</code>.</li>
+            <li>Initialize <i>containers</i> to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. This
+              <a class="tref internalDFN" title="array" href="#dfn-array">array</a> will be used to keep track of an ordered list of
+              preferred <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>
+              for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, based on what is compatible with
+              <i>value</i>.</li>
+            <li>Initialize <i>type/language</i> to <code>@language</code>,
+              and <i>type/language value</i> to <code>@null</code>. These two
+              variables will keep track of the preferred
+              <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> for
+              a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, based on what is compatible with <i>value</i>.</li>
+            <li>If <i>value</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that contains the
+              key <code>@index</code>, then append the value <code>@index</code>
+              to <i>containers</i>.</li>
+            <li>If <i>reverse</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, set <i>type/language</i>
+              to <code>@type</code>, <i>type/language value</i> to
+              <code>@reverse</code>, and append <code>@set</code> to <i>containers</i>.</li>
+            <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, then set
+              <i>type/language</i> and <i>type/language value</i>
+              to the most specific values that work for all items in
+              the list as follows:
+              <ol class="algorithm">
+                <li>If <code>@index</code> is a not key in <i>value</i>, then
+                  append <code>@list</code> to <i>containers</i>.</li>
+                <li>Initialize <i>list</i> to the <a class="tref internalDFN" title="array" href="#dfn-array">array</a> associated
+                  with the key <code>@list</code> in <i>value</i>.</li>
+                <li>Initialize <i>common language</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. If
+                  <i>list</i> is empty, set <i>common language</i> to
+                  <i>default language</i>.</li>
+                <li>For each <i>item</i> in <i>list</i>:
+                  <ol class="algorithm">
+                    <li>Initialize <i>item language</i> to <code>@none</code> and
+                      <i>item type</i> to <code>@none</code>.</li>
+                    <li>If <i>item</i> contains the key <code>@value</code>:
+                      <ol class="algorithm">
+                        <li>If <i>item</i> contains the key <code>@language</code>,
+                          then set <i>item language</i> to its associated
+                          value.</li>
+                        <li>Otherwise, if <i>item</i> contains the key
+                          <code>@type</code>, set <i>item type</i> to its
+                          associated value.</li>
+                        <li>Otherwise, set <i>item language</i> to
+                          <code>@null</code>.</li>
+                      </ol>
+                    </li>
+                    <li>Otherwise, set <i>item type</i> to <code>@id</code>.</li>
+                    <li>If <i>common language</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it
+                      to <i>item language</i>.</li>
+                    <li>Otherwise, if <i>item language</i> does not equal
+                      <i>common language</i> and <i>item</i> contains the
+                      key <code>@value</code>, then set <i>common language</i>
+                      to <code>@none</code> because list items have conflicting
+                      languages.</li>
+                    <li>If <i>common type</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it
+                      to <i>item type</i>.</li>
+                    <li>Otherwise, if <i>item type</i> does not equal
+                      <i>common type</i>, then set <i>common type</i>
+                      to <code>@none</code> because list items have conflicting
+                      types.</li>
+                    <li>If <i>common language</i> is <code>@none</code> and
+                      <i>common type</i> is <code>@none</code>, then
+                      stop processing items in the list because it has been
+                      detected that there is no common language or type amongst
+                      the items.</li>
+                  </ol>
+                </li>
+                <li>If <i>common language</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
+                  <code>@none</code>.</li>
+                <li>If <i>common type</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
+                  <code>@none</code>.</li>
+                <li>If <i>common type</i> is not <code>@none</code> then set
+                  <i>type/language</i> to <code>@type</code> and
+                  <i>type/language value</i> to <i>common type</i>.</li>
+                <li>Otherwise, set <i>type/language value</i> to
+                  <i>common language</i>.</li>
+              </ol>
+            </li>
+            <li>Otherwise:
+              <ol class="algorithm">
+                <li>If <i>value</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>:
+                  <ol class="algorithm">
+                    <li>If <i>value</i> contains the key <code>@language</code>
+                      and does not contain the key <code>@index</code>,
+                      then set <i>type/language value</i> to its associated
+                      value and append <code>@language</code> to
+                      <i>containers</i>.</li>
+                    <li>Otherwise, if <i>value</i> contains the key
+                      <code>@type</code>, then set <i>type/language value</i> to
+                      its associated value and set <i>type/language</i> to
+                      <code>@type</code>.</li>
+                  </ol>
+                </li>
+                <li>Otherwise, set <i>type/language</i> to <code>@type</code>
+                  and set <i>type/language value</i> to <code>@id</code>.</li>
+                <li>Append <code>@set</code> to <i>containers</i>.</li>
+              </ol>
+            </li>
+            <li>Append <code>@none</code> to <i>containers</i>. This represents
+              the non-existence of a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>, and it will
+              be the last <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> value to be checked as it
+              is the most generic.</li>
+            <li>If <i>type/language value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
+              <code>@null</code>. This is the key under which <a class="tref internalDFN" title="null" href="#dfn-null">null</a> values
+              are stored in the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> <i>entry</i>.</li>
+            <li>Initialize <i>preferred values</i> to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.
+              This <a class="tref internalDFN" title="array" href="#dfn-array">array</a> will indicate, in order, the preferred values for
+              a <a class="tref internalDFN" title="term" href="#dfn-term">term's</a> <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or
+              <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>.</li>
+            <li>If <i>type/language value</i> is <code>@reverse</code>, append
+              <code>@reverse</code> to <i>preferred values</i>.</li>
+            <li>If <i>type/language value</i> is <code>@id</code> or <code>@reverse</code>
+              and <i>value</i> has an <code>@id</code> member:
+              <ol class="algorithm">
+                <li>If the result of using the
+                  <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> compaction algorithm</a>,
+                  passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+                  the value associated with the <code>@id</code> key in <i>value</i> for
+                  <i>iri</i>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>, and
+                  <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>document relative</i> has a
+                  <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>
+                  with an <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> that equals the value associated
+                  with the <code>@id</code> key in <i>value</i>,
+                  then append <code>@vocab</code>, <code>@id</code>, and
+                  <code>@none</code>, in that order, to <i>preferred values</i>.</li>
+                <li>Otherwise, append <code>@id</code>, <code>@vocab</code>, and
+                  <code>@none</code>, in that order, to <i>preferred values</i>.</li>
+              </ol>
+            </li>
+            <li>Otherwise, append <i>type/language value</i> and <code>@none</code>, in
+              that order, to <i>preferred values</i>.</li>
+            <li>Initialize <i>term</i> to the result of the
+              <a href="#term-selection">Term Selection algorithm</a>, passing
+              <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, <i>iri</i>, <i>containers</i>,
+              <i>type/language</i>, and <i>preferred values</i>.</li>
+            <li>If <i>term</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <i>term</i>.</li>
+          </ol>
+        </li>
+        <li>At this point, there is no simple <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that <i>iri</i>
+          can be compacted to. If <i>vocab</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has a <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>:
+          <ol class="algorithm">
+            <li>If <i>iri</i> begins with the
+              <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping's</a> value
+              but is longer, then initialize <i>suffix</i> to the substring
+              of <i>iri</i> that does not match. If <i>suffix</i> does not
+              have a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+              then return <i>suffix</i>.</li>
+          </ol>
+        </li>
+        <li>The <i>iri</i> could not be compacted using the
+          <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a> <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a>.
+          Try to create a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, starting by initializing
+          <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. This variable will be used to
+          tore the created <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, if any.</li>
+
+        <li>For each key <a class="tref internalDFN" title="term" href="#dfn-term">term</a> and value <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in
+          the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>:
+          <ol class="algorithm">
+            <li>If the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> contains a colon (<code>:</code>),
+              then continue to the next <a class="tref internalDFN" title="term" href="#dfn-term">term</a> because
+              <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> with colons can't be
+              used as <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefixes</a>.</li>
+            <li>If the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
+              its <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> equals <i>iri</i>, or its
+              <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a> is not a substring at the beginning of
+              <i>iri</i>, the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> cannot be used as a <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a>
+              because it is not a partial match with <i>iri</i>.
+              Continue with the next <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</li>
+            <li>Initialize <i>candidate</i> by concatenating <a class="tref internalDFN" title="term" href="#dfn-term">term</a>,
+              a colon (<code>:</code>), and the substring of <i>iri</i>
+              that follows after the value of the
+              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition's</a>
+              <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>.</li>
+            <li>If either <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> or <i>candidate</i> is
+              shorter or the same length but lexicographically less than
+              <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> and <i>candidate</i> does not have a
+              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> or if the
+              <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has an <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>
+              that equals <i>iri</i> and <i>value</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
+              set <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> to <i>candidate</i>.</li>
+          </ol>
+        </li>
+        <li>If <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <i>compact <abbr title="Internationalized Resource Identifier">IRI</abbr></i>.</li>
+        <li>If <i>vocab</i> is <a class="tref internalDFN" title="false" href="#dfn-false">false</a> then
+          transform <i>iri</i> to a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a> using
+          the document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
+        <li>Finally, return <i>iri</i> as is.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of IRI Compaction -->
+
+
+  <div class="section" id="term-selection">
+    <h3><span class="secno">8.4 </span>Term Selection</h3>
+
+    <p>This algorithm, invoked via the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>,
+      makes use of an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a>
+      <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a> to find the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that is best
+      used to <a class="tref internalDFN" title="compaction" href="#dfn-compaction">compact</a> an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Other
+      information about a value associated with the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is given,
+      including which <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>
+      and which <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> would
+      be best used to express the value.</p>
+
+    <div class="informative section">
+      <h4 id="overview-8">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>The <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context's</a> entry for
+        the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> will be first searched according to the preferred
+        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>, in the order
+        that they are given. Amongst <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> with a matching
+        <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>, preference will be given to those
+        with a matching <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>,
+        over those without a <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or
+        <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>. If there is no <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+        with a matching <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> then the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+        without a <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> that matches the given
+        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> is selected. If
+        there is still no selected <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, then a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+        with no <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> will
+        be selected if available. No <a class="tref internalDFN" title="term" href="#dfn-term">term</a> will be selected that
+        has a conflicting <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>.
+        Ties between <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> that have the same
+        mappings are resolved by first choosing the shortest terms, and then by
+        choosing the lexicographically least term. Note that these ties are
+        resolved automatically because they were previously resolved when the
+        <a href="#inverse-context-creation">Inverse Context Creation algorithm</a>
+        was used to create the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-8">Algorithm</h4>
+
+      <p>This algorithm has five required inputs. They are:
+        an <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>, a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> or <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+        <i>iri</i>, an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>containers</i> that represents an
+        ordered list of preferred <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mappings</a>,
+        a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> <i>type/language</i> that indicates whether
+        to look for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> with a matching <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
+        or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>, and an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> representing
+        an ordered list of <i>preferred values</i> for the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a>
+        or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> to look for.</p>
+
+      <ol class="algorithm">
+        <li>Initialize <i>container map</i> to the value associated with
+          <i>iri</i> in the <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>.</li>
+        <li>For each item <i>container</i> in <i>containers</i>:
+          <ol class="algorithm">
+            <li>If <i>container</i> is not a key in <i>container map</i>, then
+              there is no <a class="tref internalDFN" title="term" href="#dfn-term">term</a> with a matching
+              <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> for it, so continue to the next
+              <i>container</i>.</li>
+            <li>Initialize <i>type/language map</i> to the value associated
+              with the <i>container</i> member in <i>container map</i>.</li>
+            <li>Initialize <i>value map</i> to the value associated
+              with <i>type/language</i> member in <i>type/language map</i>.</li>
+            <li>For each <i>item</i> in <i>preferred values</i>:
+              <ol class="algorithm">
+                <li>If <i>item</i> is not a key in <i>value map</i>,
+                  then there is no <a class="tref internalDFN" title="term" href="#dfn-term">term</a> with a matching
+                  <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a>,
+                  so continue to the next <i>item</i>.</li>
+                <li>Otherwise, a matching term has been found, return the value
+                  associated with the <i>item</i> member in
+                  <i>value map</i>.</li>
+              </ol>
+            </li>
+          </ol>
+        </li>
+        <li>No matching term has been found. Return <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Term Selection -->
+
+
+  <div class="section" id="value-compaction">
+    <h3><span class="secno">8.5 </span>Value Compaction</h3>
+
+    <p><a class="tref internalDFN" title="expansion" href="#dfn-expansion">Expansion</a> transforms all values into <a class="tref internalDFN" title="expanded-form" href="#dfn-expanded-form">expanded form</a>
+      in JSON-LD. This algorithm performs the opposite operation, transforming
+      a value into <dfn title="compacted-form" id="dfn-compacted-form">compacted form</dfn>. This algorithm compacts a
+      value according to the <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> in the given
+      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> that is associated with the value's associated
+      <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>.</p>
+
+    <div class="informative section">
+      <h4 id="overview-9">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>The <i>value</i> to compact has either an <code>@id</code> or an
+        <code>@value</code> member.</p>
+
+      <p>For the former case, if the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of
+        <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is set to <code>@id</code> or <code>@vocab</code>
+        and <i>value</i> consists of only of an <code>@id</code> member and, if
+        if the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
+        is set to <code>@index</code>, an <code>@index</code> member, <i>value</i>
+        can be compacted to a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> by returning the result of
+        using the <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> Compaction algorithm</a>
+        to compact the value associated with the <code>@id</code> member.
+        Otherwise, <i>value</i> cannot be compacted and is returned as is.</p>
+
+      <p>For the latter case, it might be possible to compact <i>value</i>
+        just into the value associated with the <code>@value</code> member.
+        This can be done if the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> has a matching
+        <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> or <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> and there
+        is either no <code>@index</code> member or the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>
+        of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is set to <code>@index</code>. It can
+        also be done if <code>@value</code> is the only member in <i>value</i>
+        (apart an <code>@index</code> member in case the <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a>
+        of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is set to <code>@index</code>) and
+        either its associated value is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, there is
+        no <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>, or there is an explicit
+        <a class="tref internalDFN" title="null" href="#dfn-null">null</a> <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> for the
+        <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-9">Algorithm</h4>
+
+      <p>This algorithm has four required inputs: an <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, an
+        <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,  an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and a <i>value</i>
+        to be compacted.</p>
+
+      <ol class="algorithm">
+        <li>Initialize <i>number members</i> to the number of members
+          <i>value</i> contains.</li>
+        <li>If <i>value</i> has an <code>@index</code> member and the
+          <a class="tref internalDFN" title="container-mapping" href="#dfn-container-mapping">container mapping</a> associated to <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
+          is set to <code>@index</code>, decrease <i>number members</i> by
+          <code>1</code>.</li>
+        <li>If <i>number members</i> is greater than <code>2</code>, return
+          <i>value</i> as it cannot be compacted.</li>
+        <li>If <i>value</i> has an <code>@id</code> member:
+          <ol class="algorithm">
+            <li>If <i>number members</i> is <code>1</code> and
+              the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
+              is set to <code>@id</code>, return the result of using the
+              <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> compaction algorithm</a>,
+              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+              and the value of the <code>@id</code> member for <i>iri</i>.</li>
+            <li>Otherwise, if <i>number members</i> is <code>1</code> and
+              the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
+              is set to <code>@vocab</code>, return the result of using the
+              <a href="#iri-compaction"><abbr title="Internationalized Resource Identifier">IRI</abbr> compaction algorithm</a>,
+              passing <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="inverse-context" href="#dfn-inverse-context">inverse context</a>,
+              the value of the <code>@id</code> member for <i>iri</i>, and
+              <a class="tref internalDFN" title="true" href="#dfn-true">true</a> for <i>vocab</i>.</li>
+            <li>Otherwise, return <i>value</i> as is.</li>
+          </ol>
+        </li>
+        <li>Otherwise, if <i>value</i> has an <code>@type</code> member whose
+          value matches the <a class="tref internalDFN" title="type-mapping" href="#dfn-type-mapping">type mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>,
+          return the value associated with the <code>@value</code> member
+          of <i>value</i>.</li>
+        <li>Otherwise, if <i>value</i> has an <code>@language</code> member whose
+          value matches the <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> of
+          <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, return the value associated with the
+          <code>@value</code> member of <i>value</i>.</li>
+        <li>Otherwise, if <i>number members</i> equals <code>1</code> and either
+          the value of the <code>@value</code> member is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>,
+          or the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> has no <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a>,
+          or the <a class="tref internalDFN" title="language-mapping" href="#dfn-language-mapping">language mapping</a> of <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
+          is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,, return the value associated with the
+          <code>@value</code> member.</li>
+        <li>Otherwise, return <i>value</i> as is.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Value Compaction algorithm -->
+
+</div>
+<!-- end of Compaction section -->
+
+
+
+<div class="section" id="flattening-algorithms">
+
+<!--OddPage-->
+<h2><span class="secno">9. </span>Flattening Algorithms</h2>
+
+  <div class="section" id="flattening-algorithm">
+    <h3><span class="secno">9.1 </span>Flattening Algorithm</h3>
+
+    <p>This algorithm flattens an expanded JSON-LD document by collecting all
+      properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in a single <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
+      and labeling all <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> with
+      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>.
+      This resulting uniform shape of the document, may drastically simplify
+      the code required to process JSON-LD data in certain applications.</p>
+
+    <div class="informative section">
+      <h4 id="overview-10">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>First, a <i>node map</i> is generated using the
+        <a href="#node-map-generation">Node Map Generation algorithm</a>
+        which collects all properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in a single
+        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. In the next step, the <i>node map</i> is
+        converted to a JSON-LD document in
+        <a class="tref externalDFN" title="flattened-document-form" href="../json-ld/#flattened-document-form">flattened document form</a>.
+        Finally, if a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> has been passed, the flattened document
+        is compacted using the <a href="#compaction-algorithm">Compaction algorithm</a>
+        before being returned.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-10">Algorithm</h4>
+
+      <p>The algorithm takes two input variables, an <i>element</i> to flatten and
+        an optional <i>context</i> used to compact the flattened document. If not
+        passed, <i>context</i> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+      <ol class="algorithm">
+        <li>Initialize <i>node map</i> to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of
+          a single member whose key is <code>@default</code> and whose value is
+          an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+        <li>Perform the <a href="#node-map-generation">Node Map Generation algorithm</a>, passing
+          <i>element</i> and <i>node map</i>.</li>
+        <li>Initialize <i>default graph</i> to the value of the <code>@default</code>
+          member of <i>node map</i>, which is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> representing
+          the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a>.</li>
+        <li>For each key-value pair <i>graph name</i>-<i>graph</i> in <i>node map</i>
+          where <i>graph name</i> is not <code>@default</code>,  perform the following steps:
+          <ol class="algorithm">
+            <li>If <i>default graph</i> does not have a <i>graph name</i> member, create
+              one and initialize its value to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of an
+              <code>@id</code> member whose value is set to <i>graph name</i>.</li>
+            <li>Reference the value associated with the <i>graph name</i> member in
+              <i>default graph</i> using the variable <i>entry</i>.</li>
+            <li>Add an <code>@graph</code> member to <i>entry</i> and set it to an
+              empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+            <li>For each <i>id</i>-<i>node</i> pair in <i>graph</i> ordered by <i>id</i>,
+              add <i>node</i> to the <code>@graph</code> member of <i>entry</i>.</li>
+          </ol>
+        </li>
+        <li>Initialize an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>flattened</i>.</li>
+        <li>For each <i>id</i>-<i>node</i> pair in <i>default graph</i> ordered by <i>id</i>,
+          add <i>node</i> to <i>flattened</i>.</li>
+        <li>If <i>context</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, return <i>flattened</i>.</li>
+        <li>Otherwise, return the result of compacting <i>flattened</i> according the
+          <a href="#compaction-algorithm">Compaction algorithm</a> passing <i>context</i>
+          ensuring that the compaction result uses the <code>@graph</code> keyword (or its alias)
+          at the top-level, even if the context is empty or if there is only one element to
+          put in the <code>@graph</code> <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. This ensures that the returned
+          document has a deterministic structure.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Flattening Algorithm -->
+
+
+  <div class="section" id="node-map-generation">
+    <h3><span class="secno">9.2 </span>Node Map Generation</h3>
+
+    <p>This algorithm creates a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>node map</i> holding an indexed
+      representation of the <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">graphs</a> and <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>
+      represented in the passed expanded document. All <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> that are not
+      uniquely identified by an <abbr title="Internationalized Resource Identifier">IRI</abbr> get assigned a (new) <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.
+      The resulting <i>node map</i> will have a member for every graph in the document whose
+      value is another object with a member for every <a class="tref internalDFN" title="node" href="#dfn-node">node</a> represented in the document.
+      The default graph is stored under the <code>@default</code> member, all other graphs are
+      stored under their <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a>.</p>
+
+    <div class="informative section">
+      <h4 id="overview-11">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>The algorithm recursively runs over an expanded JSON-LD document to
+        collect all <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a>
+        in a single <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. The algorithm constructs a
+        <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>node map</i> whose keys represent the
+        <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph names</a> used in the document
+        (the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> is stored under the key <code>@default</code>)
+        and whose associated values are <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a>
+        which index the <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> in the
+        <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">graph</a>. If a
+        <a class="tref internalDFN" title="property" href="#dfn-property">property's</a> value is a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>,
+        it is replace by a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> consisting of only an
+        <code>@id</code> member. If a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> has no <code>@id</code>
+        member or it is identified by a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>,
+        a new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> is generated. This relabeling
+        of <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a> is
+        also be done for <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> and values of
+        <code>@type</code>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-11">Algorithm</h4>
+
+      <p>The algorithm takes as input an expanded JSON-LD document <i>element</i> and a reference to
+        a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>node map</i>. Furthermore it has the optional parameters
+        <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a> (which defaults to <code>@default</code>), an <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>,
+        <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and a reference to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>list</i>. If
+        not passed, <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>list</i> are
+        set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+      <ol class="algorithm">
+        <li>If <i>element</i> is an array, process each <i>item</i> in <i>element</i>
+          as follows and then return:
+          <ol class="algorithm">
+            <li>Run this algorithm recursively by passing <i>item</i> for <i>element</i>,
+              <i>node map</i>, <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>, <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>,
+              <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>list</i>.</li>
+          </ol>
+        </li>
+        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. Reference the
+          <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> which is the value of the <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>
+          member of <i>node map</i> using the variable <i>graph</i>. If the
+          <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set <i>node</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>
+          otherwise reference the <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a> member of <i>graph</i> using the
+          variable <i>node</i>.</li>
+        <li>If <i>element</i> has an <code>@type</code> member, perform for each
+          <i>item</i> the following steps:
+          <ol class="algorithm">
+            <li>If <i>item</i> is a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, replace it with a newly
+              <a href="#generate-blank-node-identifier">generated blank node identifier</a>
+              passing <i>item</i> for <i>identifier</i>.</li>
+            <li>If <i>graph</i> has no member <i>item</i>, create one and initialize its
+              value to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of a single member <code>@id</code>
+              whose value is <i>item</i>.</li>
+          </ol>
+        </li>
+        <li>If <i>element</i> has an <code>@value</code> member, perform the following steps:
+          <ol class="algorithm">
+            <li>If <i>list</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>:
+              <ol class="algorithm">
+                <li>If <i>node</i> does not have an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> member,
+                  create one and initialize its value to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+                  containing <i>element</i>.</li>
+                <li>Otherwise, compare <i>element</i> against every item in the
+                  <a class="tref internalDFN" title="array" href="#dfn-array">array</a> associated with the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
+                  member of <i>node</i>. If there is no item equivalent to <i>element</i>,
+                  append <i>element</i> to the <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Two
+                  <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a> are considered
+                  equal if they have equivalent key-value pairs.</li>
+
+              </ol>
+            </li>
+            <li>Otherwise, append <i>element</i> to the <code>@list</code> member of <i>list</i>.</li>
+          </ol>
+        </li>
+        <li>Otherwise, if <i>element</i> has an <code>@list</code> member, perform
+          the following steps:
+          <ol class="algorithm">
+            <li>Initialize a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>result</i> consisting of a single member
+              <code>@list</code> whose value is initialized to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+            <li>Recursively call this algorithm passing the value of <i>element's</i>
+              <code>@list</code> member for <i>element</i>, <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>,
+              <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>, <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and
+              <i>result</i> for <i>list</i>.</li>
+            <li>Append <i>result</i> to the the value of the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> member
+              of <i>node</i>.</li>
+          </ol>
+        </li>
+        <li>Otherwise <i>element</i> is a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>, perform
+          the following steps:
+          <ol class="algorithm">
+            <li>If <i>element</i> has an <code>@id</code> member, set <i>id</i>
+              to its value and remove the member from <i>element</i>. If <i>id</i>
+              is a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, replace it with a newly
+              <a href="#generate-blank-node-identifier">generated blank node identifier</a>
+              passing <i>id</i> for <i>identifier</i>.</li>
+            <li>Otherwise, set <i>id</i> to the result of the
+              <a href="#generate-blank-node-identifier">Generate Blank Node Identifier algorithm</a>
+              passing <a class="tref internalDFN" title="null" href="#dfn-null">null</a> for <i>identifier</i>.</li>
+            <li>If <i>graph</i> does not contain a member <i>id</i>, create one and initialize
+              its value to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of a single member <code>@id</code> whose
+              value is <i>id</i>.</li>
+            <li>If <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, perform the following steps:
+              <ol class="algorithm">
+                <li>Create a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>reference</i> consisting of a single member
+                  <code>@id</code> whose value is <i>id</i>.</li>
+                <li>If <i>list</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>:
+                  <ol class="algorithm">
+                    <li>If <i>node</i> does not have an <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a> member,
+                      create one and initialize its value to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+                      containing <i>reference</i>.</li>
+                    <li>Otherwise, compare <i>reference</i> against every item in the
+                      <a class="tref internalDFN" title="array" href="#dfn-array">array</a> associated with the <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>
+                      member of <i>node</i>. If there is no item equivalent to <i>reference</i>,
+                      append <i>reference</i> to the <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Two
+                      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a> are considered
+                      equal if they have equivalent key-value pairs.</li>
+                  </ol>
+                </li>
+                <li>Otherwise, append <i>element</i> to the <code>@list</code> member of <i>list</i>.</li>
+              </ol>
+            </li>
+            <li>Reference the value of the <i>id</i> member of <i>graph</i> using the
+              variable <i>node</i>.</li>
+            <li>If <i>element</i> has an <code>@type</code> key, append
+              each item of its associated <a class="tref internalDFN" title="array" href="#dfn-array">array</a> to the
+              <a class="tref internalDFN" title="array" href="#dfn-array">array</a> associated with the <code>@type</code> key of
+              <i>node</i> unless it is already in that <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. Finally
+              remove the <code>@type</code> member from <i>element</i>.</li>
+            <li>If <i>element</i> has an <code>@index</code> member, set the <code>@index</code>
+              member of <i>node</i> to its value. If <a class="tref internalDFN" title="node" href="#dfn-node">node</a> has already an
+              <code>@index</code> member with a different value, a
+              <code class="error"><a href="#idl-def-JsonLdErrorCode.conflicting-indexes">conflicting indexes</a></code>
+              error has been detected and processing is aborted. Otherwise, continue by
+              removing the <code>@index</code> member from <i>element</i>.</li>
+            <li>If <i>element</i> has an <code>@reverse</code> member:
+              <ol class="algorithm">
+                <li>Create a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> <i>referenced node</i> with a single member <code>@id</code> whose
+                  value is <i>id</i>.</li>
+                <li>Set <i>reverse map</i> to the value of the <code>@reverse</code> member of
+                  <i>element</i>.</li>
+                <li>For each key-value pair <i>property</i>-<i>values</i> in <i>reverse map</i>:
+                  <ol class="algorithm">
+                    <li>For each <i>value</i> of <i>values</i>:
+                      <ol class="algorithm">
+                        <li>If <i>value</i> has a <i>property</i> member, append <i>referenced node</i> to
+                          its value; otherwise create a <i>property</i> member whose value is an
+                          <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing <i>referenced node</i>.</li>
+                        <li>Recursively invoke this algorithm passing <i>value</i> for
+                          <i>element</i>, <i>node map</i>, and <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>.</li>
+                      </ol>
+                    </li>
+                  </ol>
+                </li>
+                <li>Remove the <code>@reverse</code> member from <i>element</i>.</li>
+              </ol>
+            </li>
+            <li>If <i>element</i> has an <code>@graph</code> member, recursively invoke this
+              algorithm passing the value of the <code>@graph</code> member for <i>element</i>,
+              <i>node map</i>, and <i>id</i> for <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a> before removing
+              the <code>@graph</code> member from <i>element</i>.</li>
+            <li>Finally, for each key-value pair <i>property</i>-<i>value</i> in <i>element</i> ordered by
+              <i>property</i> perform the following steps:
+              <ol class="algorithm">
+                <li>If <i>property</i> is a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, replace it with a newly
+                  <a href="#generate-blank-node-identifier">generated blank node identifier</a>
+                  passing <i>property</i> for <i>identifier</i>.</li>
+                <li>If <i>node</i> does not have a <i>property</i> member, create one and initialize
+                  its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                <li>Recursively invoke this algorithm passing <i>value</i> for <i>element</i>,
+                  <i>node map</i>, <a class="tref internalDFN" title="active-graph" href="#dfn-active-graph">active graph</a>, <i>id</i> for <a class="tref internalDFN" title="active-subject" href="#dfn-active-subject">active subject</a>,
+                  <i>property</i> for <a class="tref internalDFN" title="active-property" href="#dfn-active-property">active property</a>, and <i>list</i>.</li>
+              </ol>
+            </li>
+          </ol>
+        </li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Node Map Generation -->
+
+
+  <div class="section" id="generate-blank-node-identifier">
+    <h3><span class="secno">9.3 </span>Generate Blank Node Identifier</h3>
+
+    <p>This algorithm is used to determine if two generate new
+      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a> or to
+      relabel an existing <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> to avoid collision
+      by the introduction of new ones.</p>
+
+    <div class="informative section">
+      <h4 id="overview-12">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>The simplest case is if there exists already a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
+        in the <i>identifier map</i> for the passed <i>identifier</i>, in which
+        case it is simply returned. Otherwise, a new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
+        is generated by concatenating the string <code>_:b</code> and the
+        <i>counter</i>. If the passed <i>identifier</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
+        an entry is created in the <i>identifier map</i> associating the
+        <i>identifier</i> with the <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. Finally,
+        the <i>counter</i> is increased by one and the new
+        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> is returned.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-12">Algorithm</h4>
+
+      <p>The algorithm takes a single input variable <i>identifier</i> which may
+        be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. Between its executions, the algorithm needs to
+        keep an <i>identifier map</i> to relabel existing
+        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>
+        consistently and a <i>counter</i> to generate new
+        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>. The
+        <i>counter</i> is initialized to <code>0</code> by default.</p>
+
+      <ol class="algorithm">
+        <li>If <i>identifier</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and has an entry in the
+          <i>identifier map</i>, return the mapped identifier.</li>
+        <li>Otherwise, generate a new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> by concatenating
+          the string <code>_:b</code> and <i>counter</i>.</li>
+        <li>Increment <i>counter</i> by <code>1</code>.</li>
+        <li>If <i>identifier</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, create a new entry
+          for <i>identifier</i> in <i>identifier map</i> and set its value
+          to the new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
+        <li>Return the new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Generate Blank Node Identifier -->
+
+</div>
+<!-- end of Flattening section -->
+
+
+
+<div class="section" id="rdf-conversion-algorithms">
+
+<!--OddPage-->
+<h2><span class="secno">10. </span>RDF Conversion Algorithms</h2>
+
+  <p>This section describes algorithms to transform a JSON-LD document to an
+    <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a> and vice versa. The algorithms are designed for in-memory
+    implementations with random access to <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> elements.</p>
+
+  <p>Throughout this section, the following vocabulary
+    <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefixes</a> are used in
+    <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>:</p>
+
+  <table rules="all">
+    <thead>
+      <tr><th>Prefix</th>
+      <th><abbr title="Internationalized Resource Identifier">IRI</abbr></th>
+    </tr></thead>
+    <tbody>
+      <tr>
+        <td>rdf</td>
+        <td>http://www.w3.org/1999/02/22-rdf-syntax-ns#</td>
+      </tr>
+      <tr>
+        <td>rdfs</td>
+        <td> http://www.w3.org/2000/01/rdf-schema#</td>
+      </tr>
+      <tr>
+        <td>xsd</td>
+        <td>http://www.w3.org/2001/XMLSchema#</td>
+      </tr>
+    </tbody>
+  </table>
+
+  <div class="section" id="convert-to-rdf-algorithm">
+    <h3><span class="secno">10.1 </span>Convert to RDF Algorithm</h3>
+
+    <p>This algorithms converts a JSON-LD document to an <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a>.
+      Please note that RDF does not allow a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> to be used
+      as a <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> or <a class="tref internalDFN" title="property" href="#dfn-property">property</a>, while JSON-LD does.
+      <a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter">JSON-LD-RDF Converters</a> can work
+      around this restriction, when converting JSON-LD to RDF, by converting such
+      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
+      minting new &quot;Skolem IRIs&quot; as per
+      <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">Replacing Blank Nodes with IRIs</a></cite>
+      of [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</p>
+
+    <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 3</span>: Allow blank nodes to be used as graph name or property</div><div class="atrisk">
+      <p class="atrisk-head">Note: This feature is
+        <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and
+        may be removed from this specification based on feedback. Please send feedback to
+        <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
+        For the current status see
+        <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
+      <p>RDF does not currently allow a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> to be
+        used as <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> or <a class="tref internalDFN" title="property" href="#dfn-property">property</a>, while JSON-LD
+        does. <a class="tref internalDFN" title="json-ld-rdf-converter" href="#dfn-json-ld-rdf-converter">JSON-LD-RDF Converters</a>
+        can work around this restriction, when converting JSON-LD to RDF, by
+        converting such <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> to
+        <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, minting new &quot;Skolem IRIs&quot; as per
+        <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">Replacing Blank Nodes with IRIs</a></cite>
+        of [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>]. Based on feedback from implementors the
+        Working Group may decide to disallow blank nodes as graph names and
+        properties in JSON-LD. If this change would affect you, be sure to
+        send in a comment.</p>
+    </div></div>
+
+    <div class="informative section">
+      <h4 id="overview-13">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>The JSON-LD document is expanded and converted to a <i>node map</i> using the
+        <a href="#node-map-generation">Node Map Generation algorithm</a>.
+        This allows each graph represented within the document to be
+        extracted and flattened, making it easier to process each
+        <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>. Each graph from the <i>node map</i>
+        is processed to extract <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triples</a>,
+        to which any (non-default) graph name is applied to create an
+        <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a>. Each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> in the
+        <i>node map</i> has an <code>@id</code> member which corresponds to the
+        <a class="tref internalDFN" title="rdf-subject" href="#dfn-rdf-subject">RDF subject</a>, the other members
+        represent <a class="tref internalDFN" title="rdf-predicate" href="#dfn-rdf-predicate">RDF predicates</a>. Each
+        member value is either an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
+        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> or can be transformed to an
+        <a class="tref externalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literal</a>
+        to generate an <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>. <a class="tref internalDFN" title="list" href="#dfn-list">Lists</a>
+        are transformed into an
+        <a class="tref externalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">RDF Collection</a>
+        using the <a href="#list-to-rdf-conversion">List to RDF Conversion algorithm.</a></p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-13">Algorithm</h4>
+
+      <p>The algorithm takes a JSON-LD document <i>element</i> and returns an
+        <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a>.</p>
+
+      <ol class="algorithm">
+        <li>Expand <i>element</i> according the
+          <a href="#expansion-algorithm">Expansion algorithm</a>.</li>
+        <li>Generate a <i>node map</i> according the
+          <a href="#node-map-generation">Node Map Generation algorithm</a>.</li>
+        <li>Initialize an empty <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a> <i>dataset</i>.</li>
+        <li>For each <i>graph name</i> and <i>graph</i> in <i>node map</i>:
+          <ol class="algorithm">
+            <li>Initialize <i>triples</i> as an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+            <li>For each <i>subject</i> and <i>node</i> in <i>graph</i>:
+              <ol class="algorithm">
+                <li>For each <i>property</i> and <i>values</i> in <i>node</i>:
+                  <ol class="algorithm">
+                    <li>If <i>property</i> is <code>@type</code>, then for each
+                      <i>type</i> in <i>values</i>, append a <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a>
+                      composed of <i>subject</i>, <code>rdf:type</code>,
+                      and <i>type</i> to <i>triples</i>.</li>
+                    <li>Otherwise, if <i>property</i> is a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>
+                      continue to the next <i>property</i>-<i>values</i> pair.</li>
+                    <li>Otherwise, <i>property</i> is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
+                      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. For each <i>item</i>
+                      in <i>values</i>:
+                      <ol class="algorithm">
+                        <li>If <i>item</i> is a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>, initialize
+                          <i>list triples</i> as an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> and
+                          <i>list head</i> to the result of the <a href="#list-to-rdf-conversion">List Conversion algorithm</a>, passing
+                          the value associated with the <code>@list</code> key from
+                          <i>item</i> and <i>list triples</i>. Append first a
+                          <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a> composed of <i>subject</i>,
+                          <i>property</i>, and <i>list head</i> to <i>triples</i> and
+                          finally append all <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triples</a> from
+                          <i>list triples</i> to <i>triples</i>.</li>
+                        <li>Otherwise, <i>item</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>
+                          or a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>. Append a <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a>
+                          composed of <i>subject</i>, <i>property</i>, and
+                          the result of using the
+                          <a href="#object-to-rdf-conversion">Object to RDF Conversion algorithm</a>
+                          passing <i>item</i> to <i>triples</i>.</li>
+                      </ol>
+                    </li>
+                  </ol>
+                </li>
+              </ol>
+            </li>
+            <li>If <i>graph name</i> is <code>@default</code>, add
+              <i>triples</i> to the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> in <i>dataset</i>.</li>
+            <li>Otherwise, create a <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graph</a> in <i>dataset</i>
+              composed of <i>graph name</i> and add <i>triples</i>.</li>
+          </ol>
+        </li>
+        <li>Return <i>dataset</i>.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Convert to RDF Algorithm -->
+
+
+  <div class="section" id="object-to-rdf-conversion">
+    <h3><span class="secno">10.2 </span>Object to RDF Conversion</h3>
+
+    <p>This algorithm takes a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> or <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>
+      and transforms it into an
+      <a class="tref externalDFN" title="rdf-resource" href="http://www.w3.org/TR/rdf11-concepts/#dfn-resource">RDF resource</a>
+      to be used as the <a class="tref internalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object">object</a> of an <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>.</p>
+
+    <div class="informative section">
+      <h4 id="overview-14">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p><a class="tref internalDFN" title="value-object" href="#dfn-value-object">Value objects</a> are transformed to
+        <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a> as described in
+        <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>
+        whereas <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> are transformed
+        to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> or
+        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-14">Algorithm</h4>
+
+      <p>The algorithm takes as its sole argument <i>item</i> which must be
+        either a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> or <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</p>
+
+      <ol class="algorithm">
+        <li>If <i>item</i> is a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> return the
+          <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> associated
+          with its <code>@id</code> member.</li>
+        <li>Otherwise, <i>item</i> is a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>. Initialize
+          <i>value</i> to the value associated with the <code>@value</code>
+          member in <i>item</i>.
+        </li><li>Initialize <i>datatype</i> to the value associated with the
+          <code>@type</code> member of <i>item</i> or  <a class="tref internalDFN" title="null" href="#dfn-null">null</a> if
+          <i>item</i> does not have such a member.</li>
+        <li>If <i>value</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or
+          <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, set <i>value</i> to the <a class="tref internalDFN" title="string" href="#dfn-string">string</a>
+          <code>true</code> or <code>false</code> which is the
+          <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> as described in
+          <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>
+          If <i>datatype</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
+          <code>xsd:boolean</code>.</li>
+        <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> with fractions
+          or <i>value</i> is a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> and <i>datatype</i> equals
+          <code>xsd:double</code>, convert <i>value</i> to a
+          <a class="tref internalDFN" title="string" href="#dfn-string">string</a> in <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of
+          an <code>xsd:double</code> as defined in [<cite><a class="bibref" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>]
+          and described in
+          <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>.
+          If <i>datatype</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
+          <code>xsd:double</code>.</li>
+        <li>Otherwise, if <i>value</i> is a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> without fractions
+          or <i>value</i> is a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> and <i>datatype</i> equals
+          <code>xsd:integer</code>, convert <i>value</i> to a
+          <a class="tref internalDFN" title="string" href="#dfn-string">string</a> in <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of
+          an <code>xsd:integer</code> as defined in [<cite><a class="bibref" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>]
+          and described in
+          <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>.
+          If <i>datatype</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
+          <code>xsd:integer</code>.</li>
+        <li>Otherwise, if <i>datatype</i> is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, set it to
+          <code>xsd:string</code> or <code>rdf:langString</code>, depending on if
+          item has an <code>@language</code> member.</li>
+        <li>Initialize <i>literal</i> as an <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literal</a> using
+          <i>value</i> and <i>datatype</i>. If <i>item</i> has an
+          <code>@language</code> member, add the value associated with the
+          <code>@language</code> key as the language tag of <i>literal</i>.</li>
+        <li>Return <i>literal</i>.</li>
+
+      </ol>
+    </div>
+  </div>
+<!-- end of Object to RDF Conversion -->
+
+
+  <div class="section" id="list-to-rdf-conversion">
+    <h3><span class="secno">10.3 </span>List to RDF Conversion</h3>
+
+    <p>List Conversion is the process of taking a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>
+      and transforming it into an
+      <a class="tref externalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">RDF Collection</a>
+      as defined in RDF Semantics [<cite><a class="bibref" href="#bib-RDF-MT">RDF-MT</a></cite>].</p>
+
+    <div class="informative section">
+      <h4 id="overview-15">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>For each element of the <a class="tref internalDFN" title="list" href="#dfn-list">list</a> a new <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
+        is allocated which is used to generate <code>rdf:first</code> and
+        <code>rdf:rest</code> <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">triples</a>. The
+        algorithm returns the list head, which is either the the first allocated
+        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> or <code>rdf:nil</code> if the
+        <a class="tref internalDFN" title="list" href="#dfn-list">list</a> is empty.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-15">Algorithm</h4>
+
+      <p>The algorithm takes two inputs: an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>list</i>
+        and an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>list triples</i> used for returning
+        the generated <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">triples</a>.</p>
+
+      <ol class="algorithm">
+        <li>If <i>list</i> is empty, return <code>rdf:nil</code>.</li>
+        <li>Otherwise, create an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>bnodes</i> composed of a
+          <a href="#generate-blank-node-identifier">newly generated blank node identifier</a>
+          for each entry in <i>list</i>.</li>
+        <li>Initialize an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>list triples</i>.</li>
+        <li>For each pair of <i>subject</i> from <i>bnodes</i> and <i>item</i> from <i>list</i>:
+          <ol class="algorithm">
+            <li>Append a <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a> composed of <i>subject</i>,
+              <code>rdf:first</code>, and the result of using th
+              <a href="#object-to-rdf-conversion">Object to RDF Conversion algorithm</a>
+              passing <i>item</i> to <i>list triples</i>.</li>
+            <li>Set <i>rest</i> as the next entry in <i>bnodes</i>, or if that
+              does not exist, <code>rdf:nil</code>. Append a
+              <a class="tref internalDFN" title="triple" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">triple</a> composed of <i>subject</i>,
+              <code>rdf:rest</code>, and <i>rest</i> to <i>list triples</i>.</li>
+          </ol>
+        </li>
+        <li>Return the first <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> from <i>bnodes</i> or
+          <code>rdf:nil</code> if <i>bnodes</i> is empty.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of List to RDF -->
+
+
+  <div class="section" id="convert-from-rdf-algorithm">
+    <h3><span class="secno">10.4 </span>Convert from RDF Algorithm</h3>
+
+    <p>This algorithm converts an <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a> consisting of a
+      <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> and zero or more
+      <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graphs</a> into a JSON-LD document.</p>
+
+    <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 5</span>: Converting list of lists to JSON-LD </div><div class="atrisk">
+      <p class="atrisk-head">Note: This feature is
+        <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
+        be removed from this specification based on feedback. Please send feedback to
+        <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
+        For the current status see
+        <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
+      <p>In the interest of space and simplicity, the steps necessary for handling lists
+        of lists have been omitted. Such lists and their elements must, recursively,
+        be handled like other lists. Lists of lists can, however, not be represented
+        in JSON-LD using <code>@list</code>; they have to be represented as a set of
+        interlinked node objects using RDF's <code>rdf:first</code> and <code>rdf:rest</code>
+        properties. The Working Group might either require handling of lists-of-lists or
+        forbid them in JSON-LD 1.0. Implementers please send reports of whether you are
+        able to implement handling for lists-of-lists or would instead request such
+        structures be disallowed.</p>
+    </div></div>
+
+    <div class="informative section">
+      <h4 id="overview-16">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p>Iterate through each graph in the dataset, converting
+        <a class="tref internalDFN" title="rdf-collection" href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">RDF Collections</a> into a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>
+        and generating a JSON-LD document in expanded form for all
+        <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a>, <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
+        and <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>.
+        If the <i>use native types</i> flag is set to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
+        <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a> with a
+        <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+        that equals <code>xsd:integer</code> or <code>xsd:double</code> are converted
+        to a <a class="tref internalDFN" title="number" href="#dfn-number">JSON numbers</a> and <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a>
+        with a <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+        that equals <code>xsd:boolean</code> are converted to <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or
+        <a class="tref internalDFN" title="false" href="#dfn-false">false</a> based on their
+        <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
+        as described in
+        <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-16">Algorithm</h4>
+
+      <p>The algorithm takes two required inputs: an <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a> and a flag
+        <i>use native types</i> that defaults to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>.</p>
+
+      <ol class="algorithm">
+        <li>Initialize <i>default graph</i> to a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
+          consisting of two members, <code>nodeMap</code> and <code>listMap</code>,
+          whose value is an an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+        <li>Initialize <i>graph map</i> to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting
+          of a single member <code>@default</code> whose value is set to
+          reference <i>default graph</i>.</li>
+        <li>Reference the <code>nodeMap</code> member of <i>default graph</i>
+          using the variable <i>default graph nodes</i>.</li>
+        <li>For each <i>graph</i> in <a class="tref internalDFN" title="rdf-dataset" href="#dfn-rdf-dataset">RDF dataset</a>:
+          <ol class="algorithm">
+            <li>If <i>graph</i> is the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a>,
+              set <i>name</i> to <code>@default</code>, otherwise to the
+              <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> associated with <i>graph</i>.</li>
+            <li>If <i>graph map</i> has no <i>name</i> member, create one and set
+              its value to a to a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of two
+              members, <code>nodeMap</code> and <code>listMap</code>, whose value
+              is an an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+            <li>If <i>graph</i> is not the <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> and
+              <i>default graph nodes</i> does not have a <i>name</i> member,
+              create such a member and initialize its value to a new
+              <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> with a single member <code>@id</code>
+              whose value is <i>name</i>.</li>
+            <li>Reference the value of the <i>name</i> member in <i>graph map</i>
+              using the variable <i>graph object</i>.</li>
+            <li>Reference the value of the <code>nodeMap</code> member in
+              <i>graph object</i> using the variable <i>node map</i> and the
+              value of the <code>listMap</code> member using the variable
+              <i>list map</i>.</li>
+            <li>For each <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a> in <i>graph</i>
+              consisting of <i>subject</i>, <i>predicate</i>, and <i>object</i>:
+              <ol class="algorithm">
+                <li>If <i>predicate</i> equals <code>rdf:first</code>,
+                  <ol class="algorithm">
+                    <li>If <i>list map</i> has no <i>subject</i> member, create
+                      one and initialize it to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+                    <li>Initialize the value of the <code>first</code> member of
+                      the <i>subject</i> member of <i>list map</i> to the result of the
+                      <a href="#rdf-to-object-conversion">RDF to Object Conversion algorithm</a>,
+                      passing <i>object</i> and <i>use native types</i>.</li>
+                    <li>Continue with the next <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>.</li>
+                  </ol>
+                </li><li>If <i>predicate</i> equals <code>rdf:rest</code>:
+                  <ol class="algorithm">
+                    <li>If <i>list map</i> has no <i>subject</i> member, create
+                      one and initialize it to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+                    <li>Initialize the value of the <code>rest</code> member of
+                      the <i>subject</i> member of <i>list map</i> to
+                      <a class="tref internalDFN" title="object" href="http://www.w3.org/TR/rdf11-concepts/#dfn-object">object</a>, which is either an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+                      or <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
+                    <li>Continue with the next <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>.</li>
+                  </ol>
+                </li>
+                <li>If <i>node map</i> does not have a <i>subject</i> member,
+                  create one and initialize its value to a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
+                  consisting of a single member <code>@id</code> whose value is
+                  set to <i>subject</i>.</li>
+                <li>Reference the value of the <i>subject</i> member in <i>node map</i>
+                  using the variable <i>node</i>.</li>
+                <li>If <i>predicate</i> equals <code>rdf:type</code>, and <i>object</i>
+                  is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>,
+                  append <i>object</i> to the value of the <code>@type</code>
+                  member of <i>node</i>. If no such member exists, create one
+                  and initialize it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> whose only item is
+                  <i>object</i>. Finally, continue to the next
+                  <a class="tref internalDFN" title="rdf-triple" href="#dfn-rdf-triple">RDF triple</a>.</li>
+                <li>If <i>node</i> does not have an <i>predicate</i> member, create one
+                  and initialize its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                <li>Set <i>value</i> to the result of using the
+                  <a href="#rdf-to-object-conversion">RDF to Object Conversion algorithm</a>,
+                  passing <i>object</i> and <i>use native types</i>.</li>
+                <li>Add a reference to <i>value</i> to the to the <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+                  associated with the <i>predicate</i> member of <i>node</i>.</li>
+                <li>If <i>object</i> is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a
+                  <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> it might represent the
+                  head of a RDF list:
+                  <ol class="algorithm">
+                    <li>If <i>list map</i> has no <i>object</i> member, create
+                      one and set its value to an empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</li>
+                    <li>Set the <code>head</code> member of the <i>object</i>
+                      member of <i>list map</i> to a reference of <i>value</i>.
+                      This reference may be required later to replace the
+                      <i>value</i> in the <i>predicate</i> member of <i>node</i>
+                      with a <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>.</li>
+                  </ol>
+                </li>
+              </ol>
+            </li>
+          </ol>
+        </li>
+        <li>For each <i>name</i> and <i>graph object</i> in <i>graph map</i>:
+          <ol class="algorithm">
+            <li>Reference the value of the <code>listMap</code> member in
+              <i>graph object</i> using the variable <i>list map</i>.</li>
+            <li>For each key-value pair <i>subject</i>-<i>entry</i> of the
+              value associated to the <code>listMap</code> member of
+              <i>graph object</i>:
+              <ol class="algorithm">
+                <li>If <i>entry</i> has not an <code>head</code> and an
+                  <code>first</code> member it does not represent the head of
+                  a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>. Continue with the next key-value pair.</li>
+                <li>Reference the value of the <code>head</code> member in <i>entry</i>
+                  using the variable <i>value</i>.</li>
+                <li>Remove the <code>@id</code> member from <i>value</i>.</li>
+                <li>Add an <code>@list</code> member to <i>value</i> and initialize
+                  it to an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing the value of the
+                  <code>first</code> member of <i>entry</i>.</li>
+                <li>While the value associated with the <code>rest</code> member
+                  of <i>entry</i> is not <code>rdf:nil</code>:
+                  <ol class="algorithm">
+                    <li>Set <i>rest</i> to the value of the <code>rest</code>
+                      member of <i>entry</i>.</li>
+                    <li>Set <i>entry</i> to the value associated with the
+                      <i>rest</i> member of <i>list map</i>.</li>
+                    <li>Add the value associated with the <code>first</code>
+                      member of <i>entry</i> to the <code>@list</code> member
+                      of <i>value</i>.</li>
+                  </ol>
+                </li>
+              </ol>
+            </li>
+          </ol>
+        </li>
+        <li>Initialize an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a> <i>result</i>.</li>
+        <li>For each <i>subject</i> and <i>node</i> in <i>default graph nodes</i>
+          ordered by <i>subject</i>:
+          <ol class="algorithm">
+            <li>If <i>graph map</i> has an <i>subject</i> member:
+              <ol class="algorithm">
+                <li>Add a <code>@graph</code> member to <i>node</i> and initialize
+                  its value to an empty <a class="tref internalDFN" title="array" href="#dfn-array">array</a>.</li>
+                <li>Reference the <code>nodeMap</code> member of the <i>subject</i>
+                  member of <i>graph map</i> using the variable <i>node map</i>.</li>
+                <li>For each key-value pair <i>s</i>-<i>n</i> in <i>node map</i>
+                  ordered by <i>s</i>, append <i>n</i> to the <code>@graph</code>
+                  member of <i>node</i>.</li>
+              </ol>
+            </li><li>Append <i>node</i> to <i>result</i>.</li>
+          </ol>
+        </li>
+        <li>Return <i>result</i>.</li>
+      </ol>
+    </div>
+  </div>
+<!-- end of Convert from RDF algorithm -->
+
+
+  <div class="section" id="rdf-to-object-conversion">
+    <h3><span class="secno">10.5 </span>RDF to Object Conversion</h3>
+
+    <p>This algorithm transforms an RDF literal to a JSON-LD <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>
+      and a RDF blank node or <abbr title="Internationalized Resource Identifier">IRI</abbr> to an JSON-LD <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</p>
+
+    <div class="informative section">
+      <h4 id="overview-17">Overview</h4><p><em>This section is non-normative.</em></p>
+
+      <p><a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a> are transformed to
+        <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value objects</a> whereas <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> and
+        <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a> are
+        transformed to <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a>.
+        If the <i>use native types</i> flag is set to <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
+        <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a> with a
+        <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+        that equals <code>xsd:integer</code> or <code>xsd:double</code> are converted
+        to a <a class="tref internalDFN" title="number" href="#dfn-number">JSON numbers</a> and <a class="tref internalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a>
+        with a <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+        that equals <code>xsd:boolean</code> are converted to <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or
+        <a class="tref internalDFN" title="false" href="#dfn-false">false</a> based on their
+        <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
+        as described in
+        <a class="sectionRef" href="#data-round-tripping">section 10.6 Data Round Tripping</a>.</p>
+    </div>
+
+    <div class="section">
+      <h4 id="algorithm-17">Algorithm</h4>
+
+      <p>This algorithm takes two required inputs: a <i>value</i> to be converted
+        to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> and a flag <i>use native types</i>.</p>
+
+      <ol class="algorithm">
+        <li>If <i>value</i> is an an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a
+          <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>:
+          <ol class="algorithm">
+            <li>If <i>value</i> equals <code>rdf:nil</code> return a new
+              <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of a single member
+              <code>@list</code> whose value is set to an empty
+              <a class="tref internalDFN" title="array" href="#dfn-array">array</a>. This is behavior is required by the
+              <a href="#convert-from-rdf-algorithm">Convert from RDF algorithm</a>.</li>
+            <li>Otherwise, return a new <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> consisting of
+              a single member <code>@id</code> whose value is set to <i>value</i>.</li>
+          </ol>
+        </li>
+        <li>Otherwise <i>value</i> is an
+          <a class="tref externalDFN" title="rdf-literal" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literal</a>:
+          <ol class="algorithm">
+            <li>Initialize a new empty <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> result.</li>
+            <li>Initialize <i>converted value</i> to <i>value</i>.</li>
+            <li>Initialize <i>type</i> to <a class="tref internalDFN" title="null" href="#dfn-null">null</a></li>
+            <li>If <i>use native types</i> is <a class="tref internalDFN" title="true" href="#dfn-true">true</a>
+              <ol class="algorithm">
+                <li>If the
+                  <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+                  of <i>value</i> equals <code>xsd:string</code>, set
+                  <i>converted value</i> to the
+                  <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
+                  of <i>value</i>.</li>
+                <li>Otherwise, if the
+                  <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+                  of <i>value</i> equals <code>xsd:boolean</code>, set
+                  <i>converted value</i> to <a class="tref internalDFN" title="true" href="#dfn-true">true</a> if the
+                  <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
+                  of <i>value</i> matches <code>true</code>, or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>
+                  if it matches <code>false</code>. If it matches neither,
+                  set <i>type</i> to <code>xsd:boolean</code>.</li>
+                <li>Otherwise, if the
+                  <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+                  of <i>value</i> equals <code>xsd:integer</code> or
+                  <code>xsd:double</code> and its
+                  <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
+                  is a valid <code>xsd:integer</code> or <code>xsd:double</code>
+                  according [<cite><a class="bibref" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>], set <i>converted value</i>
+                  to the result of converting the
+                  <a class="tref externalDFN" title="lexical-form" href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">lexical form</a>
+                  to a JSON <a class="tref internalDFN" title="number" href="#dfn-number">number</a>.</li>
+              </ol>
+            </li>
+            <li>Otherwise, if <i>value</i> is a
+              <a class="tref externalDFN" title="language-tagged-string" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string">language-tagged string</a>
+              add a member <code>@language</code> to <i>result</i> and set its value to the
+              <a class="tref externalDFN" title="language-tag" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tag">language tag</a>
+              of <i>value</i>.</li>
+            <li>Otherwise, set <i>type</i> to the
+              <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+              of <i>value</i>, unless it equals <code>xsd:string</code> which is ignored.</li>
+            <li>Add a member <code>@value</code> to <i>result</i> whose value
+              is set to <i>converted value</i>.</li>
+            <li>If <i>type</i> is not <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, add a member <code>@type</code>
+              to <i>result</i> whose value is set to <i>type</i>.</li>
+            <li>Return <i>result</i>.</li>
+          </ol>
+        </li>
+      </ol>
+    </div>
+  </div>
+
+  <div class="section" id="data-round-tripping">
+    <h3><span class="secno">10.6 </span>Data Round Tripping</h3>
+
+    <p>When <a href="#convert-to-rdf-algorithm">converting JSON-LD to RDF</a>
+      JSON-native <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a> are automatically
+      type-coerced to <code>xsd:integer</code> or <code>xsd:double</code>
+      depending on whether the <a class="tref internalDFN" title="number" href="#dfn-number">number</a> has fractions or not,
+      the boolean values <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and <a class="tref internalDFN" title="false" href="#dfn-false">false</a> are
+      coerced to <code>xsd:boolean</code>, and <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>
+      are coerced to <code>xsd:string</code>. The numeric or boolean values
+      itself are converted to <dfn title="canonical-lexical-form" id="dfn-canonical-lexical-form">canonical lexical form</dfn>, i.e., a
+      deterministic string representation as defined in
+      [<cite><a class="bibref" href="#bib-XMLSCHEMA11-2">XMLSCHEMA11-2</a></cite>].</p>
+
+    <p>The <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of an <em>integer</em>, i.e.,
+      a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> without fractions or a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> coerced
+      to <code>xsd:integer</code>, is a finite-length sequence of decimal
+      digits (<code>0-9</code>) with an optional leading minus sign; leading
+      zeros are prohibited. In JavaScript, implementers can use the following
+      snippet of code to convert an integer to
+      <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a>:</p>
+
+    <div class="example"><div class="example-title"><span>Example 12</span>: Sample integer serialization implementation in JavaScript</div><pre class="example">(value).toFixed(0).toString()</pre></div>
+
+    <p>The <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of a <em>double</em>, i.e., a
+      <a class="tref internalDFN" title="number" href="#dfn-number">number</a> with fractions or a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> coerced to
+      <code>xsd:double</code>, consists of a mantissa followed by the
+      character <code>E</code>, followed by an exponent. The mantissa is a
+      decimal number and the exponent is an integer. Leading zeros and a
+      preceding plus sign (<code>+</code>) are prohibited in the exponent.
+      If the exponent is zero, it is indicated by <code>E0</code>. For the
+      mantissa, the preceding optional plus sign is prohibited and the
+      decimal point is required. Leading and trailing zeros are prohibited
+      subject to the following: number representations must be normalized
+      such that there is a single digit which is non-zero to the left of
+      the decimal point and at least a single digit to the right of the
+      decimal point unless the value being represented is zero. The
+      canonical representation for zero is <code>0.0E0</code>.
+      <code>xsd:double</code>'s value space is defined by the IEEE
+      double-precision 64-bit floating point type [<cite><a class="bibref" href="#bib-IEEE-754-1985">IEEE-754-1985</a></cite>] whereas
+      the value space of JSON <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a> is not
+      specified; when converting JSON-LD to RDF the mantissa is rounded to
+      15 digits after the decimal point. In JavaScript, implementers
+      can use the following snippet of code to convert a double to
+      <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a>:</p>
+
+    <div class="example"><div class="example-title"><span>Example 13</span>: Sample floating point number serialization implementation in JavaScript</div><pre class="example">(value).toExponential(15).replace(/(\d)0*e\+?/,'$1E')</pre></div>
+
+    <p>The <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a> of the <em>boolean</em>
+      values <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and <a class="tref internalDFN" title="false" href="#dfn-false">false</a> are the strings
+      <code>true</code> and <code>false</code>.</p>
+
+    <p>When JSON-native <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>, are converted
+      to RDF, lossless data round-tripping can not be guaranteed as rounding
+      errors might occur. When converting
+      <a href="#convert-from-rdf-algorithm">RDF to JSON-LD</a>, similar
+      rounding errors might occur. Furthermore, the datatype or the lexical
+      representation might be lost. An <code>xsd:double</code> with a value
+      of <code>2.0</code> will, e.g., result in an <code>xsd:integer</code>
+      with a value of <code>2</code> in <a class="tref internalDFN" title="canonical-lexical-form" href="#dfn-canonical-lexical-form">canonical lexical form</a>
+      when converted from RDF to JSON-LD and back to RDF. It is important
+      to highlight that in practice it might be impossible to losslessly
+      convert an <code>xsd:integer</code> to a <a class="tref internalDFN" title="number" href="#dfn-number">number</a> because
+      its value space is not limited. While the JSON specification [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]
+      does not limit the value space of <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>
+      either, concrete implementations typically do have a limited value
+      space.</p>
+
+    <p>To ensure lossless round-tripping the
+      <a href="#convert-from-rdf-algorithm">Converting from RDF algorithm</a>
+      specifies an <i>use native types</i> flag which controls whether
+      <a class="tref externalDFN" title="rdf-literals" href="http://www.w3.org/TR/rdf11-concepts/#dfn-literal">RDF literals</a>
+      with a <a class="tref externalDFN" title="datatype-iri" href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">datatype <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+      equal to <code>xsd:integer</code>, <code>xsd:double</code>, or
+      <code>xsd:boolean</code> are converted to their JSON-native
+      counterparts. If the <i>use native types</i> flag is set to
+      <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, all literals remain in their original string
+      representation.</p>
+
+    <p>Some JSON serializers, such as PHP's native implementation in some versions,
+      backslash-escape the forward slash character. For example, the value
+      <code>http://example.com/</code> would be serialized as <code>http:\/\/example.com\/</code>.
+      This is problematic as other JSON parsers might not understand those escaping characters.
+      There is no need to backslash-escape forward slashes in JSON-LD. To aid
+      interoperability between JSON-LD processors, forward slashes <em class="rfc2119" title="MUST NOT">MUST NOT</em> be
+      backslash-escaped.</p>
+  </div>
+<!-- end of Data Round Tripping -->
+
+</div>
+
+
+<div class="section" id="the-application-programming-interface">
+
+<!--OddPage-->
+<h2><span class="secno">11. </span>The Application Programming Interface</h2>
+
+  <p>This API provides a clean mechanism that enables developers to convert
+    JSON-LD data into a variety of output formats that are often easier to
+    work with. A conformant <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementation</a> <em class="rfc2119" title="MUST">MUST</em>
+    implement the entirety of the following API.</p>
+
+  <div class="section" id="the-jsonldprocessor-interface">
+    <h3><span class="secno">11.1 </span>The <a href="#idl-def-JsonLdProcessor" class="idlType"><code>JsonLdProcessor</code></a> Interface</h3>
+
+    <p>The <a href="#idl-def-JsonLdProcessor" class="idlType"><code>JsonLdProcessor</code></a> interface is the high-level programming structure
+      that developers use to access the JSON-LD transformation methods.</p>
+
+    <p>It is important to highlight that conformant
+      <a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementations</a>
+      <em class="rfc2119" title="MUST NOT">MUST NOT</em> modify the input parameters. If an error is detected, the <i>callback</i>
+      is invoked passing a <a href="#idl-def-JsonLdError" class="idlType"><code>JsonLdError</code></a> with the corresponding error
+      <code class="idlMemberName"><a href="#widl-JsonLdError-code">code</a></code>
+      and processing is stopped.</p>
+
+    <pre class="idl"><span class="idlInterface" id="idl-def-JsonLdProcessor">[<span class="extAttr">Constructor</span>]
+interface <span class="idlInterfaceID">JsonLdProcessor</span> {
+<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options">expand</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span>
+<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">compact</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a>?</span> <span class="idlParamName">context</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span>
+<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options">flatten</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></span> <span class="idlParamName">input</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a>?</span> <span class="idlParamName">context</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></span> <span class="idlParamName">callback</span></span>, <span class="idlParam">optional <span class="idlParamType"><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a>?</span> <span class="idlParamName">options</span></span>);</span>
+};</span></pre><div class="section"><h4 id="methods">Methods</h4><dl class="methods"><dt id="widl-JsonLdProcessor-compact-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><code>compact</code></dt><dd>
+        <p><a href="#compaction">Compacts</a> the given <i>input</i> using the
+          <i>context</i> according to the steps in the
+          <a href="#compaction-algorithm">Compaction algorithm</a>:</p>
+
+        <ol class="algorithm">
+          <li>If the passed <i>input</i> is a <span class="idlParamType">DOMString</span>
+            representing the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> of a remote document, dereference it.
+            If the retrieved document has a content type different than
+            <code>application/ld+json</code> or <code>application/json</code> or
+            if the document cannot be parsed as JSON, invoke the <i>callback</i> passing an
+            <code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed">loading document failed</a></code>
+            error.</li>
+          <li>Initialize a new empty <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
+          <li>If an
+            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
+            has been passed, update the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
+            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
+            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
+            as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
+          <li>If the <i>input</i> has been retrieved and the response has a content type
+            <code>application/json</code> and an HTTP Link Header [<cite><a class="bibref" href="#bib-RFC5988">RFC5988</a></cite>] using the
+            <code>http://www.w3.org/ns/json-ld#context</code> link relation, update the
+            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
+            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
+            context referenced in the HTTP Link Header as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
+          <li>Set <i>expanded</i> to the result of using the
+            <a href="#expansion-algorithm">Expansion algorithm</a>, passing the
+            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and <i>input</i> as <i>element</i>.</li>
+          <li>Set <i>compacted</i> to the result of using the
+            <a href="#compaction-algorithm">Compaction algorithm</a>, passing
+            <i>context</i>, <i>expanded</i> as <i>element</i>, and if passed, the
+            <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
+            flag in <i>options</i>.</li>
+          <li>Invoke <i>callback</i>, passing <a class="tref internalDFN" title="null" href="#dfn-null">null</a> for <i>error</i> and
+            <i>compacted</i> for <i>document</i>.</li>
+        </ol>
+
+
+      <table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">input</td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">The JSON-LD object or array of JSON-LD objects to perform the compaction upon or an
+            <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> referencing the JSON-LD document to compact.</td></tr><tr><td class="prmName">context</td><td class="prmType"><code><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptFalse">✘</td><td class="prmDesc">The context to use when compacting the <code>input</code>; either in the
+            form of a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> or as <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr><tr><td class="prmName">callback</td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">A callback that is called when processing completed successfully
+            on the given <code>input</code>, or a fatal error prevented
+            processing from completing.</td></tr><tr><td class="prmName">options</td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptTrue">✔</td><td class="prmDesc">A set of options to configure the algorithms. This allows, e.g.,
+            to set the input document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr></table><div><em>Return type: </em><code><a>void</a></code></div></dd><dt id="widl-JsonLdProcessor-expand-void-JsonLdInput-input-JsonLdCallback-callback-JsonLdOptions-options"><code>expand</code></dt><dd>
+        <p><a href="#expansion">Expands</a> the given <i>input</i> according to
+          the steps in the <a href="#expansion-algorithm">Expansion algorithm</a>:</p>
+
+        <ol class="algorithm">
+          <li>If the passed <i>input</i> is a <span class="idlParamType">DOMString</span>
+            representing the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> of a remote document, dereference it. If the retrieved document has a content type
+            different than <code>application/ld+json</code> or <code>application/json</code> or
+            if the document cannot be parsed as JSON, invoke the <i>callback</i> passing an
+            <code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed">loading document failed</a></code>
+            error.</li>
+          <li>Initialize a new empty <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
+          <li>If an
+            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
+            has been passed, update the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
+            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
+            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
+            as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
+          <li>If the <i>input</i> has been retrieved and the response has a content type
+            <code>application/json</code> and an HTTP Link Header [<cite><a class="bibref" href="#bib-RFC5988">RFC5988</a></cite>] using the
+            <code>http://www.w3.org/ns/json-ld#context</code> link relation, update the
+            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
+            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
+            context referenced in the HTTP Link Header as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
+          <li>Set <i>expanded</i> to the result of using the
+            <a href="#expansion-algorithm">Expansion algorithm</a>, passing the
+            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and <i>input</i> as <i>element</i>.</li>
+          <li>Invoke <i>callback</i>, passing <a class="tref internalDFN" title="null" href="#dfn-null">null</a> for <i>error</i> and
+            <i>expanded</i> for <i>document</i>.</li>
+        </ol>
+
+
+      <table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">input</td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">The JSON-LD object or array of JSON-LD objects to perform the expansion upon or an
+            <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> referencing the JSON-LD document to expand.</td></tr><tr><td class="prmName">callback</td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">A callback that is called when processing completed successfully
+            on the given <code>input</code>, or a fatal error prevented
+            processing from completing.</td></tr><tr><td class="prmName">options</td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptTrue">✔</td><td class="prmDesc">A set of options to configure the used algorithms such. This allows, e.g.,
+            to set the input document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr></table><div><em>Return type: </em><code><a>void</a></code></div></dd><dt id="widl-JsonLdProcessor-flatten-void-JsonLdInput-input-JsonLdContext-context-JsonLdCallback-callback-JsonLdOptions-options"><code>flatten</code></dt><dd>
+        <p><a href="#flattening">Flattens</a> the given <i>input</i> and
+          <a href="#compaction">compacts</a> it using the passed <i>context</i>
+          according to the steps in the <a href="#flattening-algorithm">Flattening algorithm</a>:</p>
+
+        <ol class="algorithm">
+          <li>If the passed <i>input</i> is a <span class="idlParamType">DOMString</span>
+            representing the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> of a remote document, dereference it. If the retrieved document has a content type
+            different than <code>application/ld+json</code> or <code>application/json</code> or
+            if the document cannot be parsed as JSON, invoke the <i>callback</i> passing an
+            <code class="error"><a href="#idl-def-JsonLdErrorCode.loading-document-failed">loading document failed</a></code>
+            error.</li>
+          <li>Initialize a new empty <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</li>
+          <li>If an
+            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
+            has been passed, update the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
+            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
+            <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
+            as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
+          <li>If the <i>input</i> has been retrieved and the response has a content type
+            <code>application/json</code> and an HTTP Link Header [<cite><a class="bibref" href="#bib-RFC5988">RFC5988</a></cite>] using the
+            <code>http://www.w3.org/ns/json-ld#context</code> link relation, update the
+            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> using the
+            <a href="#context-processing-algorithm">Context Processing algorithm</a>, passing the
+            context referenced in the HTTP Link Header as <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>.</li>
+          <li>Set <i>expanded</i> to the result of using the
+            <a href="#expansion-algorithm">Expansion algorithm</a>, passing the
+            <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and <i>input</i> as <i>element</i>.</li>
+          <li>Initialize an empty <i>identifier map</i> and a <i>counter</i> (set to <code>0</code>)
+            to be used by the
+            <a href="#generate-blank-node-identifier">Generate Blank Node Identifier algorithm</a>.</li>
+          <li>Set <i>flattened</i> to the result of using the
+            <a href="#flattening-algorithm">Flattening algorithm</a>, passing
+            <i>expanded</i> as <i>element</i>, <i>context</i>, and if passed, the
+            <code class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></code>
+            flag in <i>options</i> (which is internally passed to the
+            <a href="#compaction-algorithm">Compaction algorithm</a>).</li>
+          <li>Invoke <i>callback</i>, passing <a class="tref internalDFN" title="null" href="#dfn-null">null</a> for <i>error</i> and
+            <i>flattened</i> for <i>document</i>.</li>
+        </ol>
+
+
+      <table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">input</td><td class="prmType"><code><a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">The JSON-LD object or array of JSON-LD objects or an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+            referencing the JSON-LD document to flatten.</td></tr><tr><td class="prmName">context</td><td class="prmType"><code><a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptFalse">✘</td><td class="prmDesc">The context to use when compacting the flattened <code>input</code>; either
+            in the form of a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> or as <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. If
+            <a class="tref internalDFN" title="null" href="#dfn-null">null</a> is passed, the result will not be compacted but kept
+            in expanded form.</td></tr><tr><td class="prmName">callback</td><td class="prmType"><code><a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc">A callback that is called when processing completed successfully
+            on the given <code>input</code>, or a fatal error prevented
+            processing from completing.</td></tr><tr><td class="prmName">options</td><td class="prmType"><code><a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a></code></td><td class="prmNullTrue">✔</td><td class="prmOptTrue">✔</td><td class="prmDesc">A set of options to configure the used algorithms such. This allows, e.g.,
+            to set the input document's base <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr></table><div><em>Return type: </em><code><a>void</a></code></div></dd></dl></div>
+
+    <pre class="idl"><span class="idlTypedef" id="idl-def-JsonLdInput">typedef <span class="idlTypedefType">(<a>object</a> or <a>object[]</a> or <a>DOMString</a>)</span> <span class="idlTypedefID">JsonLdInput</span>;</span></pre><div class="idlTypedefDesc">
+      <p>The identifier <a href="#idl-def-JsonLdInput" class="idlType"><code>JsonLdInput</code></a> is used to refer to the
+        <span class="idlTypedefType">(object or object[] or DOMString)</span> type.</p>
+    </div>
+
+    <pre class="idl"><span class="idlTypedef" id="idl-def-JsonLdContext">typedef <span class="idlTypedefType">(<a>object</a> or <a>DOMString</a>)</span> <span class="idlTypedefID">JsonLdContext</span>;</span></pre><div class="idlTypedefDesc">
+      <p>The identifier <a href="#idl-def-JsonLdContext" class="idlType"><code>JsonLdContext</code></a> is used to refer to the
+        <span class="idlTypedefType">(object or DOMString)</span> type.</p>
+    </div>
+  </div>
+<!-- end of JsonLdProcessor -->
+
+
+  <div class="section" id="callbacks">
+    <h3><span class="secno">11.2 </span>Callbacks</h3>
+
+    <p><a class="tref internalDFN" title="json-ld-api-implementation" href="#dfn-json-ld-api-implementation">JSON-LD API Implementations</a>
+      utilize callbacks in order to exchange information in an asynchronous manner
+      with applications. This section details the parameters of those callbacks.</p>
+
+    <div class="section">
+      <h4 id="jsonldcallback">JsonLdCallback</h4>
+      <p>The <a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a> is called when an API method of
+        <a href="#idl-def-JsonLdProcessor" class="idlType"><code>JsonLdProcessor</code></a> has been completed, either successfully or
+        by a fatal error.</p>
+
+      <pre class="idl"><span class="idlCallback" id="idl-def-JsonLdCallback">callback <span class="idlCallbackID">JsonLdCallback</span> = <span class="idlCallbackType"><a>void</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-JsonLdError"><code>JsonLdError</code></a></span> <span class="idlParamName">error</span></span>, <span class="idlParam">optional <span class="idlParamType"><a>(object or object[])</a></span> <span class="idlParamName">document</span></span>);</span></pre><section><h5 id="callback-jsonldcallback-parameters">Callback <a class="idlType" href="#idl-def-JsonLdCallback"><code>JsonLdCallback</code></a> Parameters</h5><dl class="callback-members"><dt id="widl-JsonLdCallback-error"><code>error</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-JsonLdError"><code>JsonLdError</code></a></span></dt><dd>If the value is <a title="null" class="tref internalDFN" href="#dfn-null">null</a>, then no issue was detected
+          during processing. Otherwise, a processing error was detected and
+          the details are contained within the <em>error</em> object.</dd><dt id="widl-JsonLdCallback-document"><code>document</code> of type <span class="idlMemberType"><a>(object or object[])</a></span></dt><dd>The processed JSON-LD document.</dd></dl></div>
+    </div>
+
+    <div class="section">
+      <h4 id="loadcontextcallback">LoadContextCallback</h4>
+      <p>The <a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a> defines the callback that custom context loaders
+        have to implement to be used to retrieve remote contexts.</p>
+
+      <pre class="idl"><span class="idlCallback" id="idl-def-LoadContextCallback">callback <span class="idlCallbackID">LoadContextCallback</span> = <span class="idlCallbackType"><a>void</a></span> (<span class="idlParam"><span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">url</span></span>, <span class="idlParam"><span class="idlParamType"><a href="#idl-def-ContextLoadedCallback" class="idlType"><code>ContextLoadedCallback</code></a></span> <span class="idlParamName">callback</span></span>);</span></pre><div class="section"><h5 id="callback-loadcontextcallback-parameters">Callback <a class="idlType" href="#idl-def-LoadContextCallback"><code>LoadContextCallback</code></a> Parameters</h5><dl class="callback-members"><dt id="widl-LoadContextCallback-url"><code>url</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>The URL of the remote context to load.</dd><dt id="widl-LoadContextCallback-callback"><code>callback</code> of type <span class="idlMemberType"><a href="#idl-def-ContextLoadedCallback" class="idlType"><code>ContextLoadedCallback</code></a></span></dt><dd>The callback that is called when the remote context has been
+          successfully loaded or an error preventing its loading has been
+          detected.</dd></dl></div>
+    </div>
+
+    <div class="section">
+      <h4 id="contextloadedcallback">ContextLoadedCallback</h4>
+      <p>The <a href="#idl-def-ContextLoadedCallback" class="idlType"><code>ContextLoadedCallback</code></a> is called in response to a call
+        of the <a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a>.</p>
+
+      <pre class="idl"><span class="idlCallback" id="idl-def-ContextLoadedCallback">callback <span class="idlCallbackID">ContextLoadedCallback</span> = <span class="idlCallbackType"><a>void</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-JsonLdError" class="idlType"><code>JsonLdError</code></a></span> <span class="idlParamName">error</span></span>, <span class="idlParam"><span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">url</span></span>, <span class="idlParam"><span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">context</span></span>);</span></pre><div class="section"><h5 id="callback-contextloadedcallback-parameters">Callback <a class="idlType" href="#idl-def-ContextLoadedCallback"><code>ContextLoadedCallback</code></a> Parameters</h5><dl class="callback-members"><dt id="widl-ContextLoadedCallback-error"><code>error</code> of type <span class="idlMemberType"><a href="#idl-def-JsonLdError" class="idlType"><code>JsonLdError</code></a></span></dt><dd>If the value is <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, then no issue was detected
+          during processing. Otherwise, a processing issue was detected and
+          the details are contained within the <em>error</em> object. All
+          errors <em class="rfc2119" title="MUST">MUST</em> have a <a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a> of
+          <code class="error"><a href="#idl-def-JsonLdErrorCode.loading-remote-context-failed">loading remote context failed</a></code>.</dd><dt id="widl-ContextLoadedCallback-url"><code>url</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>The final URL of the loaded JSON-LD context. This is important
+          to handle HTTP redirects properly.</dd><dt id="widl-ContextLoadedCallback-context"><code>context</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>The raw content of the retrieved JSON-LD context.</dd></dl></div>
+    </div>
+  </div>
+<!-- end of Callbacks -->
+
+
+  <div class="section" id="data-structures">
+    <h3><span class="secno">11.3 </span>Data Structures</h3>
+    <p>This section describes datatype definitions used within the JSON-LD API.</p>
+
+    <div class="section">
+      <h4 id="jsonldoptions">JsonLdOptions</h4>
+      <p>The <a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a> type is used to pass various options to the
+        <a href="#idl-def-JsonLdProcessor" class="idlType"><code>JsonLdProcessor</code></a> methods.</p>
+      <pre class="idl"><span class="idlDictionary" id="idl-def-JsonLdOptions">dictionary <span class="idlDictionaryID">JsonLdOptions</span> {
+<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a></span>             <span class="idlMemberName"><a href="#widl-JsonLdOptions-base">base</a></span>;</span>
+<span class="idlMember">    <span class="idlMemberType"><a>boolean</a></span>               <span class="idlMemberName"><a href="#widl-JsonLdOptions-compactArrays">compactArrays</a></span> = <span class="idlMemberValue">true</span>;</span>
+<span class="idlMember">    <span class="idlMemberType"><a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a></span>   <span class="idlMemberName"><a href="#widl-JsonLdOptions-loadContext">loadContext</a></span>;</span>
+<span class="idlMember">    <span class="idlMemberType">(<a>object</a> or <a>DOMString</a>)</span> <span class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></span> = <span class="idlMemberValue">null</span>;</span>
+<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a></span>             <span class="idlMemberName"><a href="#widl-JsonLdOptions-processingMode">processingMode</a></span> = <span class="idlMemberValue">&quot;json-ld-1.0&quot;</span>;</span>
+};</span></pre><div class="section"><h5 id="dictionary-jsonldoptions-members">Dictionary <a class="idlType" href="#idl-def-JsonLdOptions"><code>JsonLdOptions</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-JsonLdOptions-base"><code>base</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>The base <abbr title="Internationalized Resource Identifier">IRI</abbr> to use when expanding or compacting the document. This overrides the value of
+          <em>input</em> if it is an <abbr title="Internationalized Resource Identifier">IRI</abbr>. If not specified and <em>input</em> is not
+          an <abbr title="Internationalized Resource Identifier">IRI</abbr>, the base <abbr title="Internationalized Resource Identifier">IRI</abbr> defaults to the current document <abbr title="Internationalized Resource Identifier">IRI</abbr> if in a browser context,
+          or the empty string if there is no document context.
+          <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 4</span>: Default value of base member in JsonLdOptions</div><div class="atrisk">
+            <p class="atrisk-head">Note: This feature is
+              <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
+              be removed from this specification based on feedback. Please send feedback to
+              <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
+              For the current status see
+              <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
+            <p>The default value of <code class="idlMemberName"><a href="#widl-JsonLdOptions-base">base</a></code>
+              in <a href="#idl-def-JsonLdOptions" class="idlType"><code>JsonLdOptions</code></a> implies that all IRIs that cannot be compacted otherwise
+              are transformed to relative IRIs during compaction. To avoid that data is being
+              lost, developers thus have to store the base <abbr title="Internationalized Resource Identifier">IRI</abbr> along with the compacted document.
+              Based on implementer feedback, the  Working Group may decide to change the default
+              value to <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, meaning that IRIs are not automatically compacted to
+              relative IRIs.</p>
+          </div></div>
+        </dd><dt id="widl-JsonLdOptions-compactArrays"><code>compactArrays</code> of type <span class="idlMemberType"><a>boolean</a></span>, defaulting to <code>true</code></dt><dd>If set to <code>true</code>, the JSON-LD processor replaces arrays with just
+          one element with that element during compaction. If set to <code>false</code>,
+          all arrays will remain arrays even if they have just one element.
+        </dd><dt id="widl-JsonLdOptions-expandContext"><code>expandContext</code> of type <span class="idlMemberType"><a>(object or DOMString)</a></span>, defaulting to <code>null</code></dt><dd>A context that is used to initialize the active context when expanding a document.</dd><dt id="widl-JsonLdOptions-loadContext"><code>loadContext</code> of type <span class="idlMemberType"><a href="#idl-def-LoadContextCallback" class="idlType"><code>LoadContextCallback</code></a></span></dt><dd>The callback of the context loader to be used to retrieve remote contexts.
+          If specified, it <em class="rfc2119" title="MUST">MUST</em> be used to retrieve remote contexts; otherwise, if not specified,
+          the processor's built-in context loader <em class="rfc2119" title="MUST">MUST</em> be used.</dd><dt id="widl-JsonLdOptions-processingMode"><code>processingMode</code> of type <span class="idlMemberType"><a>DOMString</a></span>, defaulting to <code>&quot;json-ld-1.0&quot;</code></dt><dd>If set to <code>json-ld-1.0</code>, the JSON-LD processor <em class="rfc2119" title="MUST">MUST</em> produce
+          exactly the same results as the algorithms defined in this specification.
+          If set to another value, the JSON-LD processor is allowed to extend
+          or modify the algorithms defined in this specification to enable
+          application-specific optimizations. The definition of such
+          optimizations is beyond the scope of this specification and thus
+          not defined. Consequently, different implementations <em class="rfc2119" title="MAY">MAY</em> implement
+          different optimizations. Developers <em class="rfc2119" title="MUST NOT">MUST NOT</em> define modes beginning
+          with <code>json-ld</code> as they are reserved for future versions
+          of this specification.</dd></dl></div>
+    </div>
+
+    <div class="section">
+      <h4 id="jsonlderror">JsonLdError</h4>
+
+      <p>The <a href="#idl-def-JsonLdError" class="idlType"><code>JsonLdError</code></a> type is used to report processing errors
+        to a <a href="#idl-def-JsonLdCallback" class="idlType"><code>JsonLdCallback</code></a>.</p>
+
+      <pre class="idl"><span class="idlDictionary" id="idl-def-JsonLdError">dictionary <span class="idlDictionaryID">JsonLdError</span> {
+<span class="idlMember">    <span class="idlMemberType"><a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a></span> <span class="idlMemberName"><a href="#widl-JsonLdError-code">code</a></span>;</span>
+<span class="idlMember">    <span class="idlMemberType"><a>DOMString</a>?</span>      <span class="idlMemberName"><a href="#widl-JsonLdError-message">message</a></span>;</span>
+};</span></pre><div class="section"><h5 id="dictionary-jsonlderror-members">Dictionary <a class="idlType" href="#idl-def-JsonLdError"><code>JsonLdError</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-JsonLdError-code"><code>code</code> of type <span class="idlMemberType"><a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a></span></dt><dd>a string representing the particular error type, as described in
+          the various algorithms in this document.</dd><dt id="widl-JsonLdError-message"><code>message</code> of type <span class="idlMemberType"><a>DOMString</a></span>, nullable</dt><dd>an optional error message containing additional debugging information.
+          The specific contents of error messages are outside the scope of this
+          specification.</dd></dl></div>
+    </div>
+
+    <div class="section">
+      <h4 id="jsonlderrorcode">JsonLdErrorCode</h4>
+      <p>The <a href="#idl-def-JsonLdErrorCode" class="idlType"><code>JsonLdErrorCode</code></a> represents the collection of valid JSON-LD error
+        codes.</p>
+
+      <pre class="idl"><span class="idlEnum" id="idl-def-JsonLdErrorCode">enum <span class="idlEnumID">JsonLdErrorCode</span> {
+    &quot;<a href="#idl-def-JsonLdErrorCode.loading-document-failed" class="idlEnumItem">loading document failed</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.list-of-lists" class="idlEnumItem">list of lists</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--index-value" class="idlEnumItem">invalid @index value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.conflicting-indexes" class="idlEnumItem">conflicting indexes</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--id-value" class="idlEnumItem">invalid @id value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-local-context" class="idlEnumItem">invalid local context</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.loading-remote-context-failed" class="idlEnumItem">loading remote context failed</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-remote-context" class="idlEnumItem">invalid remote context</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.recursive-context-inclusion" class="idlEnumItem">recursive context inclusion</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-base-IRI" class="idlEnumItem">invalid base IRI</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-vocab-mapping" class="idlEnumItem">invalid vocab mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-default-language" class="idlEnumItem">invalid default language</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.keyword-redefinition" class="idlEnumItem">keyword redefinition</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-term-definition" class="idlEnumItem">invalid term definition</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property" class="idlEnumItem">invalid reverse property</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping" class="idlEnumItem">invalid IRI mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.cyclic-IRI-mapping" class="idlEnumItem">cyclic IRI mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-keyword-alias" class="idlEnumItem">invalid keyword alias</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-type-mapping" class="idlEnumItem">invalid type mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-mapping" class="idlEnumItem">invalid language mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.colliding-keywords" class="idlEnumItem">colliding keywords</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-container-mapping" class="idlEnumItem">invalid container mapping</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-type-value" class="idlEnumItem">invalid type value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-value-object" class="idlEnumItem">invalid value object</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-value-object-value" class="idlEnumItem">invalid value object value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-string" class="idlEnumItem">invalid language-tagged string</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-value" class="idlEnumItem">invalid language-tagged value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-typed-value" class="idlEnumItem">invalid typed value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-set-or-list-object" class="idlEnumItem">invalid set or list object</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-language-map-value" class="idlEnumItem">invalid language map value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.compaction-to-list-of-lists" class="idlEnumItem">compaction to list of lists</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-map" class="idlEnumItem">invalid reverse property map</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid--reverse-value" class="idlEnumItem">invalid @reverse value</a>&quot;,
+    &quot;<a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-value" class="idlEnumItem">invalid reverse property value</a>&quot;
+};</span></pre><table class="simple"><tr><th colspan="2">Enumeration description</th></tr><tr><td><code id="idl-def-JsonLdErrorCode.loading-document-failed">loading document failed</code></td><td>The document could not be loaded or parsed as JSON.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.list-of-lists">list of lists</code></td><td>A list of lists was detected. List of lists are not supported in
+          this version of JSON-LD due to the algorithmic complexity associated
+          with conversion to RDF.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--index-value">invalid @index value</code></td><td>An <code>@index</code> member was encountered whose value was
+          not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.conflicting-indexes">conflicting indexes</code></td><td>Multiple conflicting indexes have been found for the same node.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--id-value">invalid @id value</code></td><td>An <code>@id</code> member was encountered whose value was not a
+          <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-local-context">invalid local context</code></td><td>In invalid <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> was detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.loading-remote-context-failed">loading remote context failed</code></td><td>There was a problem encountered loading a remote context.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-remote-context">invalid remote context</code></td><td>No valid context document has been found for a referenced,
+         remote context.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.recursive-context-inclusion">recursive context inclusion</code></td><td>A cycle in remote context inclusions has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-base-IRI">invalid base IRI</code></td><td>An invalid <a class="tref internalDFN" title="base-iri" href="#dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></a> has been detected, i.e., it is
+          neither an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> nor <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-vocab-mapping">invalid vocab mapping</code></td><td>An invalid <a class="tref internalDFN" title="vocabulary-mapping" href="#dfn-vocabulary-mapping">vocabulary mapping</a> has been detected, i.e.,
+          it is neither an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> nor <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-default-language">invalid default language</code></td><td>The value of the <a class="tref internalDFN" title="default-language" href="#dfn-default-language">default language</a> is not a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>
+          or <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and thus invalid.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.keyword-redefinition">keyword redefinition</code></td><td>A <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> redefinition has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-term-definition">invalid term definition</code></td><td>An invalid <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a> has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property">invalid reverse property</code></td><td>An invalid reverse property definition has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid IRI mapping</code></td><td>A <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> contains a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> that has
+          an invalid or missing <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mapping</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.cyclic-IRI-mapping">cyclic IRI mapping</code></td><td>A cycle in <a class="tref internalDFN" title="iri-mapping" href="#dfn-iri-mapping"><abbr title="Internationalized Resource Identifier">IRI</abbr> mappings</a> has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-keyword-alias">invalid keyword alias</code></td><td>An invalid <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> alias definition has been
+          encountered.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-type-mapping">invalid type mapping</code></td><td>An <code>@type</code> member in a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
+          was encountered whose value could not be expanded to an
+          <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-mapping">invalid language mapping</code></td><td>An <code>@language</code> member in a <a class="tref internalDFN" title="term-definition" href="#dfn-term-definition">term definition</a>
+          was encountered whose value was neither a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> nor
+          <a class="tref internalDFN" title="null" href="#dfn-null">null</a> and thus invalid.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.colliding-keywords">colliding keywords</code></td><td>Two properties which expand to the same keyword have been detected.
+          This might occur if a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> and an an alias thereof
+          are used at the same time.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-container-mapping">invalid container mapping</code></td><td>An <code>@container</code> member was encountered whose value was
+          not one of the following <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>:
+          <code>@list</code>, <code>@set</code>, or <code>@index</code>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-type-value">invalid type value</code></td><td>An invalid value for an <code>@type</code> member has been detected,
+          i.e., the value was neither a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> nor an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+          of <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-value-object">invalid value object</code></td><td>A <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> with disallowed members has been
+          detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-value-object-value">invalid value object value</code></td><td>An invalid value for the <code>@value</code> member of a
+          <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> has been detected, i.e., it is neither
+          a <a class="tref internalDFN" title="scalar" href="#dfn-scalar">scalar</a> nor <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-tagged-string">invalid language-tagged string</code></td><td>A <a class="tref internalDFN" title="language-tagged-string" href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string">language-tagged string</a> with an invalid language
+          value was detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-tagged-value">invalid language-tagged value</code></td><td>A <a class="tref internalDFN" title="number" href="#dfn-number">number</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, or <a class="tref internalDFN" title="false" href="#dfn-false">false</a> with an
+          associated language tag was detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-typed-value">invalid typed value</code></td><td>A <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a> with an invalid type was detected.
+        </td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-set-or-list-object">invalid set or list object</code></td><td>A <a class="tref internalDFN" title="set-object" href="#dfn-set-object">set object</a> or <a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a> with
+          disallowed members has been detected.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-language-map-value">invalid language map value</code></td><td>An invalid value in a <a class="tref externalDFN" title="language-map" href="../json-ld/#dfn-language-map">language map</a>
+          has been detected. It has to be a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> or an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of
+          <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.compaction-to-list-of-lists">compaction to list of lists</code></td><td>The compacted document contains a list of lists as multiple
+          lists have been compacted to the same term.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property-map">invalid reverse property map</code></td><td>An invalid reverse property map has been detected. No
+          <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> apart from <code>@context</code>
+          are allowed in reverse property maps.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid--reverse-value">invalid @reverse value</code></td><td>An invalid value for an <code>@reverse</code> member has been detected,
+          i.e., the value was not a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</td></tr><tr><td><code id="idl-def-JsonLdErrorCode.invalid-reverse-property-value">invalid reverse property value</code></td><td>An invalid value for a reverse property has been detected. The value of an inverse
+          property must be a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</td></tr></table>
+    </div>
+  </div>
+<!-- end of Data Structures -->
+
+</div>
+<!-- end of The Application Programming Interfaces -->
+
+
+<div class="appendix informative section" id="acknowledgements">
+
+<!--OddPage-->
+<h2><span class="secno">A. </span>Acknowledgements</h2><p><em>This section is non-normative.</em></p>
+
+  <p>A large amount of thanks goes out to the JSON-LD Community Group
+    participants who worked through many of the technical issues on the mailing
+    list and the weekly telecons - of special mention are Niklas Lindström,
+    François Daoust, Lin Clark, and Zdenko 'Denny' Vrandečić.
+    The editors would like to thank Mark Birbeck, who provided a great deal of
+    the initial push behind the JSON-LD work via his work on RDFj.
+    The work of Dave Lehn and Mike Johnson are appreciated for reviewing,
+    and performing several implementations of the specification. Ian Davis is
+    thanked for his work on RDF/JSON. Thanks also to Nathan Rixham,
+    Bradley P. Allen, Kingsley Idehen, Glenn McDonald, Alexandre Passant,
+    Danny Ayers, Ted Thibodeau Jr., Olivier Grisel, Josh Mandel, Eric Prud'hommeaux,
+    David Wood, Guus Schreiber, Pat Hayes, Sandro Hawke, and Richard Cyganiak
+    for their input on the specification.</p>
+</div>
+
+
+
+<div id="references" class="appendix section" typeof="bibo:Chapter" resource="#references" rel="bibo:chapter">
+<!--OddPage-->
+<h2><span class="secno">B. </span>References</h2><div class="section" id="normative-references" typeof="bibo:Chapter" resource="#normative-references" rel="bibo:chapter"><h3><span class="secno">B.1 </span>Normative references</h3><dl class="bibliography" about=""><dt id="bib-IEEE-754-1985">[IEEE-754-1985]</dt><dd rel="dcterms:requires">IEEE. <cite>IEEE Standard for Binary Floating-Point Arithmetic.</cite> URL: <a href="http://standards.ieee.org/reading/ieee/std_public/description/busarch/754-1985_desc.html">http://standards.ieee.org/reading/ieee/std_public/description/busarch/754-1985_desc.html</a>
+</dd><dt id="bib-JSON-LD">[JSON-LD]</dt><dd rel="dcterms:requires">Manu Sporny, Gregg Kellogg, Markus Lanthaler, Editors. <cite><a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">JSON-LD 1.0</a>.</cite> W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">http://www.w3.org/TR/2013/WD-json-ld-20130411/</a>. The latest edition is available at <a href="http://www.w3.org/TR/json-ld/">http://www.w3.org/TR/json-ld/</a>
+</dd><dt id="bib-RDF-MT">[RDF-MT]</dt><dd rel="dcterms:requires">Patrick Hayes. <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210"><cite>RDF Semantics</cite></a>. 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210">http://www.w3.org/TR/2004/REC-rdf-mt-20040210</a>
+</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd rel="dcterms:requires">S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119.  URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
+</dd><dt id="bib-RFC3986">[RFC3986]</dt><dd rel="dcterms:requires">T. Berners-Lee; R. Fielding; L. Masinter. <a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource Identifier (URI): Generic Syntax (RFC 3986)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
+</dd><dt id="bib-RFC3987">[RFC3987]</dt><dd rel="dcterms:requires">M. Dürst; M. Suignard. <a href="http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized Resource Identifiers (IRIs) (RFC 3987)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3987.txt">http://www.ietf.org/rfc/rfc3987.txt</a>
+</dd><dt id="bib-RFC4627">[RFC4627]</dt><dd rel="dcterms:requires">D. Crockford. <a href="http://www.ietf.org/rfc/rfc4627.txt"><cite>The application/json Media Type for JavaScript Object Notation (JSON) (RFC 4627)</cite></a>. July 2006. RFC. URL: <a href="http://www.ietf.org/rfc/rfc4627.txt">http://www.ietf.org/rfc/rfc4627.txt</a>
+</dd><dt id="bib-RFC5988">[RFC5988]</dt><dd rel="dcterms:requires">M. Nottingham. <cite><a href="http://www.ietf.org/rfc/rfc5988.txt">Web Linking</a>.</cite> October 2010. Internet RFC 5988. URL: <a href="http://www.ietf.org/rfc/rfc5988.txt">http://www.ietf.org/rfc/rfc5988.txt</a>
+</dd><dt id="bib-WEBIDL">[WEBIDL]</dt><dd rel="dcterms:requires">Cameron McCormack, Editor. <cite><a href="http://www.w3.org/TR/2012/CR-WebIDL-20120419/">Web IDL.</a></cite> 19 April 2012. W3C Candidate Recommendation (work in progress). URL: <a href="http://www.w3.org/TR/2012/CR-WebIDL-20120419/">http://www.w3.org/TR/2012/CR-WebIDL-20120419/</a>. The latest edition is available at <a href="http://www.w3.org/TR/WebIDL/">http://www.w3.org/TR/WebIDL/</a>
+</dd><dt id="bib-XMLSCHEMA11-2">[XMLSCHEMA11-2]</dt><dd rel="dcterms:requires">Henry S. Thompson et al. <a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/"><cite>W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes</cite></a>. 5 April 2012. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/">http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/</a>
+</dd></dl></div><div class="section" id="informative-references" typeof="bibo:Chapter" resource="#informative-references" rel="bibo:chapter"><h3><span class="secno">B.2 </span>Informative references</h3><dl class="bibliography" about=""><dt id="bib-BCP47">[BCP47]</dt><dd rel="dcterms:references">A. Phillips; M. Davis. <a href="http://tools.ietf.org/html/bcp47"><cite>Tags for Identifying Languages</cite></a>. September 2009. IETF Best Current Practice. URL: <a href="http://tools.ietf.org/html/bcp47">http://tools.ietf.org/html/bcp47</a>
+</dd><dt id="bib-ECMA-262">[ECMA-262]</dt><dd rel="dcterms:references"><a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm"><cite>ECMAScript Language Specification, Edition 5.1</cite></a>. June 2011. URL: <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">http://www.ecma-international.org/publications/standards/Ecma-262.htm</a>
+</dd><dt id="bib-JSON-LD-TESTS">[JSON-LD-TESTS]</dt><dd rel="dcterms:references"><cite><a href="http://www.w3.org/2013/json-ld-tests/">JSON-LD 1.0 Test Suite</a></cite>. W3C Test Suite (work in progress). URL: <a href="http://www.w3.org/2013/json-ld-tests/">http://www.w3.org/2013/json-ld-tests/</a>
+</dd><dt id="bib-RDF11-CONCEPTS">[RDF11-CONCEPTS]</dt><dd rel="dcterms:references">Richard Cyganiak, David Wood, Editors. <cite><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">RDF 1.1 Concepts and Abstract Syntax.</a></cite> 15 January 2013. W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/</a>. The latest edition is available at <a href="http://www.w3.org/TR/rdf11-concepts/">http://www.w3.org/TR/rdf11-concepts/</a>
+</dd><dt id="bib-TURTLE">[TURTLE]</dt><dd rel="dcterms:references">Eric Prud'hommeaux, Gavin Carothers, Editors. <cite><a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">Turtle: Terse RDF Triple Language.</a></cite> 19 February 2013. W3C Candidate Recommendation (work in progress). URL: <a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">http://www.w3.org/TR/2013/CR-turtle-20130219/</a>. The latest edition is available at <a href="http://www.w3.org/TR/turtle/">http://www.w3.org/TR/turtle/</a>
+</dd></dl></div></div></body></html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spec/WD/json-ld/20130411/diff-20120712.html	Tue Apr 09 11:49:05 2013 -0400
@@ -0,0 +1,27074 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
+<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" prefix='bibo: http://purl.org/ontology/bibo/' typeof="bibo:Document">
+<head>
+<title>JSON-LD 1.0</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<style type="text/css">
+  .diff { font-weight:bold; color:#0a3; }
+  table, thead, tr, td { padding: 5px; border-width: 1px; border-spacing: 0px; border-style: solid; border-collapse: collapse; }
+  .atrisk-head { font-style: italic; }
+</style>
+<style>
+/* --- INLINES --- */
+em.rfc2119 {
+    text-transform:     lowercase;
+    font-variant:       small-caps;
+    font-style:         normal;
+    color:              #900;
+}
+
+h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
+h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
+    border: none;
+}
+
+dfn {
+    font-weight:    bold;
+}
+
+a.internalDFN {
+    color:  inherit;
+    border-bottom:  1px solid #99c;
+    text-decoration:    none;
+}
+
+a.externalDFN {
+    color:  inherit;
+    border-bottom:  1px dotted #ccc;
+    text-decoration:    none;
+}
+
+a.bibref {
+    text-decoration:    none;
+}
+
+cite .bibref {
+    font-style: normal;
+}
+
+code {
+    color:  #ff4500;
+}
+
+
+/* --- --- */
+ol.algorithm { counter-reset:numsection; list-style-type: none; }
+ol.algorithm li { margin: 0.5em 0; }
+ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
+
+/* --- TOC --- */
+.toc a, .tof a {
+    text-decoration:    none;
+}
+
+a .secno, a .figno {
+    color:  #000;
+}
+
+ul.tof, ol.tof {
+    list-style: none outside none;
+}
+
+.caption {
+    margin-top: 0.5em;
+    font-style:   italic;
+}
+
+/* --- TABLE --- */
+table.simple {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    border-bottom:  3px solid #005a9c;
+}
+
+.simple th {
+    background: #005a9c;
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+}
+
+.simple th[scope="row"] {
+    background: inherit;
+    color:  inherit;
+    border-top: 1px solid #ddd;
+}
+
+.simple td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+    background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd > p:first-child {
+    margin-top: 0;
+}
+
+.section dd > p:last-child {
+    margin-bottom: 0;
+}
+
+.section dd {
+    margin-bottom:  1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+    margin-bottom:  0;
+}
+</style><style>/* --- EXAMPLES --- */
+div.example-title {
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.example-title span {
+    text-transform: uppercase;
+}
+aside.example, div.example, div.illegal-example {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+div.illegal-example { color: red }
+div.illegal-example p { color: black }
+aside.example, div.example {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+    border-color: #e0cb52;
+    background: #fcfaee;
+}
+
+aside.example div.example {
+    border-left-width: .1em;
+    border-color: #999;
+    background: #fff;
+}
+aside.example div.example div.example-title {
+    color: #999;
+}
+</style><style>/* --- ISSUES/NOTES --- */
+div.issue-title, div.note-title {
+    padding-right:  1em;
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.issue-title { color: #e05252; }
+div.note-title { color: #52e052; }
+div.issue-title span, div.note-title span {
+    text-transform: uppercase;
+}
+div.note, div.issue {
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+.note > p:first-child, .issue > p:first-child { margin-top: 0 }
+.issue, .note {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+}
+div.issue, div.note {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+span.note, span.issue { padding: .1em .5em .15em; }
+
+.issue {
+    border-color: #e05252;
+    background: #fbe9e9;
+}
+.note {
+    border-color: #52e052;
+    background: #e9fbe9;
+}
+
+
+</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
+<!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
+
+<!--[if lt IE 9]><script src='http://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
+<style type='text/css'>
+.diff-old-a {
+  font-size: smaller;
+  color: red;
+}
+
+.diff-new { background-color: yellow; }
+.diff-chg { background-color: lime; }
+.diff-new:before,
+.diff-new:after
+    { content: "\2191" }
+.diff-chg:before, .diff-chg:after
+    { content: "\2195" }
+.diff-old { text-decoration: line-through; background-color: #FBB; }
+.diff-old:before,
+.diff-old:after
+    { content: "\2193" }
+:focus { border: thin red solid}
+</style>
+</head>
+
+<body><div class="head">
+<p>
+<a href="http://www.w3.org/">
+<img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" />
+</a>
+</p>
+<h1 class="title" id="title">
+JSON-LD
+<del class="diff-old">Syntax
+</del>
+1.0
+</h1>
+<h2 id="subtitle">
+A
+<del class="diff-old">Context-based
+JSON
+</del>
+<ins class="diff-chg">JSON-based
+</ins>
+Serialization
+for
+<del class="diff-old">Linking
+</del>
+<ins class="diff-chg">Linked
+</ins>
+Data
+</h2>
+<h2 id="w3c-last-call-working-draft-11-april-2013">
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+<ins class="diff-chg">Last
+Call
+</ins>
+Working
+Draft
+<del class="diff-old">12
+July
+2012
+</del>
+<ins class="diff-chg">11
+April
+2013
+</ins>
+</h2>
+<dl>
+<dt>
+This
+version:
+</dt>
+<dd>
+<del class="diff-old">http://www.w3.org/TR/2012/WD-json-ld-syntax-20120712/
+</del>
+<a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">
+<ins class="diff-chg">http://www.w3.org/TR/2013/WD-json-ld-20130411/
+</ins>
+</a>
+</dd>
+<dt>
+Latest
+published
+version:
+</dt>
+<dd>
+<del class="diff-old">http://www.w3.org/TR/json-ld-syntax/
+</del>
+<a href="http://www.w3.org/TR/json-ld/">
+<ins class="diff-chg">http://www.w3.org/TR/json-ld/
+</ins>
+</a>
+</dd>
+<dt>
+Latest
+editor's
+draft:
+</dt>
+<dd>
+<del class="diff-old">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld-syntax/index.html
+</del>
+<a href="http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html">
+<ins class="diff-chg">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html
+</ins></a></dd><dt><ins class="diff-chg">
+Previous
+version:
+</ins></dt><dd><a href="http://www.w3.org/TR/2012/WD-json-ld-20120712/"><ins class="diff-chg">
+http://www.w3.org/TR/2012/WD-json-ld-20120712/
+</ins>
+</a>
+</dd>
+<dt>
+Editors:
+</dt>
+<dd rel="bibo:editor" inlist="">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://manu.sporny.org/">
+Manu
+Sporny
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
+Digital
+Bazaar
+</a>
+</span>
+</dd>
+<dd rel="bibo:editor" inlist="">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
+Gregg
+Kellogg
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
+Kellogg
+Associates
+</a>
+</span>
+</dd>
+<dd rel="bibo:editor" inlist="">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
+Markus
+Lanthaler
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
+Graz
+University
+of
+Technology
+</a>
+</span>
+</dd>
+<dt>
+Authors:
+</dt>
+<dd rel="dcterms:contributor">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://digitalbazaar.com/">
+Manu
+Sporny
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
+Digital
+Bazaar
+</a>
+</span>
+</dd>
+<dd rel="dcterms:contributor">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Dave Longley" href="http://digitalbazaar.com/">
+Dave
+Longley
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">
+Digital
+Bazaar
+</a>
+</span>
+</dd>
+<dd rel="dcterms:contributor">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">
+Gregg
+Kellogg
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">
+Kellogg
+Associates
+</a>
+</span>
+</dd>
+<dd rel="dcterms:contributor">
+<span typeof="foaf:Person">
+<a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">
+Markus
+Lanthaler
+</a>,
+<a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">
+Graz
+University
+of
+Technology
+</a>
+</span>
+</dd>
+<dd rel="dcterms:contributor">
+<span typeof="foaf:Person">
+<del class="diff-old">Mark
+Birbeck
+,
+Sidewinder
+Labs
+</del>
+<a rel="foaf:homepage" property="foaf:name" content="Niklas Lindström" href="http://neverspace.net/">
+<ins class="diff-chg">Niklas
+Lindström
+</ins></a>
+</span>
+</dd>
+</dl>
+<p>
+This
+document
+is
+also
+available
+in
+this
+non-normative
+format:
+<a rel="alternate" href="diff-20120712.html">
+diff
+to
+previous
+version
+</a>
+</p>
+<p class="copyright">
+<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+Copyright
+</a>

+<del class="diff-old">2010-2012
+</del>
+<ins class="diff-chg">2010-2013
+</ins>
+<a href="http://www.w3.org/">
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+</a>
+<sup>

+</sup>
+(
+<a href="http://www.csail.mit.edu/">
+<abbr title="Massachusetts Institute of Technology">
+MIT
+</abbr>
+</a>,
+<a href="http://www.ercim.eu/">
+<abbr title="European Research Consortium for Informatics and Mathematics">
+ERCIM
+</abbr>
+</a>,
+<a href="http://www.keio.ac.jp/">
+Keio
+</a>,
+<a href="http://ev.buaa.edu.cn/">
+<ins class="diff-new">Beihang
+</ins>
+</a>
+),
+All
+Rights
+Reserved.
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">
+liability
+</a>,
+<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
+trademark
+</a>
+and
+<a href="http://www.w3.org/Consortium/Legal/copyright-documents">
+document
+use
+</a>
+rules
+apply.
+</p>
+<hr />
+</div>
+<section id="abstract" class="introductory" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:chapter">
+<h2>
+Abstract
+</h2>
+<p>
+JSON
+has
+proven
+to
+be
+a
+highly
+useful
+object
+serialization
+and
+messaging
+format.
+<del class="diff-old">In
+an
+attempt
+</del>
+<ins class="diff-chg">This
+specification
+defines
+JSON-LD,
+a
+JSON-based
+format
+</ins>
+to
+<del class="diff-old">harmonize
+the
+representation
+of
+</del>
+<ins class="diff-chg">serialize
+</ins>
+Linked
+<del class="diff-old">Data
+in
+</del>
+<ins class="diff-chg">Data.
+The
+syntax
+is
+designed
+to
+not
+disturb
+already
+deployed
+systems
+running
+on
+</ins>
+JSON,
+<del class="diff-old">this
+specification
+outlines
+</del>
+<ins class="diff-chg">but
+provide
+</ins>
+a
+<del class="diff-old">common
+</del>
+<ins class="diff-chg">smooth
+upgrade
+path
+from
+</ins>
+JSON
+<del class="diff-old">representation
+format
+for
+expressing
+directed
+graphs;
+mixing
+both
+</del>
+<ins class="diff-chg">to
+JSON-LD.
+It
+is
+primarily
+intended
+to
+be
+a
+way
+to
+use
+</ins>
+Linked
+Data
+<ins class="diff-new">in
+Web-based
+programming
+environments,
+to
+build
+interoperable
+Web
+services,
+</ins>
+and
+<del class="diff-old">non-Linked
+</del>
+<ins class="diff-chg">to
+store
+Linked
+</ins>
+Data
+in
+<del class="diff-old">a
+single
+document.
+</del>
+<ins class="diff-chg">JSON-based
+storage
+engines.
+</ins>
+</p>
+</section>
+<section id="sotd" class="introductory" typeof="bibo:Chapter" resource="#sotd" rel="bibo:chapter">
+<h2>
+Status
+of
+This
+Document
+</h2>
+<p>
+<em>
+This
+section
+describes
+the
+status
+of
+this
+document
+at
+the
+time
+of
+its
+publication.
+Other
+documents
+may
+supersede
+this
+document.
+A
+list
+of
+current
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+publications
+and
+the
+latest
+revision
+of
+this
+technical
+report
+can
+be
+found
+in
+the
+<a href="http://www.w3.org/TR/">
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+technical
+reports
+index
+</a>
+at
+http://www.w3.org/TR/.
+</em>
+</p>
+<p>
+This
+document
+has
+been
+under
+development
+for
+over
+<del class="diff-old">18
+</del>
+<ins class="diff-chg">25
+</ins>
+months
+in
+the
+JSON
+for
+Linking
+Data
+Community
+Group.
+The
+document
+has
+recently
+been
+transferred
+to
+the
+RDF
+Working
+Group
+for
+review,
+improvement,
+and
+<del class="diff-old">publication
+along
+the
+Recommendation
+track.
+While
+this
+is
+a
+First
+Public
+Working
+Draft
+publication,
+the
+</del>
+<ins class="diff-chg">publication.
+The
+</ins>
+specification
+has
+undergone
+significant
+development,
+review,
+and
+changes
+during
+the
+course
+of
+the
+last
+<del class="diff-old">18
+months
+and
+is
+more
+mature
+than
+the
+First
+Public
+Working
+Draft
+status
+implies.
+</del>
+<ins class="diff-chg">25
+months.
+</ins>
+There
+are
+<del class="diff-old">currently
+</del>
+<ins class="diff-chg">several
+independent
+</ins>
+<a href="http://json-ld.org/#impl">
+<del class="diff-old">five
+</del>
+interoperable
+implementations
+</a>
+of
+this
+<del class="diff-old">specification.
+There
+is
+</del>
+<ins class="diff-chg">specification
+and
+</ins>
+a
+fairly
+complete
+test
+suite
+<del class="diff-old">and
+a
+live
+JSON-LD
+editor
+that
+is
+capable
+of
+demonstrating
+the
+features
+described
+in
+this
+document.
+While
+development
+on
+implementations,
+the
+test
+suite
+and
+the
+live
+editor
+will
+continue,
+they
+are
+believed
+to
+be
+mature
+enough
+to
+be
+integrated
+into
+a
+non-production
+system
+at
+this
+point
+in
+time
+with
+the
+expectation
+that
+they
+could
+be
+used
+in
+a
+production
+system
+within
+the
+next
+year.
+There
+are
+a
+number
+of
+ways
+that
+one
+may
+participate
+in
+the
+development
+of
+this
+specification:
+If
+you
+want
+to
+make
+sure
+that
+your
+feedback
+is
+formally
+addressed
+by
+the
+RDF
+Working
+Group,
+you
+should
+send
+it
+to
+public-rdf-comments:
+public-rdf-comments@w3.org
+Ad-hoc
+technical
+discussion
+primarily
+occurs
+on
+the
+public
+community
+mailing
+list:
+public-linked-json@w3.org
+</del>
+<ins class="diff-chg">[
+</ins><cite>
+<del class="diff-old">Public
+JSON-LD
+Community
+Group
+teleconferences
+are
+held
+on
+Tuesdays
+at
+1500UTC
+every
+week.
+RDF
+Working
+Group
+teleconferences
+are
+held
+on
+Wednesdays
+at
+1500UTC
+every
+week.
+Participation
+is
+limited
+to
+RDF
+Working
+Group
+members.
+Specification
+bugs
+and
+issues
+should
+be
+reported
+in
+the
+issue
+tracker
+</del>
+<a class="bibref" href="#bib-JSON-LD-TESTS">
+<ins class="diff-chg">JSON-LD-TESTS
+</ins>
+</a>
+<del class="diff-old">if
+you
+do
+not
+want
+to
+send
+an
+e-mail
+to
+the
+public-rdf-comments
+mailing
+list.
+</del>
+<del class="diff-old">Source
+code
+for
+the
+specification
+can
+be
+found
+on
+Github.
+The
+#json-ld
+IRC
+channel
+is
+available
+for
+real-time
+discussion
+on
+irc.freenode.net.
+</del>
+</cite>
+<ins class="diff-chg">].
+</ins></p>
+<p>
+This
+document
+was
+published
+by
+the
+<a href="http://www.w3.org/2011/rdf-wg/">
+RDF
+Working
+Group
+</a>
+as
+a
+<del class="diff-old">First
+Public
+</del>
+<ins class="diff-chg">Last
+Call
+</ins>
+Working
+Draft.
+This
+document
+is
+intended
+to
+become
+a
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+Recommendation.
+If
+you
+wish
+to
+make
+comments
+regarding
+this
+document,
+please
+send
+them
+to
+<a href="mailto:public-rdf-comments@w3.org">
+public-rdf-comments@w3.org
+</a>
+(
+<a href="mailto:public-rdf-comments-request@w3.org?subject=subscribe">
+subscribe
+</a>,
+<a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">
+archives
+</a>
+).
+<ins class="diff-new">The
+Last
+Call
+period
+ends
+11
+May
+2013.
+</ins>
+All
+<del class="diff-old">feedback
+is
+</del>
+<ins class="diff-chg">comments
+are
+</ins>
+welcome.
+</p>
+<div style="padding: 1em; margin: 1em; border: 1px solid red;">
+<p>
+<ins class="diff-new">The
+Working
+Group
+welcomes
+reports
+of
+implementations,
+sent
+to
+the
+comments
+address.
+If
+we
+gather
+sufficient
+evidence
+of
+interoperable
+implementations,
+the
+group
+may
+request
+to
+skip
+Call
+for
+Implementations
+(Candidate
+Recommendation)
+drafts
+and
+have
+the
+next
+round
+of
+publications
+be
+Proposed
+Recommendations.
+</ins></p></div>
+<p>
+Publication
+as
+a
+<ins class="diff-new">Last
+Call
+</ins>
+Working
+Draft
+does
+not
+imply
+endorsement
+by
+the
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+Membership.
+This
+is
+a
+draft
+document
+and
+may
+be
+updated,
+replaced
+or
+obsoleted
+by
+other
+documents
+at
+any
+time.
+It
+is
+inappropriate
+to
+cite
+this
+document
+as
+other
+than
+work
+in
+progress.
+</p>
+<p>
+This
+<ins class="diff-new">is
+a
+Last
+Call
+Working
+Draft
+and
+thus
+the
+Working
+Group
+has
+determined
+that
+this
+document
+has
+satisfied
+the
+relevant
+technical
+requirements
+and
+is
+sufficiently
+stable
+to
+advance
+through
+the
+Technical
+Recommendation
+process.
+</ins></p><p><ins class="diff-new">
+This
+</ins>
+document
+was
+produced
+by
+a
+group
+operating
+under
+the
+<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">
+5
+February
+2004
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+Patent
+Policy
+</a>.
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+maintains
+a
+<a href="http://www.w3.org/2004/01/pp-impl/46168/status" rel="disclosure">
+public
+list
+of
+any
+patent
+disclosures
+</a>
+made
+in
+connection
+with
+the
+deliverables
+of
+the
+group;
+that
+page
+also
+includes
+instructions
+for
+disclosing
+a
+patent.
+An
+individual
+who
+has
+actual
+knowledge
+of
+a
+patent
+which
+the
+individual
+believes
+contains
+<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">
+Essential
+Claim(s)
+</a>
+must
+disclose
+the
+information
+in
+accordance
+with
+<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">
+section
+6
+of
+the
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+Patent
+Policy
+</a>.
+</p>
+</section>
+<section id="toc">
+<h2 class="introductory">
+Table
+of
+Contents
+</h2>
+<ul class="toc">
+<li class="tocline">
+<a href="#introduction" class="tocxref">
+<span class="secno">
+1.
+</span>
+Introduction
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#how-to-read-this-document" class="tocxref">
+<span class="secno">
+1.1
+</span>
+How
+to
+Read
+this
+Document
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#design-goals-and-rationale" class="tocxref">
+<span class="secno">
+2.
+</span>
+Design
+Goals
+and
+Rationale
+</a>
+</li>
+<li class="tocline">
+<a href="#terminology" class="tocxref">
+<span class="secno">
+3.
+</span>
+<del class="diff-old">Basic
+Concepts
+</del>
+<ins class="diff-chg">Terminology
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#general-terminology" class="tocxref">
+<span class="secno">
+3.1
+</span>
+<del class="diff-old">Linking
+Data
+</del>
+<ins class="diff-chg">General
+Terminology
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#syntax-tokens-and-keywords" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.1.1
+</del>
+<ins class="diff-chg">3.2
+</ins>
+</span>
+Syntax
+Tokens
+and
+Keywords
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#conformance" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.1.2
+</del>
+<ins class="diff-chg">4.
+</ins>
+</span>
+<del class="diff-old">The
+Context
+</del>
+<ins class="diff-chg">Conformance
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#basic-concepts" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.1.3
+</del>
+<ins class="diff-chg">5.
+</ins>
+</span>
+<del class="diff-old">From
+JSON
+to
+JSON-LD
+</del>
+<ins class="diff-chg">Basic
+Concepts
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#the-context" class="tocxref">
+<span class="secno">
+<ins class="diff-chg">5.1
+</ins></span><ins class="diff-chg">
+The
+Context
+</ins></a>
+</li>
+<li class="tocline">
+<a href="#iris" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.2
+</del>
+<ins class="diff-chg">5.2
+</ins>
+</span>
+IRIs
+</a>
+</li>
+<li class="tocline">
+<a href="#node-identifiers" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.3
+</del>
+<ins class="diff-chg">5.3
+</ins>
+</span>
+<del class="diff-old">Identifying
+the
+Subject
+</del>
+<ins class="diff-chg">Node
+Identifiers
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#specifying-the-type" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.4
+</del>
+<ins class="diff-chg">5.4
+</ins>
+</span>
+Specifying
+the
+Type
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#advanced-concepts" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.5
+</del>
+<ins class="diff-chg">6.
+</ins>
+</span>
+<del class="diff-old">String
+Internationalization
+</del>
+<ins class="diff-chg">Advanced
+Concepts
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#base-iri" class="tocxref">
+<span class="secno">
+<del class="diff-old">3.6
+</del>
+<ins class="diff-chg">6.1
+</ins>
+</span>
+<del class="diff-old">JSON-LD
+Syntax
+</del>
+<ins class="diff-chg">Base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>
+</li>
+<li class="tocline">
+<a href="#default-vocabulary" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.
+</del>
+<ins class="diff-chg">6.2
+</ins>
+</span>
+<del class="diff-old">Advanced
+Concepts
+</del>
+<ins class="diff-chg">Default
+Vocabulary
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#compact-iris" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.1
+</del>
+<ins class="diff-chg">6.3
+</ins>
+</span>
+Compact
+IRIs
+</a>
+</li>
+<li class="tocline">
+<a href="#typed-values" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.2
+</del>
+<ins class="diff-chg">6.4
+</ins>
+</span>
+Typed
+Values
+</a>
+</li>
+<li class="tocline">
+<a href="#type-coercion" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.3
+</del>
+<ins class="diff-chg">6.5
+</ins>
+</span>
+<del class="diff-old">External
+Contexts
+</del>
+<ins class="diff-chg">Type
+Coercion
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#embedding" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.4
+</del>
+<ins class="diff-chg">6.6
+</ins>
+</span>
+<del class="diff-old">Referencing
+Contexts
+from
+JSON
+Documents
+</del>
+<ins class="diff-chg">Embedding
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#advanced-context-usage" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.5
+</del>
+<ins class="diff-chg">6.7
+</ins>
+</span>
+<del class="diff-old">Expanded
+Term
+Definition
+</del>
+<ins class="diff-chg">Advanced
+Context
+Usage
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#interpreting-json-as-json-ld" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.6
+</del>
+<ins class="diff-chg">6.8
+</ins>
+</span>
+<del class="diff-old">Type
+Coercion
+</del>
+<ins class="diff-chg">Interpreting
+JSON
+as
+JSON-LD
+</ins></a></li><li class="tocline"><a href="#string-internationalization" class="tocxref"><span class="secno"><ins class="diff-chg">
+6.9
+</ins></span><ins class="diff-chg">
+String
+Internationalization
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#iri-expansion-within-a-context" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.7
+</del>
+<ins class="diff-chg">6.10
+</ins>
+</span>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+Expansion
+<del class="diff-old">Within
+</del>
+<ins class="diff-chg">within
+</ins>
+a
+Context
+</a>
+</li>
+<li class="tocline">
+<a href="#sets-and-lists" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.8
+</del>
+<ins class="diff-chg">6.11
+</ins>
+</span>
+Sets
+and
+Lists
+</a>
+</li>
+<li class="tocline">
+<a href="#reverse-properties" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.9
+</del>
+<ins class="diff-chg">6.12
+</ins>
+</span>
+<del class="diff-old">Embedding
+</del>
+<ins class="diff-chg">Reverse
+Properties
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#named-graphs" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.10
+</del>
+<ins class="diff-chg">6.13
+</ins>
+</span>
+Named
+Graphs
+</a>
+</li>
+<li class="tocline">
+<a href="#identifying-blank-nodes" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.11
+</del>
+<ins class="diff-chg">6.14
+</ins>
+</span>
+Identifying
+<del class="diff-old">Unlabeled
+</del>
+<ins class="diff-chg">Blank
+</ins>
+Nodes
+</a>
+</li>
+<li class="tocline">
+<a href="#aliasing-keywords" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.12
+</del>
+<ins class="diff-chg">6.15
+</ins>
+</span>
+Aliasing
+Keywords
+</a>
+</li>
+<li class="tocline">
+<a href="#data-indexing" class="tocxref">
+<span class="secno">
+<ins class="diff-new">6.16
+</ins></span><ins class="diff-new">
+Data
+Indexing
+</ins></a></li><li class="tocline">
+<a href="#expanded-document-form" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.13
+</del>
+<ins class="diff-chg">6.17
+</ins>
+</span>
+Expanded
+Document
+Form
+</a>
+</li>
+<li class="tocline">
+<a href="#compact-document-form" class="tocxref">
+<span class="secno">
+<del class="diff-old">4.14
+</del>
+<ins class="diff-chg">6.18
+</ins>
+</span>
+Compact
+Document
+Form
+</a>
+</li>
+<li class="tocline">
+<a href="#flattened-document-form" class="tocxref">
+<span class="secno">
+<ins class="diff-new">6.19
+</ins></span><ins class="diff-new">
+Flattened
+Document
+Form
+</ins></a></li><li class="tocline"><a href="#embedding-json-ld-in-html-documents" class="tocxref"><span class="secno"><ins class="diff-new">
+6.20
+</ins></span><ins class="diff-new">
+Embedding
+JSON-LD
+in
+HTML
+Documents
+</ins></a></li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#data-model" class="tocxref">
+<span class="secno">
+A.
+</span>
+<del class="diff-old">JSON-LD
+Authoring
+Guidelines
+</del>
+<ins class="diff-chg">Data
+Model
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#json-ld-grammar" class="tocxref">
+<span class="secno">
+B.
+</span>
+<del class="diff-old">Relationship
+to
+other
+RDF
+Formats
+</del>
+<ins class="diff-chg">JSON-LD
+Grammar
+</ins>
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#terms" class="tocxref">
+<span class="secno">
+B.1
+</span>
+<del class="diff-old">RDF
+</del>
+<ins class="diff-chg">Terms
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#node-objects" class="tocxref">
+<span class="secno">
+B.2
+</span>
+<del class="diff-old">Turtle
+</del>
+<ins class="diff-chg">Node
+Objects
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#value-objects" class="tocxref">
+<span class="secno">
+<del class="diff-old">B.2.1
+</del>
+<ins class="diff-chg">B.3
+</ins>
+</span>
+<del class="diff-old">Prefix
+definitions
+</del>
+<ins class="diff-chg">Value
+Objects
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#lists-and-sets" class="tocxref">
+<span class="secno">
+<del class="diff-old">B.2.2
+</del>
+<ins class="diff-chg">B.4
+</ins>
+</span>
+<del class="diff-old">Embedding
+</del>
+<ins class="diff-chg">Lists
+and
+Sets
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a href="#language-maps" class="tocxref">
+<span class="secno">
+<del class="diff-old">B.2.3
+</del>
+<ins class="diff-chg">B.5
+</ins>
+</span>
+<del class="diff-old">Lists
+</del>
+<ins class="diff-chg">Language
+Maps
+</ins></a></li><li class="tocline"><a href="#index-maps" class="tocxref"><span class="secno"><ins class="diff-chg">
+B.6
+</ins></span><ins class="diff-chg">
+Index
+Maps
+</ins></a></li><li class="tocline"><a href="#context-definitions" class="tocxref"><span class="secno"><ins class="diff-chg">
+B.7
+</ins></span><ins class="diff-chg">
+Context
+Definitions
+</ins>
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#relationship-to-rdf" class="tocxref">
+<span class="secno">
+<ins class="diff-new">C.
+</ins></span><ins class="diff-new">
+Relationship
+to
+RDF
+</ins></a><ul class="toc"><li class="tocline"><a href="#transformation-from-json-ld-to-rdf" class="tocxref"><span class="secno"><ins class="diff-new">
+C.1
+</ins></span><ins class="diff-new">
+Transformation
+from
+JSON-LD
+to
+RDF
+</ins></a></li></ul></li><li class="tocline"><a href="#relationship-to-other-linked-data-formats" class="tocxref"><span class="secno"><ins class="diff-new">
+D.
+</ins></span><ins class="diff-new">
+Relationship
+to
+Other
+Linked
+Data
+Formats
+</ins></a><ul class="toc"><li class="tocline"><a href="#turtle" class="tocxref"><span class="secno"><ins class="diff-new">
+D.1
+</ins></span><ins class="diff-new">
+Turtle
+</ins></a></li><li class="tocline">
+<a href="#rdfa" class="tocxref">
+<span class="secno">
+<del class="diff-old">B.3
+</del>
+<ins class="diff-chg">D.2
+</ins>
+</span>
+RDFa
+</a>
+</li>
+<li class="tocline">
+<a href="#microformats" class="tocxref">
+<span class="secno">
+<del class="diff-old">B.4
+</del>
+<ins class="diff-chg">D.3
+</ins>
+</span>
+Microformats
+</a>
+</li>
+<li class="tocline">
+<a href="#microdata" class="tocxref">
+<span class="secno">
+<del class="diff-old">B.5
+</del>
+<ins class="diff-chg">D.4
+</ins>
+</span>
+Microdata
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a href="#iana-considerations" class="tocxref">
+<span class="secno">
+<del class="diff-old">C.
+</del>
+<ins class="diff-chg">E.
+</ins>
+</span>
+IANA
+Considerations
+</a>
+</li>
+<li class="tocline">
+<a href="#acknowledgements" class="tocxref">
+<span class="secno">
+<del class="diff-old">D.
+</del>
+<ins class="diff-chg">F.
+</ins>
+</span>
+Acknowledgements
+</a>
+</li>
+<li class="tocline">
+<a href="#references" class="tocxref">
+<span class="secno">
+<del class="diff-old">E.
+</del>
+<ins class="diff-chg">G.
+</ins>
+</span>
+References
+</a>
+<ul class="toc">
+<li class="tocline">
+<a href="#normative-references" class="tocxref">
+<span class="secno">
+<del class="diff-old">E.1
+</del>
+<ins class="diff-chg">G.1
+</ins>
+</span>
+Normative
+references
+</a>
+</li>
+<li class="tocline">
+<a href="#informative-references" class="tocxref">
+<span class="secno">
+<del class="diff-old">E.2
+</del>
+<ins class="diff-chg">G.2
+</ins>
+</span>
+Informative
+references
+</a>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section class="informative" id="introduction">
+<h2>
+<span class="secno">
+1.
+</span>
+Introduction
+</h2>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+<del class="diff-old">JSON,
+as
+specified
+in
+[
+RFC4627
+</del>
+<del class="diff-old">],
+is
+a
+simple
+language
+for
+representing
+data
+on
+the
+Web.
+</del>
+<dfn title="linked-data" id="dfn-linked-data">
+Linked
+Data
+</dfn>
+is
+a
+technique
+for
+creating
+a
+network
+of
+inter-connected
+data
+across
+different
+<del class="diff-old">Web
+</del>
+documents
+and
+Web
+sites.
+<del class="diff-old">A
+document
+in
+this
+data
+network
+is
+typically
+identified
+using
+an
+</del>
+<ins class="diff-chg">In
+general,
+Linked
+Data
+has
+four
+properties:
+1)
+it
+uses
+</ins>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<del class="diff-old">IRI
+</del>
+<ins class="diff-chg">IRIs
+</ins>
+</a>
+<del class="diff-old">(Internationalized
+Resource
+Identifier).
+A
+software
+program
+can
+typically
+follow
+an
+IRI
+just
+like
+you
+follow
+a
+URL
+by
+putting
+</del>
+<ins class="diff-chg">to
+name
+things;
+2)
+</ins>
+it
+<del class="diff-old">into
+your
+browser's
+location
+bar.
+By
+following
+IRIs,
+a
+software
+program
+can
+find
+</del>
+<ins class="diff-chg">uses
+HTTP
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+for
+those
+names;
+3)
+the
+name
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>,<ins class="diff-chg">
+when
+dereferenced,
+provide
+</ins>
+more
+information
+about
+the
+<del class="diff-old">document
+</del>
+<ins class="diff-chg">thing;
+</ins>
+and
+<ins class="diff-new">4)
+</ins>
+the
+<del class="diff-old">thing
+s
+that
+the
+document
+describes.
+</del>
+<ins class="diff-chg">data
+expresses
+links
+to
+data
+on
+other
+Web
+sites.
+</ins>
+These
+<del class="diff-old">things
+may
+also
+be
+identified
+using
+IRI
+s.
+The
+IRI
+allows
+a
+software
+program
+</del>
+<ins class="diff-chg">properties
+allow
+data
+published
+on
+the
+Web
+</ins>
+to
+<ins class="diff-new">work
+much
+like
+Web
+pages
+do
+today.
+One
+can
+</ins>
+start
+at
+one
+<del class="diff-old">document
+</del>
+<ins class="diff-chg">piece
+of
+Linked
+Data,
+</ins>
+and
+follow
+<ins class="diff-new">the
+</ins>
+links
+to
+other
+<del class="diff-old">documents
+or
+things
+in
+order
+to
+learn
+more
+about
+all
+</del>
+<ins class="diff-chg">pieces
+</ins>
+of
+<del class="diff-old">the
+documents
+and
+things
+described
+</del>
+<ins class="diff-chg">data
+that
+are
+hosted
+</ins>
+on
+<ins class="diff-new">different
+sites
+across
+</ins>
+the
+Web.
+</p>
+<p>
+JSON-LD
+is
+<del class="diff-old">designed
+as
+</del>
+a
+lightweight
+syntax
+<del class="diff-old">that
+can
+</del>
+<ins class="diff-chg">to
+serialize
+</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data"><ins class="diff-chg">
+Linked
+Data
+</ins></a><ins class="diff-chg">
+in
+JSON
+[
+</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
+RFC4627
+</ins></a></cite><ins class="diff-chg">
+].
+Its
+design
+allows
+existing
+JSON
+to
+</ins>
+be
+<del class="diff-old">used
+</del>
+<ins class="diff-chg">transformed
+</ins>
+to
+<del class="diff-old">express
+</del>
+Linked
+Data
+<del class="diff-old">.
+It
+</del>
+<ins class="diff-chg">with
+minimal
+changes.
+JSON-LD
+</ins>
+is
+primarily
+intended
+to
+be
+a
+way
+to
+use
+Linked
+Data
+in
+<del class="diff-old">Javascript
+and
+other
+</del>
+Web-based
+programming
+<del class="diff-old">environments.
+It
+is
+also
+useful
+when
+building
+inter-operable
+</del>
+<ins class="diff-chg">environments,
+to
+build
+interoperable
+</ins>
+Web
+<del class="diff-old">services
+</del>
+<ins class="diff-chg">services,
+</ins>
+and
+<del class="diff-old">when
+storing
+</del>
+<ins class="diff-chg">to
+store
+</ins>
+Linked
+Data
+in
+JSON-based
+<del class="diff-old">document
+</del>
+storage
+engines.
+<del class="diff-old">It
+</del>
+<ins class="diff-chg">Since
+JSON-LD
+</ins>
+is
+<del class="diff-old">practical
+and
+designed
+to
+be
+as
+simple
+as
+possible,
+utilizing
+</del>
+<ins class="diff-chg">100%
+compatible
+with
+JSON,
+</ins>
+the
+large
+number
+of
+JSON
+parsers
+and
+libraries
+available
+<del class="diff-old">today.
+</del>
+<ins class="diff-chg">today
+can
+be
+reused.
+In
+addition
+to
+all
+the
+features
+JSON
+provides,
+JSON-LD
+introduces:
+</ins>
+</p>
+<del class="diff-old">The
+syntax
+does
+not
+necessarily
+require
+applications
+</del>
+<ul>
+<li>
+<ins class="diff-chg">a
+universal
+identifier
+mechanism
+for
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+objects
+</ins></a><ins class="diff-chg">
+via
+the
+use
+of
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>,</li><li><ins class="diff-chg">
+a
+way
+</ins>
+to
+<del class="diff-old">change
+</del>
+<ins class="diff-chg">disambiguate
+keys
+shared
+among
+different
+JSON
+documents
+by
+mapping
+them
+to
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+via
+a
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>,</li><li><ins class="diff-chg">
+a
+mechanism
+in
+which
+a
+value
+in
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+may
+refer
+to
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+on
+a
+different
+site
+on
+the
+Web,
+</ins></li><li><ins class="diff-chg">
+the
+ability
+to
+annotate
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+strings
+</ins></a><ins class="diff-chg">
+with
+</ins>
+their
+<del class="diff-old">JSON,
+but
+allows
+</del>
+<ins class="diff-chg">language,
+</ins></li><li><ins class="diff-chg">
+a
+way
+to
+associate
+datatypes
+with
+values
+such
+as
+dates
+and
+times,
+</ins></li><li><ins class="diff-chg">
+and
+a
+facility
+to
+express
+</ins>
+one
+<ins class="diff-new">or
+more
+directed
+graphs,
+such
+as
+a
+social
+network,
+in
+a
+single
+document.
+</ins></li></ul><p><ins class="diff-new">
+Developers
+that
+require
+any
+of
+the
+facilities
+listed
+above
+or
+need
+</ins>
+to
+<del class="diff-old">easily
+add
+meaning
+by
+simply
+adding
+</del>
+<ins class="diff-chg">serialize
+an
+RDF
+graph
+</ins>
+or
+<del class="diff-old">referencing
+</del>
+<ins class="diff-chg">dataset
+[
+</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
+RDF11-CONCEPTS
+</ins></a></cite><ins class="diff-chg">
+]
+in
+</ins>
+a
+<del class="diff-old">context.
+</del>
+<ins class="diff-chg">JSON-based
+syntax
+will
+find
+JSON-LD
+of
+interest.
+</ins>
+The
+syntax
+is
+designed
+to
+not
+disturb
+already
+deployed
+systems
+running
+on
+JSON,
+but
+provide
+a
+smooth
+upgrade
+path
+from
+JSON
+to
+JSON-LD.
+<del class="diff-old">Finally,
+</del>
+<ins class="diff-chg">Since
+</ins>
+the
+<del class="diff-old">format
+is
+intended
+to
+be
+easy
+to
+parse,
+efficient
+</del>
+<ins class="diff-chg">shape
+of
+such
+data
+varies
+wildly,
+JSON-LD
+features
+mechanisms
+</ins>
+to
+<del class="diff-old">generate,
+and
+only
+requires
+</del>
+<ins class="diff-chg">reshape
+documents
+into
+</ins>
+a
+<del class="diff-old">very
+small
+memory
+footprint
+in
+order
+to
+operate.
+</del>
+<ins class="diff-chg">deterministic
+structure
+which
+simplifies
+their
+processing.
+</ins>
+</p>
+<section class="informative" id="how-to-read-this-document">
+<h3>
+<span class="secno">
+1.1
+</span>
+How
+to
+Read
+this
+Document
+</h3>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+This
+document
+is
+a
+detailed
+specification
+for
+a
+serialization
+of
+Linked
+Data
+in
+JSON.
+The
+document
+is
+primarily
+intended
+for
+the
+following
+audiences:
+</p>
+<ul>
+<li>
+Software
+developers
+<del class="diff-old">that
+</del>
+<ins class="diff-chg">who
+</ins>
+want
+to
+encode
+Linked
+Data
+in
+a
+<del class="diff-old">way
+</del>
+<ins class="diff-chg">variety
+of
+programming
+languages
+</ins>
+that
+<del class="diff-old">is
+cross-language
+compatible
+via
+</del>
+<ins class="diff-chg">can
+use
+</ins>
+JSON.
+</li>
+<li>
+Software
+developers
+<del class="diff-old">that
+</del>
+<ins class="diff-chg">who
+want
+to
+convert
+existing
+JSON
+to
+JSON-LD.
+</ins></li><li><ins class="diff-chg">
+Software
+developers
+who
+</ins>
+want
+to
+understand
+the
+design
+decisions
+and
+language
+syntax
+for
+JSON-LD.
+</li>
+<li>
+Software
+developers
+<del class="diff-old">that
+</del>
+<ins class="diff-chg">who
+</ins>
+want
+to
+implement
+processors
+and
+APIs
+for
+JSON-LD.
+</li>
+</ul>
+<p>
+<del class="diff-old">This
+specification
+does
+not
+describe
+the
+programming
+interfaces
+for
+</del>
+<ins class="diff-chg">A
+companion
+document,
+</ins>
+the
+JSON-LD
+<del class="diff-old">Syntax.
+The
+</del>
+<ins class="diff-chg">Processing
+Algorithms
+and
+API
+</ins>
+specification
+<del class="diff-old">that
+describes
+the
+programming
+interfaces
+for
+JSON-LD
+documents
+is
+the
+JSON-LD
+Application
+Programming
+Interface
+</del>
+[
+<cite>
+<a class="bibref" href="#bib-JSON-LD-API">
+JSON-LD-API
+</a>
+</cite>
+<del class="diff-old">].
+</del>
+<ins class="diff-chg">],
+specifies
+how
+to
+work
+with
+JSON-LD
+at
+a
+higher
+level
+by
+providing
+a
+standard
+library
+interface
+for
+common
+JSON-LD
+operations.
+</ins>
+</p>
+<p>
+To
+understand
+the
+basics
+in
+this
+specification
+you
+must
+first
+be
+familiar
+with
+JSON,
+which
+is
+detailed
+in
+[
+<cite>
+<a class="bibref" href="#bib-RFC4627">
+RFC4627
+</a>
+</cite>
+].
+</p>
+<del class="diff-old">JSON
+[
+RFC4627
+]
+defines
+several
+terms
+which
+are
+used
+throughout
+this
+document:
+JSON
+object
+An
+object
+structure
+is
+represented
+as
+a
+pair
+of
+curly
+brackets
+surrounding
+zero
+or
+more
+name-value
+pairs.
+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.
+array
+In
+JSON,
+an
+array
+is
+an
+ordered
+sequence
+of
+zero
+or
+more
+values.
+An
+array
+is
+represented
+as
+square
+brackets
+surrounding
+zero
+or
+more
+values
+that
+are
+separated
+by
+commas.
+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
+specific
+markup
+is
+provided
+(see
+Sets
+and
+Lists
+).
+string
+A
+string
+is
+a
+sequence
+of
+zero
+or
+more
+Unicode
+characters,
+wrapped
+in
+double
+quotes,
+using
+backslash
+escapes
+(if
+necessary).
+A
+character
+is
+represented
+as
+a
+single
+character
+string.
+number
+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.
+true
+and
+false
+Values
+that
+are
+used
+to
+express
+one
+of
+two
+possible
+boolean
+states.
+null
+The
+null
+value
+is
+used
+to
+make
+the
+JSON-LD
+processor
+&quot;forget&quot;
+any
+previously
+defined
+JSON
+key
+that
+is
+associated
+with
+the
+null
+value.
+If
+a
+previous
+definition
+doesn't
+exist,
+the
+entire
+key-value
+is
+ignored.
+If
+a
+previous
+definition
+of
+the
+key
+does
+exist,
+the
+previous
+definition
+is
+undefined.
+subject
+definition
+A
+JSON
+object
+used
+to
+represent
+a
+subject
+and
+one
+or
+more
+properties
+of
+that
+subject.
+A
+JSON
+object
+is
+a
+subject
+definition
+if
+it
+does
+not
+contain
+they
+keys
+@value
+,
+@list
+or
+@set
+and
+it
+has
+one
+or
+more
+keys
+other
+than
+@id
+.
+subject
+reference
+A
+JSON
+object
+used
+to
+reference
+a
+subject
+having
+only
+the
+@id
+key.
+</del>
+</section>
+</section>
+<section class="informative" id="design-goals-and-rationale">
+<h2>
+<span class="secno">
+2.
+</span>
+Design
+Goals
+and
+Rationale
+</h2>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+<del class="diff-old">A
+number
+of
+design
+goals
+were
+established
+before
+</del>
+<ins class="diff-chg">JSON-LD
+satisfies
+</ins>
+the
+<del class="diff-old">creation
+of
+this
+markup
+language:
+</del>
+<ins class="diff-chg">following
+design
+goals:
+</ins>
+</p>
+<dl>
+<dt>
+Simplicity
+</dt>
+<dd>
+No
+extra
+processors
+or
+software
+libraries
+should
+be
+necessary
+to
+use
+JSON-LD
+in
+its
+most
+basic
+form.
+The
+language
+will
+provide
+developers
+with
+a
+very
+easy
+learning
+curve.
+Developers
+<del class="diff-old">need
+</del>
+only
+<ins class="diff-new">need
+to
+</ins>
+know
+JSON
+and
+two
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keywords
+</a>
+(
+<code>
+@context
+</code>
+and
+<code>
+@id
+</code>
+)
+to
+use
+the
+basic
+functionality
+in
+JSON-LD.
+</dd>
+<dt>
+Compatibility
+</dt>
+<dd>
+<del class="diff-old">The
+</del>
+<ins class="diff-chg">A
+</ins>
+JSON-LD
+<del class="diff-old">markup
+</del>
+<ins class="diff-chg">document
+</ins>
+must
+be
+100%
+compatible
+with
+JSON.
+This
+ensures
+that
+all
+of
+the
+standard
+JSON
+libraries
+work
+seamlessly
+with
+JSON-LD
+documents.
+</dd>
+<dt>
+Expressiveness
+</dt>
+<dd>
+The
+syntax
+must
+be
+able
+to
+<del class="diff-old">express
+</del>
+<ins class="diff-chg">serialize
+</ins>
+directed
+<del class="diff-old">graphs,
+which
+have
+been
+proven
+to
+be
+able
+to
+express
+</del>
+<ins class="diff-chg">graphs.
+This
+ensures
+that
+</ins>
+almost
+every
+real
+world
+data
+<del class="diff-old">model.
+</del>
+<ins class="diff-chg">model
+can
+be
+expressed.
+</ins>
+</dd>
+<dt>
+Terseness
+</dt>
+<dd>
+The
+JSON-LD
+syntax
+must
+be
+very
+terse
+and
+human
+readable,
+requiring
+as
+little
+effort
+as
+possible
+from
+the
+developer.
+</dd>
+<dt>
+Zero
+Edits,
+most
+of
+the
+time
+</dt>
+<dd>
+JSON-LD
+must
+<del class="diff-old">provide
+a
+mechanism
+that
+allows
+developers
+</del>
+<ins class="diff-chg">make
+the
+transition
+</ins>
+to
+<del class="diff-old">specify
+context
+</del>
+<ins class="diff-chg">JSON-LD
+as
+simple
+as
+possible.
+In
+many
+cases,
+zero
+edits
+to
+the
+JSON
+document
+and
+the
+addition
+of
+one
+line
+to
+the
+HTTP
+response
+should
+suffice
+(see
+</ins><a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld"><ins class="diff-chg">
+section
+6.8
+Interpreting
+JSON
+as
+JSON-LD
+</ins>
+</a>
+<del class="diff-old">in
+a
+way
+that
+is
+out-of-band.
+</del>
+<ins class="diff-chg">).
+</ins>
+This
+allows
+organizations
+that
+have
+already
+deployed
+large
+JSON-based
+infrastructure
+to
+<del class="diff-old">add
+meaning
+to
+their
+JSON
+documents
+</del>
+<ins class="diff-chg">use
+JSON-LD's
+features
+</ins>
+in
+a
+way
+that
+is
+not
+disruptive
+to
+their
+day-to-day
+operations
+and
+is
+transparent
+to
+their
+current
+customers.
+<del class="diff-old">At
+times,
+</del>
+<ins class="diff-chg">However,
+there
+are
+times
+where
+</ins>
+mapping
+JSON
+to
+a
+graph
+representation
+<del class="diff-old">can
+become
+difficult.
+</del>
+<ins class="diff-chg">is
+more
+complex
+than
+a
+simple
+one-line
+change.
+</ins>
+In
+these
+instances,
+rather
+than
+<del class="diff-old">having
+</del>
+<ins class="diff-chg">extending
+</ins>
+JSON-LD
+<ins class="diff-new">to
+</ins>
+support
+an
+esoteric
+use
+case,
+we
+chose
+not
+to
+support
+the
+use
+<del class="diff-old">case
+and
+support
+a
+simplified
+syntax
+instead.
+So,
+while
+</del>
+<ins class="diff-chg">case.
+While
+</ins>
+Zero
+Edits
+is
+a
+<ins class="diff-new">design
+</ins>
+goal,
+it
+is
+not
+always
+possible
+without
+adding
+great
+complexity
+to
+the
+language.
+<del class="diff-old">One-pass
+Processing
+JSON-LD
+supports
+one-pass
+processing,
+which
+results
+in
+a
+very
+small
+memory
+footprint
+</del>
+<ins class="diff-chg">We
+should
+focus
+on
+simplicity
+</ins>
+when
+<del class="diff-old">processing
+documents.
+For
+example,
+to
+expand
+a
+JSON-LD
+document
+from
+a
+compacted
+form,
+only
+one
+pass
+is
+required
+over
+the
+data.
+</del>
+<ins class="diff-chg">possible.
+</ins>
+</dd>
+</dl>
+</section>
+<section class="normative" id="terminology">
+<h2>
+<span class="secno">
+3.
+</span>
+<del class="diff-old">Basic
+Concepts
+</del>
+<ins class="diff-chg">Terminology
+</ins>
+</h2>
+<del class="diff-old">This
+section
+is
+normative.
+JSON-LD
+is
+designed
+to
+ensure
+that
+Linked
+Data
+concepts
+can
+be
+marked
+up
+in
+a
+way
+that
+is
+simple
+to
+understand
+and
+create
+by
+Web
+authors.
+In
+many
+cases,
+regular
+JSON
+markup
+can
+become
+Linked
+Data
+with
+the
+simple
+addition
+of
+a
+context
+.
+As
+more
+JSON-LD
+features
+are
+used,
+more
+semantics
+are
+added
+to
+the
+JSON
+markup.
+</del>
+<section class="normative" id="general-terminology">
+<h3>
+<span class="secno">
+3.1
+</span>
+<del class="diff-old">Linking
+Data
+</del>
+<ins class="diff-chg">General
+Terminology
+</ins>
+</h3>
+<p>
+<del class="diff-old">The
+following
+definition
+for
+Linked
+Data
+is
+</del>
+<ins class="diff-chg">This
+document
+uses
+</ins>
+the
+<del class="diff-old">one
+that
+will
+be
+used
+for
+this
+specification.
+Linked
+Data
+is
+a
+set
+of
+documents,
+each
+containing
+a
+representation
+of
+a
+linked
+data
+graph
+.
+A
+linked
+data
+graph
+is
+an
+unordered
+labeled
+directed
+graph,
+where
+nodes
+are
+subject
+s
+or
+object
+s,
+and
+edges
+are
+labeled
+using
+properties
+.
+A
+subject
+is
+any
+node
+</del>
+<ins class="diff-chg">following
+terms
+as
+defined
+</ins>
+in
+<del class="diff-old">a
+linked
+data
+graph
+with
+at
+least
+one
+outgoing
+edge.
+A
+subject
+should
+be
+labeled
+with
+an
+</del>
+<ins class="diff-chg">JSON
+[
+</ins><cite>
+<del class="diff-old">IRI
+</del>
+<a class="bibref" href="#bib-RFC4627">
+<ins class="diff-chg">RFC4627
+</ins></a>
+<del class="diff-old">(an
+Internationalized
+Resource
+Identifier
+as
+described
+</del>
+</cite>
+<ins class="diff-chg">].
+Refer
+to
+the
+</ins><em><ins class="diff-chg">
+JSON
+Grammar
+</ins></em><ins class="diff-chg">
+section
+</ins>
+in
+[
+<cite>
+<del class="diff-old">RFC3987
+</del>
+<a class="bibref" href="#bib-RFC4627">
+<ins class="diff-chg">RFC4627
+</ins>
+</a>
+</cite>
+<del class="diff-old">]).
+An
+</del>
+<ins class="diff-chg">]
+for
+formal
+definitions.
+</ins></p><dl><dt><dfn title="json-object" id="dfn-json-object"><ins class="diff-chg">
+JSON
+</ins>
+object
+</dfn>
+<del class="diff-old">is
+a
+node
+in
+a
+linked
+data
+graph
+with
+at
+least
+one
+incoming
+edge.
+An
+object
+may
+be
+labeled
+with
+an
+</del>
+<del class="diff-old">IRI
+</del>
+</dt>
+<del class="diff-old">or
+a
+label
+that
+</del>
+<dd>
+<ins class="diff-chg">An
+object
+structure
+</ins>
+is
+<del class="diff-old">not
+an
+IRI
+such
+</del>
+<ins class="diff-chg">represented
+</ins>
+as
+<del class="diff-old">plain
+text,
+internationalized
+text,
+or
+a
+strictly-typed
+data
+value.
+A
+node
+may
+be
+</del>
+a
+<del class="diff-old">subject
+and
+an
+object
+at
+the
+same
+time.
+</del>
+<ins class="diff-chg">pair
+of
+curly
+brackets
+surrounding
+zero
+or
+more
+key-value
+pairs.
+</ins>
+A
+<del class="diff-old">property
+</del>
+<ins class="diff-chg">key
+</ins>
+is
+<del class="diff-old">the
+label
+on
+an
+edge
+in
+</del>
+a
+<del class="diff-old">linked
+data
+graph
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">string
+</ins>
+</a>.
+A
+<del class="diff-old">property
+should
+be
+an
+IRI
+.
+An
+IRI
+that
+is
+</del>
+<ins class="diff-chg">single
+colon
+comes
+after
+each
+key,
+separating
+the
+key
+from
+the
+value.
+A
+single
+comma
+separates
+</ins>
+a
+<del class="diff-old">label
+in
+</del>
+<ins class="diff-chg">value
+from
+</ins>
+a
+<del class="diff-old">linked
+data
+graph
+should
+be
+dereferencable
+</del>
+<ins class="diff-chg">following
+key.
+In
+contrast
+</ins>
+to
+<del class="diff-old">a
+Linked
+Data
+document
+describing
+</del>
+<ins class="diff-chg">JSON,
+in
+JSON-LD
+</ins>
+the
+<del class="diff-old">labeled
+subject
+,
+property
+or
+</del>
+<ins class="diff-chg">keys
+in
+an
+</ins>
+object
+<del class="diff-old">.
+Issue
+1
+</del>
+<ins class="diff-chg">must
+be
+unique.
+</ins></dd><dt>
+<dfn title="array" id="dfn-array">
+<ins class="diff-chg">array
+</ins></dfn>
+</dt>
+<dd>
+An
+<del class="diff-old">illustration
+</del>
+<ins class="diff-chg">array
+structure
+is
+represented
+as
+square
+brackets
+surrounding
+zero
+or
+more
+values.
+Values
+are
+separated
+by
+commas.
+In
+JSON,
+an
+array
+is
+an
+</ins><em><ins class="diff-chg">
+ordered
+</ins></em><ins class="diff-chg">
+sequence
+</ins>
+of
+<del class="diff-old">a
+linked
+data
+graph
+would
+probably
+help
+here.
+Issue
+2
+EricP
+suggests
+that
+</del>
+<ins class="diff-chg">zero
+or
+more
+values.
+While
+JSON-LD
+uses
+</ins>
+the
+<del class="diff-old">definitions
+of
+subject
+</del>
+<ins class="diff-chg">same
+array
+representation
+as
+JSON,
+the
+collection
+is
+</ins><em><ins class="diff-chg">
+unordered
+</ins></em><ins class="diff-chg">
+by
+default.
+While
+order
+is
+preserved
+in
+regular
+JSON
+arrays,
+it
+is
+not
+in
+regular
+JSON-LD
+arrays
+unless
+specifically
+defined
+(see
+</ins><a class="sectionRef sec-ref" href="#sets-and-lists"><ins class="diff-chg">
+section
+6.11
+Sets
+</ins>
+and
+<del class="diff-old">object,
+while
+being
+practical,
+are
+at
+odds
+with
+[
+RDF-CONCEPTS
+</del>
+<ins class="diff-chg">Lists
+</ins>
+</a>
+<ins class="diff-new">).
+</ins></dd><dt>
+<del class="diff-old">]
+use
+in
+their
+roles
+within
+a
+triple.
+</del>
+<dfn title="string" id="dfn-string">
+<ins class="diff-chg">string
+</ins></dfn>
+</dt>
+<del class="diff-old">Note
+</del>
+<dd>
+<ins class="diff-chg">A
+string
+is
+a
+sequence
+of
+zero
+or
+more
+Unicode
+characters,
+wrapped
+in
+double
+quotes,
+using
+backslash
+escapes
+(if
+necessary).
+</ins></dd><dt>
+<dfn title="number" id="dfn-number">
+<ins class="diff-chg">number
+</ins></dfn>
+<del class="diff-old">JSON-LD
+allows
+properties
+to
+be
+BNodes,
+while
+RDF
+does
+not.
+When
+used
+as
+just
+JSON-LD,
+this
+</del>
+</dt>
+<dd>
+<ins class="diff-chg">A
+number
+</ins>
+is
+<del class="diff-old">not
+unreasonable;
+it
+only
+becomes
+an
+issue
+(and
+could
+raise
+an
+exception)
+when
+transformed
+</del>
+<ins class="diff-chg">similar
+</ins>
+to
+<del class="diff-old">RDF.
+Note
+</del>
+that
+<del class="diff-old">the
+definition
+for
+Linked
+Data
+above
+is
+silent
+on
+the
+topic
+of
+unlabeled
+nodes
+.
+Nevertheless,
+this
+specification
+allows
+for
+the
+expression
+of
+unlabeled
+nodes
+,
+as
+</del>
+<ins class="diff-chg">used
+in
+</ins>
+most
+<del class="diff-old">graph-based
+data
+sets
+on
+the
+Web
+contain
+a
+number
+of
+associated
+nodes
+</del>
+<ins class="diff-chg">programming
+languages,
+except
+</ins>
+that
+<ins class="diff-new">the
+octal
+and
+hexadecimal
+formats
+</ins>
+are
+not
+<del class="diff-old">named
+</del>
+<ins class="diff-chg">used
+</ins>
+and
+<del class="diff-old">thus
+</del>
+<ins class="diff-chg">leading
+zeros
+</ins>
+are
+not
+<del class="diff-old">directly
+de-referenceable.
+JSON-LD
+defines
+a
+mechanism
+to
+map
+JSON
+terms,
+i.e.,
+keys
+</del>
+<ins class="diff-chg">allowed.
+</ins></dd><dt><dfn title="true" id="dfn-true"><ins class="diff-chg">
+true
+</ins></dfn>
+and
+<del class="diff-old">values,
+to
+IRIs.
+This
+does
+not
+mean
+</del>
+<dfn title="false" id="dfn-false">
+<ins class="diff-chg">false
+</ins></dfn></dt><dd><ins class="diff-chg">
+Values
+</ins>
+that
+<del class="diff-old">JSON-LD
+requires
+every
+key
+</del>
+<ins class="diff-chg">are
+used
+to
+express
+one
+of
+two
+possible
+boolean
+states.
+</ins></dd><dt><dfn title="null" id="dfn-null"><ins class="diff-chg">
+null
+</ins></dfn></dt><dd><ins class="diff-chg">
+The
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+value,
+which
+is
+typically
+used
+to
+clear
+</ins>
+or
+<ins class="diff-new">forget
+data.
+For
+example,
+A
+key-value
+pair
+in
+the
+</ins><code><ins class="diff-new">
+@context
+</ins></code><ins class="diff-new">
+where
+the
+</ins>
+value
+<del class="diff-old">to
+be
+</del>
+<ins class="diff-chg">is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+explicitly
+decouples
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+'s
+association
+with
+</ins>
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+<del class="diff-old">,
+but
+rather
+ensures
+that
+keys
+and
+values
+can
+be
+mapped
+to
+IRIs
+if
+the
+developer
+desires
+to
+transform
+their
+data
+into
+Linked
+Data
+</del>
+</abbr>
+</a>.
+<del class="diff-old">There
+are
+a
+few
+techniques
+that
+can
+ensure
+that
+developers
+will
+generate
+good
+Linked
+Data
+for
+</del>
+<ins class="diff-chg">A
+key-value
+pair
+in
+</ins>
+the
+<del class="diff-old">Web.
+</del>
+<ins class="diff-chg">body
+of
+a
+</ins>
+JSON-LD
+<del class="diff-old">formalizes
+those
+techniques.
+We
+will
+be
+using
+</del>
+<ins class="diff-chg">document
+whose
+value
+is
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+has
+</ins>
+the
+<del class="diff-old">following
+JSON
+markup
+</del>
+<ins class="diff-chg">same
+meaning
+</ins>
+as
+<ins class="diff-new">if
+</ins>
+the
+<del class="diff-old">example
+for
+</del>
+<ins class="diff-chg">key-value
+pair
+was
+not
+defined.
+If
+</ins><code><ins class="diff-chg">
+@value
+</ins></code>,<code><ins class="diff-chg">
+@list
+</ins></code>,<ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@set
+</ins></code><ins class="diff-chg">
+is
+set
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+in
+expanded
+form,
+then
+</ins>
+the
+<del class="diff-old">rest
+of
+this
+section:
+{
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
+}
+</del>
+<ins class="diff-chg">entire
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+is
+ignored.
+</ins></dd></dl></section><section class="normative" id="syntax-tokens-and-keywords"><h3>
+<span class="secno">
+<del class="diff-old">3.1.1
+</del>
+<ins class="diff-chg">3.2
+</ins>
+</span>
+Syntax
+Tokens
+and
+Keywords
+</h3>
+<p>
+JSON-LD
+specifies
+a
+number
+of
+syntax
+tokens
+and
+<dfn title="keyword" id="dfn-keyword">
+keywords
+</dfn>
+that
+are
+a
+core
+part
+of
+the
+language:
+</p>
+<dl>
+<dt>
+<code>
+@context
+</code>
+</dt>
+<dd>
+Used
+to
+define
+the
+short-hand
+names
+that
+are
+used
+throughout
+a
+JSON-LD
+document.
+These
+short-hand
+names
+are
+called
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">terms
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+and
+help
+developers
+to
+express
+specific
+identifiers
+in
+a
+compact
+manner.
+The
+<code>
+@context
+</code>
+keyword
+is
+described
+in
+detail
+in
+<del class="diff-old">the
+</del>
+<a class="sectionRef sec-ref" href="#the-context">
+section
+<del class="diff-old">titled
+</del>
+<ins class="diff-chg">5.1
+</ins>
+The
+Context
+</a>.
+</dd>
+<dt>
+<code>
+<del class="diff-old">@graph
+Used
+to
+explicitly
+label
+a
+linked
+data
+graph
+.
+This
+keyword
+is
+described
+in
+the
+section
+titled
+Named
+Graphs
+.
+</del>
+@id
+</code>
+</dt>
+<dd>
+Used
+to
+uniquely
+identify
+<em>
+things
+</em>
+that
+are
+being
+described
+in
+the
+document.
+This
+keyword
+is
+described
+in
+<del class="diff-old">the
+</del>
+<a class="sectionRef sec-ref" href="#node-identifiers">
+section
+<del class="diff-old">titled
+Identifying
+the
+Subject
+</del>
+<ins class="diff-chg">5.3
+Node
+Identifiers
+</ins>
+</a>.
+</dd>
+<dt>
+<code>
+@value
+</code>
+</dt>
+<dd>
+Used
+to
+specify
+the
+data
+that
+is
+associated
+with
+a
+particular
+<a class="tref internalDFN" title="property" href="#dfn-property">
+property
+</a>
+in
+the
+graph.
+This
+keyword
+is
+described
+in
+<del class="diff-old">the
+sections
+titled
+</del>
+<a class="sectionRef sec-ref" href="#string-internationalization">
+<ins class="diff-chg">section
+6.9
+</ins>
+String
+Internationalization
+</a>
+and
+<a class="sectionRef sec-ref" href="#typed-values">
+<ins class="diff-chg">section
+6.4
+</ins>
+Typed
+Values
+</a>.
+</dd>
+<dt>
+<code>
+@language
+</code>
+</dt>
+<dd>
+Used
+to
+specify
+the
+<del class="diff-old">native
+</del>
+<ins class="diff-chg">natural
+(human)
+</ins>
+language
+for
+a
+particular
+value
+or
+the
+default
+language
+of
+a
+JSON-LD
+document.
+This
+keyword
+is
+described
+in
+<del class="diff-old">the
+</del>
+<a class="sectionRef sec-ref" href="#string-internationalization">
+section
+<del class="diff-old">titled
+</del>
+<ins class="diff-chg">6.9
+</ins>
+String
+Internationalization
+</a>.
+</dd>
+<dt>
+<code>
+@type
+</code>
+</dt>
+<dd>
+Used
+to
+set
+the
+data
+type
+of
+a
+<del class="diff-old">subject
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">node
+</ins>
+</a>
+or
+<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
+typed
+value
+</a>.
+This
+keyword
+is
+described
+in
+<del class="diff-old">the
+</del>
+<a class="sectionRef sec-ref" href="#typed-values">
+section
+<del class="diff-old">titled
+</del>
+<ins class="diff-chg">6.4
+</ins>
+Typed
+Values
+</a>.
+</dd>
+<dt>
+<code>
+@container
+</code>
+</dt>
+<dd>
+Used
+to
+set
+the
+<ins class="diff-new">default
+</ins>
+container
+<del class="diff-old">of
+</del>
+<ins class="diff-chg">type
+for
+</ins>
+a
+<del class="diff-old">particular
+value.
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a>.
+This
+keyword
+is
+described
+in
+<del class="diff-old">the
+</del>
+<a class="sectionRef sec-ref" href="#sets-and-lists">
+section
+<del class="diff-old">titled
+</del>
+<ins class="diff-chg">6.11
+</ins>
+Sets
+and
+Lists
+</a>.
+</dd>
+<dt>
+<code>
+@list
+</code>
+</dt>
+<dd>
+Used
+to
+express
+an
+ordered
+set
+of
+data.
+This
+keyword
+is
+described
+in
+<del class="diff-old">the
+</del>
+<a class="sectionRef sec-ref" href="#sets-and-lists">
+section
+<del class="diff-old">titled
+</del>
+<ins class="diff-chg">6.11
+</ins>
+Sets
+and
+Lists
+</a>.
+</dd>
+<dt>
+<code>
+@set
+</code>
+</dt>
+<dd>
+Used
+to
+express
+an
+unordered
+set
+of
+<del class="diff-old">data.
+</del>
+<ins class="diff-chg">data
+and
+to
+ensure
+that
+values
+are
+always
+represented
+as
+arrays.
+</ins>
+This
+keyword
+is
+described
+in
+<del class="diff-old">the
+</del>
+<a class="sectionRef sec-ref" href="#sets-and-lists">
+section
+<del class="diff-old">titled
+</del>
+<ins class="diff-chg">6.11
+</ins>
+Sets
+and
+Lists
+</a>.
+</dd>
+<dt>
+<code>
+<ins class="diff-new">@reverse
+</ins></code></dt><dd><ins class="diff-new">
+Used
+to
+express
+reverse
+properties.
+This
+keyword
+is
+described
+in
+</ins><a class="sectionRef sec-ref" href="#reverse-properties"><ins class="diff-new">
+section
+6.12
+Reverse
+Properties
+</ins></a>.</dd><dt><code><ins class="diff-new">
+@index
+</ins></code></dt><dd><ins class="diff-new">
+Used
+to
+specify
+that
+a
+container
+is
+used
+to
+index
+information
+and
+that
+processing
+should
+continue
+deeper
+into
+a
+JSON
+data
+structure.
+This
+keyword
+is
+described
+in
+</ins><a class="sectionRef sec-ref" href="#data-indexing"><ins class="diff-new">
+section
+6.16
+Data
+Indexing
+</ins></a>.</dd><dt><code><ins class="diff-new">
+@base
+</ins></code></dt><dd><ins class="diff-new">
+Used
+to
+set
+the
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+against
+which
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
+relative
+IRIs
+</ins></a><ins class="diff-new">
+are
+resolved.
+This
+keyword
+is
+described
+in
+</ins><a class="sectionRef sec-ref" href="#base-iri"><ins class="diff-new">
+section
+6.1
+Base
+IRI
+</ins></a>.</dd><dt><code><ins class="diff-new">
+@vocab
+</ins></code></dt><dd><ins class="diff-new">
+Used
+to
+expand
+properties
+and
+values
+in
+</ins><code><ins class="diff-new">
+@type
+</ins></code><ins class="diff-new">
+with
+a
+common
+prefix
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>.<ins class="diff-new">
+This
+keyword
+is
+described
+in
+</ins><a class="sectionRef sec-ref" href="#default-vocabulary"><ins class="diff-new">
+section
+6.2
+Default
+Vocabulary
+</ins></a>.</dd><dt><code><ins class="diff-new">
+@graph
+</ins></code></dt><dd><ins class="diff-new">
+Used
+to
+explicitly
+label
+a
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-new">
+JSON-LD
+graph
+</ins></a>.<ins class="diff-new">
+This
+keyword
+is
+described
+in
+</ins><a class="sectionRef sec-ref" href="#named-graphs"><ins class="diff-new">
+section
+6.13
+Named
+Graphs
+</ins></a>.</dd><dt>
+<code>:
+</code>
+</dt>
+<dd>
+The
+separator
+for
+JSON
+keys
+and
+values
+that
+use
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+compact
+IRIs
+</a>.
+</dd>
+</dl>
+<p>
+<del class="diff-old">For
+the
+avoidance
+of
+doubt,
+all
+</del>
+<ins class="diff-chg">All
+</ins>
+keys,
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keywords
+</a>,
+and
+values
+in
+JSON-LD
+are
+case-sensitive.
+</p>
+</section>
+</section>
+<section class="normative" id="conformance">
+<h2>
+<span class="secno">
+<del class="diff-old">3.1.2
+</del>
+<ins class="diff-chg">4.
+</ins>
+</span>
+<del class="diff-old">The
+Context
+</del>
+<ins class="diff-chg">Conformance
+</ins></h2>
+<p>
+<del class="diff-old">In
+JSON-LD,
+a
+context
+</del>
+<ins class="diff-chg">This
+specification
+describes
+the
+conformance
+criteria
+for
+JSON-LD
+documents.
+This
+criteria
+</ins>
+is
+<del class="diff-old">used
+</del>
+<ins class="diff-chg">relevant
+</ins>
+to
+<del class="diff-old">map
+term
+</del>
+<ins class="diff-chg">authors
+and
+authoring
+tool
+implementers.
+As
+well
+as
+sections
+marked
+as
+non-normative,
+all
+authoring
+guidelines,
+diagrams,
+examples,
+and
+notes
+in
+this
+specification
+are
+non-normative.
+Everything
+else
+in
+this
+specification
+is
+normative.
+</ins></p><p><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
+JSON-LD
+document
+</ins>
+</a>
+<del class="diff-old">s,
+i.e.,
+properties
+</del>
+<ins class="diff-chg">complies
+</ins>
+with
+<del class="diff-old">associated
+values
+</del>
+<ins class="diff-chg">this
+specification
+if
+it
+follows
+the
+normative
+statements
+</ins>
+in
+<del class="diff-old">an
+JSON
+document,
+to
+IRI
+s.
+A
+term
+is
+a
+short
+word
+that
+expands
+to
+an
+</del>
+<ins class="diff-chg">appendix
+</ins><a href="#json-ld-grammar" class="sec-ref">
+<del class="diff-old">IRI
+</del>
+<span class="secno">
+<ins class="diff-chg">B.
+</ins></span><span class="sec-title"><ins class="diff-chg">
+JSON-LD
+Grammar
+</ins></span>
+</a>.
+<del class="diff-old">Term
+s
+may
+</del>
+<ins class="diff-chg">JSON
+documents
+can
+</ins>
+be
+<del class="diff-old">defined
+</del>
+<ins class="diff-chg">interpreted
+</ins>
+as
+<del class="diff-old">any
+valid
+</del>
+<ins class="diff-chg">JSON-LD
+by
+following
+the
+normative
+statements
+in
+</ins><a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld"><ins class="diff-chg">
+section
+6.8
+Interpreting
+</ins>
+JSON
+<del class="diff-old">string
+other
+than
+a
+</del>
+<ins class="diff-chg">as
+</ins>
+JSON-LD
+<del class="diff-old">keyword
+</del>
+</a>.
+<del class="diff-old">To
+avoid
+forward-compatibility
+issues,
+term
+</del>
+<ins class="diff-chg">For
+convenience,
+normative
+statements
+for
+documents
+are
+often
+phrased
+as
+statements
+on
+the
+properties
+of
+the
+document.
+</ins></p><p><ins class="diff-chg">
+The
+key
+words
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em>,<em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em>,<em class="rfc2119" title="REQUIRED"><ins class="diff-chg">
+REQUIRED
+</ins></em>,<em class="rfc2119" title="SHALL"><ins class="diff-chg">
+SHALL
+</ins></em>,<em class="rfc2119" title="SHALL NOT"><ins class="diff-chg">
+SHALL
+NOT
+</ins></em>,<em class="rfc2119" title="SHOULD"><ins class="diff-chg">
+SHOULD
+</ins></em>,<em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
+SHOULD
+NOT
+</ins></em>,<em class="rfc2119" title="RECOMMENDED"><ins class="diff-chg">
+RECOMMENDED
+</ins></em>,<em class="rfc2119" title="NOT RECOMMENDED"><ins class="diff-chg">
+NOT
+RECOMMENDED
+</ins></em>,<em class="rfc2119" title="MAY"><ins class="diff-chg">
+MAY
+</ins></em>,<ins class="diff-chg">
+and
+</ins><em class="rfc2119" title="OPTIONAL"><ins class="diff-chg">
+OPTIONAL
+</ins></em><ins class="diff-chg">
+in
+this
+specification
+have
+the
+meaning
+defined
+in
+[
+</ins><cite><a class="bibref" href="#bib-RFC2119"><ins class="diff-chg">
+RFC2119
+</ins>
+</a>
+<del class="diff-old">s
+starting
+with
+an
+@
+character
+should
+not
+</del>
+</cite>
+<ins class="diff-chg">].
+</ins></p></section><section class="informative" id="basic-concepts"><h2><span class="secno"><ins class="diff-chg">
+5.
+</ins></span><ins class="diff-chg">
+Basic
+Concepts
+</ins></h2><p><em><ins class="diff-chg">
+This
+section
+is
+non-normative.
+</ins>
+</em>
+<del class="diff-old">be
+used
+as
+they
+might
+be
+used
+as
+keywords
+</del>
+</p>
+<p>
+<ins class="diff-chg">JSON
+[
+</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-chg">
+RFC4627
+</ins>
+</a>
+<del class="diff-old">in
+future
+versions
+of
+JSON-LD.
+</del>
+</cite>
+<ins class="diff-chg">]
+is
+a
+lightweight,
+language-independent
+data-interchange
+format.
+It
+is
+easy
+to
+parse
+and
+easy
+to
+generate.
+However,
+it
+is
+difficult
+to
+integrate
+JSON
+from
+different
+sources
+as
+the
+data
+has
+just
+local
+meaning.
+</ins>
+Furthermore,
+<ins class="diff-new">JSON
+has
+no
+built-in
+support
+for
+hyperlinks
+-
+a
+fundamental
+building
+block
+on
+</ins>
+the
+<del class="diff-old">use
+</del>
+<ins class="diff-chg">Web.
+Let's
+look
+at
+an
+example
+that
+we
+will
+be
+using
+for
+the
+rest
+</ins>
+of
+<del class="diff-old">empty
+terms
+(
+</del>
+<ins class="diff-chg">this
+section:
+</ins></p>  <div class="example"><div class="example-title"><span>Example 1</span>: Sample JSON document</div><pre class="example">{<ins class="diff-chg">
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
+}
+</ins></pre></div><p><ins class="diff-chg">
+It's
+obvious
+to
+humans
+that
+the
+data
+is
+about
+a
+person
+whose
+name
+is
+&quot;Manu
+Sporny&quot;
+and
+that
+the
+</ins>
+<code>
+<del class="diff-old">&quot;&quot;
+</del>
+<ins class="diff-chg">homepage
+</ins>
+</code>
+<del class="diff-old">)
+</del>
+<ins class="diff-chg">property
+contains
+the
+URL
+of
+that
+person's
+homepage.
+A
+machine
+doesn't
+have
+such
+an
+intuitive
+understanding
+and
+sometimes,
+even
+for
+humans,
+it
+</ins>
+is
+<del class="diff-old">discouraged
+as
+not
+all
+programming
+languages
+are
+able
+</del>
+<ins class="diff-chg">difficult
+</ins>
+to
+<del class="diff-old">handle
+empty
+property
+names.
+</del>
+<ins class="diff-chg">resolve
+ambiguities
+in
+such
+representations.
+This
+problem
+can
+be
+solved
+by
+using
+unambiguous
+identifiers
+to
+denote
+the
+different
+concepts
+instead
+of
+tokens
+such
+as
+&quot;name&quot;,
+&quot;homepage&quot;,
+etc.
+</ins>
+</p>
+<p>
+<del class="diff-old">The
+</del>
+<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
+<ins class="diff-chg">Linked
+Data
+</ins></a>,<ins class="diff-chg">
+and
+the
+</ins>
+Web
+<ins class="diff-new">in
+general,
+</ins>
+uses
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+IRIs
+</a>
+<ins class="diff-new">(Internationalized
+Resource
+Identifiers
+as
+described
+in
+[
+</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-new">
+RFC3987
+</ins></a></cite><ins class="diff-new">
+])
+</ins>
+for
+unambiguous
+identification.
+The
+idea
+is
+<del class="diff-old">that
+these
+term
+</del>
+<ins class="diff-chg">to
+assign
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins>
+</a>
+<del class="diff-old">s
+mean
+</del>
+<ins class="diff-chg">to
+</ins>
+something
+that
+may
+be
+of
+use
+to
+other
+developers
+and
+that
+it
+is
+useful
+to
+give
+them
+an
+unambiguous
+identifier.
+That
+is,
+it
+is
+useful
+for
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">terms
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+to
+expand
+to
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+IRIs
+</a>
+so
+that
+developers
+don't
+accidentally
+step
+on
+each
+other's
+<del class="diff-old">vocabulary
+terms
+and
+other
+resources.
+</del>
+<ins class="diff-chg">terms.
+</ins>
+Furthermore,
+<del class="diff-old">developers,
+</del>
+<ins class="diff-chg">developers
+</ins>
+and
+<del class="diff-old">machines,
+</del>
+<ins class="diff-chg">machines
+</ins>
+are
+able
+to
+use
+this
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+(by
+<del class="diff-old">plugging
+it
+directly
+into
+</del>
+<ins class="diff-chg">using
+</ins>
+a
+web
+browser,
+for
+instance)
+to
+go
+to
+the
+term
+and
+get
+a
+definition
+of
+what
+the
+term
+means.
+<del class="diff-old">This
+mechanism
+is
+analogous
+to
+</del>
+</p>
+<p>
+<ins class="diff-chg">Leveraging
+</ins>
+the
+<del class="diff-old">way
+we
+can
+use
+WordNet
+today
+to
+see
+</del>
+<ins class="diff-chg">well-known
+</ins><a href="http://schema.org/"><ins class="diff-chg">
+schema.org
+vocabulary
+</ins></a>,
+the
+<del class="diff-old">definition
+of
+words
+in
+</del>
+<ins class="diff-chg">example
+above
+could
+be
+unambiguously
+expressed
+as
+follows:
+</ins></p>  <div class="example"><div class="example-title"><span>Example 2</span>: Sample JSON-LD document using full IRIs instead of terms</div><pre class="example">{<ins class="diff-chg">
+  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
+  &quot;<span class="diff">http://schema.org/url</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/&quot; <span class="diff">}</span>,
+  &quot;<span class="diff">http://schema.org/image</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/images/manu.png&quot; <span class="diff">}</span>
+}
+</ins></pre></div><p><ins class="diff-chg">
+In
+</ins>
+the
+<del class="diff-old">English
+language.
+Developers
+</del>
+<ins class="diff-chg">example
+above,
+every
+property
+is
+unambiguously
+identified
+by
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>
+and
+<del class="diff-old">machines
+need
+the
+same
+sort
+of
+definition
+of
+terms.
+</del>
+<ins class="diff-chg">all
+values
+representing
+</ins>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+IRIs
+</a>
+<del class="diff-old">provide
+a
+way
+to
+ensure
+that
+these
+terms
+</del>
+are
+<del class="diff-old">unambiguous.
+For
+example,
+</del>
+<ins class="diff-chg">explicitly
+marked
+as
+such
+by
+</ins>
+the
+<del class="diff-old">term
+</del>
+<code>
+<del class="diff-old">name
+</del>
+<ins class="diff-chg">@id
+</ins>
+</code>
+<del class="diff-old">may
+map
+directly
+to
+the
+IRI
+http://xmlns.com/foaf/0.1/name
+.
+This
+allows
+</del>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-chg">keyword
+</ins></a>.<ins class="diff-chg">
+While
+this
+is
+a
+valid
+</ins>
+JSON-LD
+<del class="diff-old">documents
+</del>
+<ins class="diff-chg">document
+that
+is
+very
+specific
+about
+its
+data,
+the
+document
+is
+also
+overly
+verbose
+and
+difficult
+</ins>
+to
+<del class="diff-old">be
+constructed
+using
+</del>
+<ins class="diff-chg">work
+with
+for
+human
+developers.
+To
+address
+this
+issue,
+JSON-LD
+introduces
+</ins>
+the
+<del class="diff-old">common
+JSON
+practice
+</del>
+<ins class="diff-chg">notion
+</ins>
+of
+<del class="diff-old">simple
+name/value
+pairs
+while
+ensuring
+that
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+as
+described
+in
+</ins>
+the
+<del class="diff-old">data
+</del>
+<ins class="diff-chg">next
+section.
+</ins></p><section class="informative" id="the-context"><h3><span class="secno"><ins class="diff-chg">
+5.1
+</ins></span><ins class="diff-chg">
+The
+Context
+</ins></h3><p><em><ins class="diff-chg">
+This
+section
+</ins>
+is
+<del class="diff-old">useful
+outside
+of
+</del>
+<ins class="diff-chg">non-normative.
+</ins></em></p><p><ins class="diff-chg">
+Simply
+speaking,
+a
+</ins><dfn title="context" id="dfn-context"><ins class="diff-chg">
+context
+</ins></dfn><ins class="diff-chg">
+is
+used
+to
+map
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>.<a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+Terms
+</ins></a><ins class="diff-chg">
+are
+case
+sensitive
+and
+any
+valid
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+that
+is
+not
+a
+reserved
+JSON-LD
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+can
+be
+used
+as
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>.</p><p><ins class="diff-chg">
+For
+</ins>
+the
+<del class="diff-old">page,
+API
+or
+database
+</del>
+<ins class="diff-chg">sample
+document
+</ins>
+in
+<del class="diff-old">which
+it
+resides.
+The
+</del>
+<ins class="diff-chg">the
+previous
+section,
+a
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+would
+look
+something
+like
+this:
+</ins></p>    <div class="example"><div class="example-title"><span>Example 3</span>: Context for the sample document in the previous section</div><pre class="example">{  <span class="diff">&quot;@context&quot;:<ins class="diff-chg">
+  {
+    &quot;name&quot;: &quot;http://schema.org/name&quot;,
+    &quot;image&quot;: {
+      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  }</span>
+}
+</ins></pre></div><p><ins class="diff-chg">
+As
+the
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a><ins class="diff-chg">
+above
+shows,
+the
+</ins>
+value
+of
+a
+<dfn title="term-definition" id="dfn-term-definition">
+term
+<del class="diff-old">mapping
+must
+</del>
+<ins class="diff-chg">definition
+</ins></dfn><ins class="diff-chg">
+can
+either
+</ins>
+be
+<del class="diff-old">either;
+1)
+</del>
+a
+simple
+<del class="diff-old">string
+with
+</del>
+<ins class="diff-chg">string,
+mapping
+</ins>
+the
+<del class="diff-old">lexical
+form
+of
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a><ins class="diff-chg">
+to
+</ins>
+an
+<del class="diff-old">absolute
+IRI
+</del>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<del class="diff-old">or
+2)
+compact
+</del>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>,
+or
+<del class="diff-old">3)
+an
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>.</p><p><ins class="diff-chg">
+When
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+<del class="diff-old">containing
+</del>
+<ins class="diff-chg">is
+associated
+with
+a
+term,
+it
+is
+called
+</ins>
+an
+<dfn title="expanded-term-definition" id="dfn-expanded-term-definition">
+<ins class="diff-new">expanded
+term
+definition
+</ins></dfn>.<ins class="diff-new">
+The
+example
+above
+specifies
+that
+the
+values
+of
+</ins>
+<code>
+<del class="diff-old">@id
+,
+@type
+,
+@language
+,
+or
+</del>
+<ins class="diff-chg">image
+</ins></code><ins class="diff-chg">
+and
+</ins>
+<code>
+<del class="diff-old">@container
+</del>
+<ins class="diff-chg">homepage
+</ins>
+</code>
+<del class="diff-old">keyword
+(all
+other
+keywords
+</del>
+<ins class="diff-chg">terms
+</ins>
+are
+<del class="diff-old">ignored
+by
+a
+JSON-LD
+processor).
+These
+Linked
+Data
+term
+</del>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<ins class="diff-chg">IRIs
+</ins></a>.<ins class="diff-chg">
+They
+also
+allow
+terms
+to
+be
+used
+for
+</ins><a href="#data-indexing"><ins class="diff-chg">
+index
+maps
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+<ins class="diff-chg">and
+to
+specify
+whether
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+values
+</ins>
+are
+<del class="diff-old">typically
+collected
+in
+a
+context
+document
+that
+would
+look
+something
+like
+this:
+{
+  &quot;@context&quot;:
+  {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;depiction&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+    &quot;homepage&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+  }
+}
+</del>
+<ins class="diff-chg">to
+be
+interpreted
+as
+</ins><a href="#sets-and-lists"><ins class="diff-chg">
+sets
+or
+lists
+</ins></a>.<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+Expanded
+term
+definitions
+</ins></a><ins class="diff-chg">
+may
+be
+defined
+using
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+IRIs
+</ins></a><ins class="diff-chg">
+as
+keys,
+which
+is
+mainly
+used
+to
+associate
+type
+or
+language
+information
+with
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>.
+</p>
+<p>
+<a class="tref internalDFN" title="context" href="#dfn-context">
+<ins class="diff-new">Contexts
+</ins></a><ins class="diff-new">
+can
+either
+be
+directly
+embedded
+into
+the
+document
+or
+be
+referenced.
+</ins>
+Assuming
+<del class="diff-old">that
+this
+</del>
+<ins class="diff-chg">the
+</ins>
+context
+document
+<ins class="diff-new">in
+the
+previous
+example
+</ins>
+can
+be
+retrieved
+at
+<code>
+http://json-ld.org/contexts/person.jsonld
+</code>,
+it
+can
+be
+referenced
+<del class="diff-old">from
+a
+JSON-LD
+document
+</del>
+by
+adding
+a
+single
+<del class="diff-old">line.
+The
+JSON
+markup
+</del>
+<ins class="diff-chg">line
+and
+allows
+a
+JSON-LD
+document
+to
+be
+expressed
+much
+more
+concisely
+as
+</ins>
+shown
+in
+the
+<del class="diff-old">previous
+section
+could
+be
+changed
+as
+follows:
+</del>
+<ins class="diff-chg">example
+below:
+</ins>
+</p>
+<del class="diff-old">{
+</del>
+    <div class="example"><div class="example-title"><span>Example 4</span>: Referencing a JSON-LD context</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,</span>
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+<del class="diff-old">  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
+</del>
+<ins class="diff-chg">  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
+</ins>
+}
+</pre>
+</div>
+<p>
+The
+<del class="diff-old">additions
+above
+transform
+the
+previous
+JSON
+document
+into
+a
+JSON
+document
+with
+added
+semantics
+because
+the
+@context
+</del>
+<ins class="diff-chg">referenced
+context
+not
+only
+</ins>
+specifies
+how
+the
+<del class="diff-old">name
+,
+homepage
+,
+and
+depiction
+</del>
+terms
+map
+to
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+IRIs
+<del class="diff-old">.
+Mapping
+those
+keys
+to
+IRIs
+gives
+</del>
+</a>
+<ins class="diff-chg">in
+</ins>
+the
+<del class="diff-old">data
+global
+context.
+If
+two
+developers
+use
+</del>
+<ins class="diff-chg">Schema.org
+vocabulary
+but
+also
+specifies
+that
+</ins>
+the
+<del class="diff-old">same
+</del>
+<ins class="diff-chg">values
+of
+the
+</ins><code><ins class="diff-chg">
+homepage
+</ins></code><ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+image
+</ins></code><ins class="diff-chg">
+property
+can
+be
+interpreted
+as
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">to
+describe
+a
+property,
+they
+are
+</del>
+</a>
+<ins class="diff-chg">(
+</ins><code><ins class="diff-chg">
+&quot;@type&quot;:
+&quot;@id&quot;
+</ins></code>,<ins class="diff-chg">
+see
+</ins><a class="sectionRef sec-ref" href="#iris"><ins class="diff-chg">
+section
+5.2
+IRIs
+</ins></a><ins class="diff-chg">
+for
+</ins>
+more
+<del class="diff-old">than
+likely
+expressing
+the
+same
+concept.
+</del>
+<ins class="diff-chg">details).
+</ins>
+This
+<ins class="diff-new">information
+</ins>
+allows
+<del class="diff-old">both
+</del>
+developers
+to
+re-use
+each
+<del class="diff-old">others'
+</del>
+<ins class="diff-chg">other's
+</ins>
+data
+without
+having
+to
+agree
+to
+how
+their
+data
+will
+interoperate
+on
+a
+site-by-site
+basis.
+<del class="diff-old">Contexts
+</del>
+<ins class="diff-chg">External
+JSON-LD
+context
+documents
+</ins>
+may
+<del class="diff-old">also
+</del>
+contain
+<del class="diff-old">type
+</del>
+<ins class="diff-chg">extra
+</ins>
+information
+<del class="diff-old">for
+certain
+</del>
+<ins class="diff-chg">located
+outside
+of
+the
+</ins><code><ins class="diff-chg">
+@context
+</ins></code><ins class="diff-chg">
+key,
+such
+as
+documentation
+about
+the
+</ins>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">terms
+</ins>
+</a>
+<del class="diff-old">s
+as
+well
+as
+other
+processing
+instructions
+for
+</del>
+<ins class="diff-chg">declared
+in
+the
+document.
+Information
+contained
+outside
+of
+</ins>
+the
+<code>
+<ins class="diff-new">@context
+</ins></code><ins class="diff-new">
+value
+is
+ignored
+when
+the
+document
+is
+used
+as
+an
+external
+</ins>
+JSON-LD
+<del class="diff-old">processor.
+</del>
+<ins class="diff-chg">context
+document.
+</ins>
+</p>
+<p>
+<del class="diff-old">Contexts
+may
+be
+specified
+in-line.
+This
+ensures
+that
+JSON-LD
+</del>
+<ins class="diff-chg">JSON
+</ins>
+documents
+can
+be
+<del class="diff-old">processed
+when
+a
+</del>
+<ins class="diff-chg">transformed
+to
+</ins>
+JSON-LD
+<del class="diff-old">processor
+does
+not
+have
+access
+</del>
+<ins class="diff-chg">without
+having
+</ins>
+to
+<del class="diff-old">the
+Web.
+{
+  &quot;@context&quot;:
+  {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;depiction&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+    &quot;homepage&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+  },
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
+}
+Contexts
+may
+</del>
+be
+<del class="diff-old">used
+at
+any
+time
+</del>
+<ins class="diff-chg">modified
+by
+referencing
+</ins>
+a
+<del class="diff-old">subject
+definition
+is
+defined.
+A
+subject
+definition
+may
+specify
+multiple
+contexts,
+using
+an
+array
+,
+which
+is
+processed
+in
+order.
+This
+is
+useful
+when
+an
+author
+would
+like
+to
+use
+an
+existing
+context
+and
+add
+application-specific
+terms
+to
+the
+existing
+context.
+Duplicate
+</del>
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+<del class="diff-old">term
+</del>
+</a>
+<del class="diff-old">s
+must
+be
+overridden
+using
+a
+last-defined-overrides
+mechanism.
+Note
+If
+a
+term
+is
+re-defined
+within
+a
+context,
+all
+previous
+rules
+associated
+with
+the
+previous
+definition
+are
+removed.
+A
+term
+defined
+</del>
+<ins class="diff-chg">via
+an
+HTTP
+Link
+Header
+as
+described
+</ins>
+in
+<del class="diff-old">a
+previous
+context
+must
+be
+removed,
+if
+it
+</del>
+<a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld">
+<ins class="diff-chg">section
+6.8
+Interpreting
+JSON
+as
+JSON-LD
+</ins></a>.<ins class="diff-chg">
+It
+</ins>
+is
+<del class="diff-old">re-defined
+</del>
+<ins class="diff-chg">also
+possible
+</ins>
+to
+<del class="diff-old">null
+.
+The
+set
+of
+contexts
+defined
+within
+</del>
+<ins class="diff-chg">apply
+</ins>
+a
+<del class="diff-old">specific
+subject
+definition
+are
+referred
+to
+as
+local
+context
+s.
+Setting
+the
+context
+to
+null
+effectively
+sets
+the
+local
+context
+to
+the
+initial
+</del>
+<ins class="diff-chg">custom
+</ins>
+context
+<del class="diff-old">(further
+explained
+in
+</del>
+<ins class="diff-chg">using
+</ins>
+the
+JSON-LD
+<del class="diff-old">API,
+Appendix
+A,
+Initial
+Context
+</del>
+<ins class="diff-chg">API
+</ins>
+[
+<cite>
+<a class="bibref" href="#bib-JSON-LD-API">
+JSON-LD-API
+</a>
+</cite>
+<del class="diff-old">]
+).
+The
+active
+context
+refers
+to
+the
+accumulation
+of
+local
+context
+s
+that
+are
+in
+scope
+at
+a
+specific
+point
+within
+the
+document.
+The
+following
+example
+specifies
+an
+external
+context
+and
+then
+layers
+a
+local
+context
+on
+top
+of
+the
+external
+context:
+</del>
+<ins class="diff-chg">].
+</ins>
+</p>
+<del class="diff-old">{
+  &quot;@context&quot;: [
+    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
+    {
+      &quot;pic&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;
+    }
+  ],
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+
+}
+Note
+To
+ensure
+the
+best
+possible
+performance,
+it
+is
+a
+best
+practice
+to
+put
+the
+context
+definition
+at
+the
+top
+of
+the
+</del>
+<p>
+<ins class="diff-chg">In
+</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
+JSON-LD
+<del class="diff-old">document.
+If
+it
+isn't
+listed
+first,
+processors
+have
+to
+save
+each
+key-value
+pair
+until
+the
+</del>
+<ins class="diff-chg">documents
+</ins></a>
+<a class="tref internalDFN" title="context" href="#dfn-context">
+<del class="diff-old">context
+</del>
+<ins class="diff-chg">contexts
+</ins>
+</a>
+<del class="diff-old">is
+processed.
+</del>
+<ins class="diff-chg">may
+also
+be
+specified
+in-line.
+</ins>
+This
+<del class="diff-old">creates
+a
+memory
+and
+complexity
+burden
+for
+certain
+types
+of
+low-memory
+footprint
+JSON-LD
+processors.
+Note
+The
+null
+value
+is
+processed
+in
+a
+special
+way
+in
+JSON-LD.
+Unless
+otherwise
+specified,
+a
+JSON-LD
+processor
+must
+act
+as
+if
+a
+key-value
+pair
+in
+the
+body
+of
+a
+JSON-LD
+document
+was
+never
+declared
+when
+</del>
+<ins class="diff-chg">has
+</ins>
+the
+<del class="diff-old">value
+equals
+null
+.
+If
+@value
+,
+@list
+,
+or
+@set
+is
+set
+to
+null
+</del>
+<ins class="diff-chg">advantage
+that
+documents
+can
+be
+processed
+even
+</ins>
+in
+<del class="diff-old">expanded
+form,
+then
+the
+entire
+JSON
+object
+is
+ignored.
+If
+@context
+is
+set
+to
+null
+,
+the
+active
+context
+is
+reset
+and
+when
+used
+within
+a
+context
+,
+it
+removes
+any
+definition
+associated
+with
+</del>
+the
+<del class="diff-old">key,
+unless
+otherwise
+specified.
+3.1.3
+From
+JSON
+to
+JSON-LD
+If
+a
+set
+</del>
+<ins class="diff-chg">absence
+</ins>
+of
+<del class="diff-old">term
+s
+such
+as,
+name
+,
+homepage
+,
+and
+depiction
+,
+are
+defined
+in
+</del>
+a
+<del class="diff-old">context
+,
+and
+that
+context
+is
+used
+</del>
+<ins class="diff-chg">connection
+</ins>
+to
+<del class="diff-old">resolve
+</del>
+the
+<del class="diff-old">names
+in
+JSON
+objects
+,
+machines
+are
+able
+to
+automatically
+expand
+the
+terms
+to
+something
+meaningful
+and
+unambiguous,
+like
+this:
+</del>
+<ins class="diff-chg">Web.
+</ins>
+</p>
+<del class="diff-old">{
+  &quot;&quot;: &quot;Manu Sporny&quot;,
+  &quot;&quot;: &quot;http://manu.sporny.org&quot;
+  &quot;&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
+</del>
+    <div class="example"><div class="example-title"><span>Example 5</span>: In-line context definition</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+<ins class="diff-chg">  {
+    &quot;name&quot;: &quot;http://schema.org/name&quot;,
+    &quot;image&quot;: {
+      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },</span>
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
+</ins>
+}
+</pre>
+</div>
+<del class="diff-old">Doing
+this
+allows
+JSON
+to
+be
+unambiguously
+machine-readable
+without
+requiring
+developers
+to
+drastically
+change
+their
+workflow.
+</del>
+</section>
+<section class="informative" id="iris">
+<h3>
+<del class="diff-old">Note
+</del>
+<span class="secno">
+<ins class="diff-chg">5.2
+</ins>
+</span>
+<ins class="diff-new">IRIs
+</ins></h3>
+<p>
+<del class="diff-old">The
+example
+above
+does
+not
+use
+the
+@id
+keyword
+to
+set
+the
+subject
+of
+the
+node
+being
+described
+above.
+</del>
+<em>
+This
+<del class="diff-old">type
+of
+node
+is
+called
+an
+unlabeled
+node
+.
+It
+is
+advised
+that
+all
+nodes
+described
+in
+JSON-LD
+are
+given
+unique
+identifiers
+via
+the
+@id
+keyword
+unless
+the
+data
+</del>
+<ins class="diff-chg">section
+</ins>
+is
+<del class="diff-old">not
+intended
+to
+be
+linked
+to
+from
+other
+data
+sets.
+</del>
+<ins class="diff-chg">non-normative.
+</ins></em>
+<del class="diff-old">A
+JSON
+object
+used
+to
+define
+property
+values
+is
+called
+a
+subject
+definition
+.
+Subject
+definitions
+do
+not
+require
+an
+@id
+.
+Subject
+definitions
+that
+do
+not
+contain
+an
+@id
+are
+known
+as
+an
+unlabeled
+nodes
+.
+</del>
+</p>
+<del class="diff-old">3.2
+IRIs
+</del>
+<p>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<ins class="diff-new">IRIs
+</ins></a><ins class="diff-new">
+(Internationalized
+Resource
+Identifiers
+[
+</ins><cite>
+<del class="diff-old">IRI
+</del>
+<a class="bibref" href="#bib-RFC3987">
+<ins class="diff-chg">RFC3987
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+</cite>
+<ins class="diff-chg">])
+</ins>
+are
+fundamental
+to
+<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
+Linked
+Data
+</a>
+as
+that
+is
+how
+most
+<del class="diff-old">subject
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">nodes
+</ins>
+</a>
+<del class="diff-old">s,
+all
+</del>
+<ins class="diff-chg">and
+</ins>
+<a class="tref internalDFN" title="property" href="#dfn-property">
+properties
+</a>
+<del class="diff-old">and
+many
+object
+s
+</del>
+are
+identified.
+<del class="diff-old">IRI
+s
+can
+be
+expressed
+in
+a
+variety
+of
+different
+ways
+in
+JSON-LD.
+Except
+within
+a
+context
+definition,
+term
+s
+in
+the
+key
+position
+in
+a
+JSON
+object
+that
+have
+a
+mapping
+to
+an
+absolute
+IRI
+or
+another
+term
+in
+the
+active
+context
+are
+expanded
+to
+an
+IRI
+by
+JSON-LD
+processors.
+An
+IRI
+is
+generated
+for
+the
+string
+value
+specified
+using
+@id
+or
+@type
+.
+An
+IRI
+is
+generated
+for
+the
+string
+value
+of
+any
+key
+for
+which
+there
+are
+coercion
+rules
+in
+effect
+that
+identify
+the
+value
+as
+an
+@id
+.
+</del>
+<ins class="diff-chg">In
+JSON-LD,
+</ins>
+IRIs
+may
+be
+represented
+as
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">,
+a
+relative
+IRI
+,
+a
+term
+,
+</del>
+</a>
+or
+a
+<del class="diff-old">compact
+</del>
+<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
+<ins class="diff-chg">relative
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+An
+<dfn title="absolute-iri" id="dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</dfn>
+is
+defined
+in
+[
+<cite>
+<a class="bibref" href="#bib-RFC3987">
+RFC3987
+</a>
+</cite>
+]
+<ins class="diff-new">as
+</ins>
+containing
+a
+<em>
+scheme
+</em>
+along
+with
+<em>
+path
+</em>
+and
+optional
+<em>
+query
+</em>
+and
+<em>
+fragment
+</em>
+segments.
+A
+<dfn title="relative-iri" id="dfn-relative-iri">
+relative
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</dfn>
+is
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+that
+is
+relative
+to
+some
+other
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+In
+JSON-LD
+all
+<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
+relative
+<del class="diff-old">IRI
+</del>
+<ins class="diff-chg">IRIs
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+are
+resolved
+relative
+to
+the
+<dfn title="base-iri" id="dfn-base-iri">
+base
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</dfn>
+associated
+with
+the
+<del class="diff-old">document
+(typically,
+</del>
+<ins class="diff-chg">document.
+</ins></p><p><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+is
+interpreted
+as
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+when
+it
+is
+</ins>
+the
+<del class="diff-old">directory
+</del>
+<ins class="diff-chg">value
+of
+an
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+member:
+</ins></p>  <div class="example"><div class="example-title"><span>Example 6</span>: Values of @id are interpreted as IRI</div><pre class="example">{<ins class="diff-chg">
+...
+  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;http://example.com/&quot; }
+...
+}
+</ins></pre></div><p><ins class="diff-chg">
+Values
+that
+are
+interpreted
+as
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>,<ins class="diff-chg">
+can
+also
+be
+expressed
+as
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
+relative
+IRIs
+</ins></a>.<ins class="diff-chg">
+For
+example,
+assuming
+</ins>
+that
+<del class="diff-old">contains
+</del>
+the
+<ins class="diff-new">following
+</ins>
+document
+<del class="diff-old">or
+</del>
+<ins class="diff-chg">is
+located
+at
+</ins><code><ins class="diff-chg">
+http://example.com/about/
+</ins></code>,
+the
+<del class="diff-old">document
+itself).
+</del>
+<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
+<ins class="diff-chg">relative
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><code>../</code><ins class="diff-chg">
+would
+expand
+to
+</ins><code><ins class="diff-chg">
+http://example.com/
+</ins></code><ins class="diff-chg">
+(for
+more
+information
+on
+where
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
+relative
+IRIs
+</ins></a><ins class="diff-chg">
+can
+be
+used,
+please
+refer
+to
+appendix
+</ins><a href="#json-ld-grammar" class="sec-ref"><span class="secno"><ins class="diff-chg">
+B.
+</ins></span><span class="sec-title"><ins class="diff-chg">
+JSON-LD
+Grammar
+</ins></span></a><ins class="diff-chg">
+).
+</ins>
+</p>
+  <div class="example"><div class="example-title"><span>Example 7</span>: IRIs can be relative</div><pre class="example">{
+<ins class="diff-new">...
+  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;../&quot; }
+...
+}
+</ins></pre></div>
+<p>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-new">Absolute
+</ins>
+IRIs
+</a>
+can
+be
+expressed
+directly
+in
+the
+key
+position
+like
+so:
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 8</span>: IRI as a key</div><pre class="example">{
+...
+<del class="diff-old">  &quot;&quot;: &quot;Manu Sporny&quot;,
+</del>
+<ins class="diff-chg">  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
+</ins>
+...
+}
+</pre>
+</div>
+<p>
+In
+the
+example
+above,
+the
+key
+<code>
+<del class="diff-old">http://xmlns.com/foaf/0.1/name
+</del>
+<ins class="diff-chg">http://schema.org/name
+</ins>
+</code>
+is
+interpreted
+as
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+because
+it
+contains
+a
+colon
+(
+<code>:
+</code>
+)
+and
+<del class="diff-old">the
+'http'
+prefix
+does
+not
+exist
+in
+the
+context.
+Term
+expansion
+occurs
+for
+IRIs
+if
+the
+value
+matches
+a
+term
+defined
+within
+the
+active
+context
+:
+{
+  &quot;&quot;:
+  {
+    &quot;&quot;
+...
+  },
+  &quot;&quot;: &quot;Manu Sporny&quot;,
+  &quot;status&quot;: &quot;trollin'&quot;,
+...
+}
+Term
+s
+are
+case
+sensitive,
+and
+must
+be
+matched
+using
+</del>
+<ins class="diff-chg">it
+is
+neither
+</ins>
+a
+<del class="diff-old">case-sensitive
+comparison.
+JSON
+keys
+that
+do
+not
+expand
+to
+an
+absolute
+</del>
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+<ins class="diff-chg">compact
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">are
+ignored,
+or
+removed
+in
+some
+cases,
+by
+the
+[
+</del>
+<del class="diff-old">JSON-LD-API
+</del>
+</a>
+<del class="diff-old">].
+However,
+JSON
+keys
+that
+do
+not
+include
+</del>
+<ins class="diff-chg">nor
+</ins>
+a
+<del class="diff-old">mapping
+in
+the
+context
+are
+still
+considered
+valid
+expressions
+in
+JSON-LD
+documents
+-
+the
+keys
+just
+don't
+have
+any
+machine-readable,
+semantic
+meaning.
+</del>
+<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
+<ins class="diff-chg">blank
+node
+identifier
+</ins></a>.
+</p>
+<p>
+<del class="diff-old">Prefix
+es
+are
+expanded
+when
+the
+form
+of
+the
+value
+is
+a
+compact
+</del>
+<ins class="diff-chg">Term-to-
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">represented
+as
+a
+prefix:suffix
+combination,
+and
+</del>
+<ins class="diff-chg">expansion
+occurs
+if
+</ins>
+the
+<del class="diff-old">prefix
+</del>
+<ins class="diff-chg">key
+</ins>
+matches
+a
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+defined
+within
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>:
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 9</span>: Term expansion from context definition</div><pre class="example">{
+  &quot;<span class="diff">@context</span>&quot;:
+  {
+<del class="diff-old">    &quot;&quot;
+...
+</del>
+<ins class="diff-chg">    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">http://schema.org/name</span>&quot;
+</ins>
+  },
+<del class="diff-old">  &quot;&quot;: &quot;Manu Sporny&quot;,
+...
+</del>
+<ins class="diff-chg">  &quot;<span class="diff">name</span>&quot;: &quot;Manu Sporny&quot;,
+  &quot;status&quot;: &quot;trollin'&quot;
+</ins>
+}
+</pre>
+</div>
+<p>
+<del class="diff-old">foaf:name
+above
+will
+automatically
+expand
+out
+to
+the
+IRI
+http://xmlns.com/foaf/0.1/name
+.
+See
+Compact
+IRIs
+for
+more
+details.
+An
+IRI
+is
+generated
+when
+a
+</del>
+JSON
+<del class="diff-old">object
+is
+used
+in
+the
+value
+position
+</del>
+<ins class="diff-chg">keys
+</ins>
+that
+<del class="diff-old">contains
+an
+@id
+keyword:
+{
+...
+  &quot;homepage&quot;: { &quot;&quot;: &quot;http://manu.sporny.org&quot; }
+...
+}
+Note
+Specifying
+a
+JSON
+object
+with
+an
+@id
+key
+is
+used
+</del>
+<ins class="diff-chg">do
+not
+expand
+</ins>
+to
+<del class="diff-old">identify
+that
+object
+using
+</del>
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">.
+When
+the
+object
+has
+only
+the
+@id
+,
+it
+is
+called
+a
+subject
+reference
+.
+This
+facility
+may
+also
+be
+used
+to
+link
+to
+another
+subject
+definition
+using
+a
+mechanism
+called
+embedding
+</del>
+</a>,
+<del class="diff-old">which
+is
+covered
+</del>
+<ins class="diff-chg">such
+as
+</ins><code><ins class="diff-chg">
+status
+</ins></code>
+in
+the
+<del class="diff-old">section
+titled
+Embedding
+.
+</del>
+<ins class="diff-chg">example
+above,
+are
+not
+Linked
+Data
+and
+thus
+ignored
+when
+processed.
+</ins>
+</p>
+<p>
+If
+type
+<a class="tref internalDFN" title="coercion" href="#dfn-coercion">
+coercion
+</a>
+rules
+are
+specified
+in
+the
+<code>
+@context
+</code>
+for
+a
+particular
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+or
+property
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>,
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+is
+generated:
+</p>
+  <div class="example"><div class="example-title"><span>Example 10</span>: Type coercion</div><pre class="example">{<span class="diff">
+  &quot;@context&quot;:
+  {
+    ...
+    &quot;homepage&quot;:
+    {
+<del class="diff-old">      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+</del>
+<ins class="diff-chg">      &quot;@id&quot;: &quot;http://schema.org/homepage&quot;,
+</ins>
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+    ...
+  }</span>
+...
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+...
+}
+</pre>
+</div>
+<p>
+In
+the
+example
+above,
+even
+though
+the
+value
+<code>
+http://manu.sporny.org/
+</code>
+is
+expressed
+as
+a
+JSON
+<a class="tref internalDFN" title="string" href="#dfn-string">
+string
+</a>,
+the
+type
+<a class="tref internalDFN" title="coercion" href="#dfn-coercion">
+coercion
+</a>
+rules
+will
+transform
+the
+value
+into
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+when
+<del class="diff-old">processed
+by
+a
+</del>
+<ins class="diff-chg">generating
+the
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
+JSON-LD
+<del class="diff-old">Processor.
+</del>
+<ins class="diff-chg">graph
+</ins></a>.<ins class="diff-chg">
+See
+</ins><a class="sectionRef sec-ref" href="#type-coercion"><ins class="diff-chg">
+section
+6.5
+Type
+Coercion
+</ins></a><ins class="diff-chg">
+for
+more
+details
+about
+this
+feature.
+</ins>
+</p>
+<p>
+<ins class="diff-chg">In
+summary,
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+can
+be
+expressed
+in
+a
+variety
+of
+different
+ways
+in
+JSON-LD:
+</ins></p><ol><li><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+keys
+that
+have
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+mapping
+in
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+expand
+to
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+(only
+applies
+outside
+of
+the
+</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
+context
+definition
+</ins></a><ins class="diff-chg">
+).
+</ins></li><li><ins class="diff-chg">
+An
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+is
+generated
+for
+the
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+value
+specified
+using
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@type
+</ins></code>.</li><li><ins class="diff-chg">
+An
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+is
+generated
+for
+the
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+value
+of
+any
+key
+for
+which
+there
+are
+</ins><a class="tref internalDFN" title="coercion" href="#dfn-coercion"><ins class="diff-chg">
+coercion
+</ins></a><ins class="diff-chg">
+rules
+that
+contain
+a
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+key
+that
+is
+set
+to
+a
+value
+of
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code>.</li></ol></section><section class="informative" id="node-identifiers">
+<h3>
+<span class="secno">
+<del class="diff-old">3.3
+</del>
+<ins class="diff-chg">5.3
+</ins>
+</span>
+<del class="diff-old">Identifying
+the
+Subject
+</del>
+<ins class="diff-chg">Node
+Identifiers
+</ins>
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+To
+be
+able
+to
+externally
+reference
+<a class="tref internalDFN" title="node" href="#dfn-node">
+nodes
+</a>
+in
+a
+<del class="diff-old">graph,
+</del>
+<a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">
+<ins class="diff-chg">graph
+</ins></a>,
+it
+is
+important
+that
+<del class="diff-old">each
+node
+has
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">nodes
+</ins></a><ins class="diff-chg">
+have
+</ins>
+an
+<del class="diff-old">unambiguous
+</del>
+identifier.
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<del class="diff-old">IRI
+</del>
+<ins class="diff-chg">IRIs
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+are
+a
+fundamental
+concept
+of
+<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
+Linked
+Data
+</a>,
+<del class="diff-old">and
+nodes
+should
+have
+a
+de-referencable
+identifier
+used
+to
+name
+and
+locate
+them.
+For
+</del>
+<ins class="diff-chg">for
+</ins><a class="tref internalDFN" title="node" href="#dfn-node">
+nodes
+</a>
+to
+be
+truly
+linked,
+<del class="diff-old">de-referencing
+</del>
+<ins class="diff-chg">dereferencing
+</ins>
+the
+identifier
+should
+result
+in
+a
+representation
+of
+that
+<a class="tref internalDFN" title="node" href="#dfn-node">
+node
+<del class="diff-old">(for
+example,
+using
+a
+URL
+to
+retrieve
+a
+web
+page).
+Associating
+an
+IRI
+with
+a
+node
+tells
+</del>
+</a>.
+<ins class="diff-chg">This
+may
+allow
+</ins>
+an
+application
+<del class="diff-old">that
+the
+returned
+document
+contains
+a
+description
+of
+the
+node
+requested.
+JSON-LD
+documents
+may
+also
+contain
+descriptions
+of
+other
+nodes,
+so
+it
+is
+necessary
+to
+be
+able
+</del>
+to
+<del class="diff-old">uniquely
+identify
+each
+</del>
+<ins class="diff-chg">retrieve
+further
+information
+about
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node">
+node
+<del class="diff-old">which
+may
+be
+externally
+referenced.
+</del>
+</a>.
+</p>
+<p>
+<del class="diff-old">A
+subject
+of
+</del>
+<ins class="diff-chg">In
+JSON-LD,
+</ins>
+a
+<del class="diff-old">JSON
+object
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">node
+</ins>
+</a>
+is
+<del class="diff-old">a
+node
+</del>
+identified
+using
+the
+<code>
+@id
+</code>
+<del class="diff-old">key.
+The
+subject
+is
+the
+first
+piece
+of
+information
+needed
+by
+the
+JSON-LD
+processor
+in
+order
+to
+create
+the
+(subject,
+property,
+object)
+tuple,
+also
+known
+as
+a
+triple.
+</del>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-chg">keyword
+</ins></a>:
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 11</span>: Identifying a node</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    ...
+<del class="diff-old">    &quot;homepage&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+    ...
+</del>
+<ins class="diff-chg">    &quot;name&quot;: &quot;http://schema.org/name&quot;
+</ins>
+  },
+<del class="diff-old">  &quot;&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+...
+</del>
+  <span class="diff">&quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;</span>,
+<ins class="diff-chg">  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  ...
+</ins>
+}
+</pre>
+</div>
+<p>
+The
+example
+above
+<del class="diff-old">would
+set
+the
+subject
+to
+the
+IRI
+http://example.org/people#joebob
+.
+A
+JSON
+object
+used
+to
+define
+property
+values
+is
+called
+</del>
+<ins class="diff-chg">contains
+</ins>
+a
+<del class="diff-old">subject
+definition
+.
+Subject
+definitions
+do
+not
+require
+an
+@id
+.
+A
+subject
+definition
+that
+does
+not
+contain
+an
+@id
+property
+defines
+properties
+of
+an
+unlabeled
+</del>
+<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
+node
+<del class="diff-old">.
+Note
+To
+ensure
+the
+best
+possible
+performance,
+when
+possible,
+it
+is
+a
+best
+practice
+to
+put
+JSON-LD
+keyword
+s,
+such
+as
+@id
+and
+@context
+before
+other
+key-value
+pairs
+in
+a
+JSON
+object
+.
+However,
+keys
+in
+a
+JSON
+</del>
+object
+</a>
+<del class="diff-old">are
+not
+ordered,
+so
+processors
+must
+not
+depend
+on
+key
+ordering.
+If
+keywords
+are
+not
+listed
+first,
+processors
+have
+to
+save
+each
+key-value
+pair
+until
+at
+least
+the
+@context
+and
+</del>
+<ins class="diff-chg">identified
+by
+</ins>
+the
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-new">IRI
+</ins></abbr>
+<code>
+<del class="diff-old">@id
+are
+processed.
+Not
+specifying
+those
+keywords
+first
+creates
+a
+memory
+and
+complexity
+burden
+for
+low-memory
+footprint
+processors,
+forcing
+them
+to
+use
+more
+memory
+and
+computing
+cycles
+than
+necessary.
+</del>
+<ins class="diff-chg">http://me.markus-lanthaler.com/
+</ins></code>.
+</p>
+</section>
+<section class="informative" id="specifying-the-type">
+<h3>
+<span class="secno">
+<del class="diff-old">3.4
+</del>
+<ins class="diff-chg">5.4
+</ins>
+</span>
+Specifying
+the
+Type
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+The
+type
+of
+a
+particular
+<del class="diff-old">subject
+</del>
+<ins class="diff-chg">node
+</ins>
+can
+be
+specified
+using
+the
+<code>
+@type
+</code>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keyword
+</a>.
+<del class="diff-old">Specifying
+the
+type
+in
+this
+way
+will
+generate
+a
+triple
+of
+the
+form
+(subject,
+type,
+type-
+IRI
+).
+To
+be
+considered
+</del>
+<ins class="diff-chg">In
+</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
+Linked
+Data
+</a>,
+types
+<del class="diff-old">must
+be
+</del>
+<ins class="diff-chg">are
+</ins>
+uniquely
+identified
+<del class="diff-old">by
+</del>
+<ins class="diff-chg">with
+</ins>
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 12</span>: Specifying the type for a node</div><pre class="example">{
+...
+<del class="diff-old">  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
+  &quot;&quot;,
+</del>
+<ins class="diff-chg">  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+  &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">http://schema.org/Restaurant</span>&quot;,
+</ins>
+...
+}
+</pre>
+</div>
+<p>
+<ins class="diff-chg">A
+node
+can
+be
+assigned
+more
+than
+one
+type
+by
+using
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>:</p><div class="example"><div class="example-title"><span>Example 13</span>: Specifying multiple types for a node</div><pre class="example">{<ins class="diff-chg">
+...
+  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+  &quot;<span class="diff">@type</span>&quot;: <span class="diff">[ &quot;http://schema.org/Restaurant&quot;, &quot;http://schema.org/Brewery&quot; ],</span>
+...
+}
+</ins></pre>
+<del class="diff-old">3.5
+String
+Internationalization
+</del>
+</div>
+<p>
+<del class="diff-old">At
+times,
+it
+is
+important
+to
+annotate
+a
+string
+with
+its
+language.
+In
+JSON-LD
+this
+is
+possible
+in
+a
+variety
+</del>
+<ins class="diff-chg">The
+value
+</ins>
+of
+<del class="diff-old">ways.
+Firstly,
+it
+is
+possible
+to
+define
+a
+default
+language
+for
+</del>
+a
+<del class="diff-old">JSON-LD
+document
+by
+setting
+the
+</del>
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@type
+</ins>
+</code>
+key
+<del class="diff-old">in
+the
+@context
+or
+in
+</del>
+<ins class="diff-chg">may
+also
+be
+</ins>
+a
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+<del class="diff-old">definition:
+</del>
+<ins class="diff-chg">defined
+in
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>:
+</p>
+<del class="diff-old">{
+  &quot;@context&quot;:
+  {
+</del>
+<div class="example"><div class="example-title"><span>Example 14</span>: Using a term to specify the type</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;: {
+</ins>
+    ...
+<del class="diff-old">    &quot;@language&quot;: &quot;ja&quot;
+  },
+  &quot;name&quot;: ,
+  &quot;occupation&quot;:
+</del>
+    <span class="diff">&quot;Restaurant&quot;: &quot;http://schema.org/Restaurant&quot;, </span>
+    <span class="diff">&quot;Brewery&quot;: &quot;http://schema.org/Brewery&quot;</span>
+<ins class="diff-chg">  }
+  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+</ins>  <span class="diff">&quot;@type&quot;: [ &quot;Restaurant&quot;, &quot;Brewery&quot; ]</span>,<ins class="diff-chg">
+  ...
+</ins>
+}
+</pre>
+</div>
+</section>
+</section>
+<section class="normative" id="advanced-concepts">
+<h2>
+<span class="secno">
+<ins class="diff-new">6.
+</ins></span><ins class="diff-new">
+Advanced
+Concepts
+</ins></h2>
+<p>
+<del class="diff-old">The
+example
+</del>
+<ins class="diff-chg">JSON-LD
+has
+a
+number
+of
+features
+that
+provide
+functionality
+</ins>
+above
+<del class="diff-old">would
+associate
+the
+ja
+language
+code
+with
+</del>
+<ins class="diff-chg">and
+beyond
+</ins>
+the
+<del class="diff-old">two
+string
+s
+</del>
+<ins class="diff-chg">core
+functionality
+described
+above.
+The
+following
+section
+describes
+this
+advanced
+functionality
+in
+more
+detail.
+</ins></p><section class="informative" id="base-iri"><h3><span class="secno"><ins class="diff-chg">
+6.1
+</ins></span><ins class="diff-chg">
+Base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></h3><p>
+<em>
+<del class="diff-old">花澄
+</del>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins>
+</em>
+</p>
+<div class="issue atrisk">
+<div class="issue-title">
+<span>
+<ins class="diff-new">Feature
+at
+Risk
+1
+</ins></span>:<ins class="diff-new">
+@base
+keyword
+</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
+Note:
+This
+feature
+is
+</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
+&quot;at
+risk&quot;
+</ins></a>
+and
+<del class="diff-old">科学者
+.
+Languages
+must
+</del>
+<ins class="diff-chg">may
+</ins>
+be
+<del class="diff-old">well-formed
+language
+tags
+according
+</del>
+<ins class="diff-chg">removed
+from
+this
+specification
+based
+on
+feedback.
+Please
+send
+feedback
+</ins>
+to
+<del class="diff-old">[
+BCP47
+</del>
+<a href="mailto:public-rdf-comments@w3.org">
+<ins class="diff-chg">public-rdf-comments@w3.org
+</ins></a>.<ins class="diff-chg">
+For
+the
+current
+status
+see
+</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
+features
+&quot;at
+risk&quot;
+in
+JSON-LD
+1.0
+</ins>
+</a>
+<del class="diff-old">].
+</del>
+</p>
+<p>
+<del class="diff-old">It
+is
+possible
+to
+override
+</del>
+<ins class="diff-chg">Support
+for
+</ins>
+the
+<del class="diff-old">default
+language
+by
+using
+</del>
+<code>
+<ins class="diff-chg">@base
+</ins></code><ins class="diff-chg">
+keyword
+might
+be
+removed
+from
+JSON-LD
+1.0
+if
+implementation
+experience
+reveals
+that
+</ins>
+the
+<del class="diff-old">expanded
+form
+of
+</del>
+<ins class="diff-chg">fact
+that
+</ins>
+a
+<del class="diff-old">value:
+{
+  &quot;@context&quot;: {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+  },
+  &quot;name&quot;: &quot;花澄&quot;,
+  &quot;occupation&quot;: {
+    &quot;@value&quot;: &quot;Scientist&quot;,
+    &quot;@language&quot;: &quot;en&quot;
+  }
+}
+</del>
+<ins class="diff-chg">document
+may
+have
+multiple
+base
+IRIs
+is
+confusing
+for
+developers.
+</ins>
+It
+is
+also
+<del class="diff-old">possible
+to
+override
+the
+default
+language
+or
+specify
+a
+plain
+value
+by
+omitting
+the
+</del>
+<ins class="diff-chg">being
+discussed
+whether
+relative
+IRIs
+are
+allowed
+as
+values
+of
+</ins>
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@base
+</ins>
+</code>
+<del class="diff-old">tag
+</del>
+or
+<del class="diff-old">setting
+it
+</del>
+<ins class="diff-chg">whether
+the
+empty
+string
+should
+be
+used
+</ins>
+to
+<del class="diff-old">null
+</del>
+<ins class="diff-chg">explicitly
+specify
+that
+there
+isn't
+a
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>,<ins class="diff-chg">
+which
+could
+be
+used
+to
+ensure
+that
+relative
+IRIs
+remain
+relative
+</ins>
+when
+<del class="diff-old">expressing
+the
+expanded
+value:
+</del>
+<ins class="diff-chg">expanding.
+</ins>
+</p>
+<del class="diff-old">{
+  &quot;@context&quot;: {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+  },
+  &quot;name&quot;: {
+    &quot;@value&quot;: &quot;Frank&quot;
+  },
+  &quot;occupation&quot;:  {
+    &quot;@value&quot;: &quot;Ninja&quot;,
+    &quot;@language&quot;: &quot;en&quot;
+  },
+  &quot;speciality&quot;: &quot;手裏剣&quot;
+}
+</del>
+</div>
+<del class="diff-old">Note
+</del>
+</div>
+<p>
+<ins class="diff-new">JSON-LD
+allows
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>
+<del class="diff-old">Please
+note
+that
+language
+associations
+must
+only
+be
+applied
+to
+plain
+literal
+string
+s.
+That
+is,
+typed
+value
+</del>
+</a>
+s
+<del class="diff-old">or
+values
+that
+are
+subject
+</del>
+to
+<del class="diff-old">type
+coercion
+won't
+</del>
+be
+<del class="diff-old">language
+tagged.
+To
+clear
+</del>
+<ins class="diff-chg">specified
+in
+a
+relative
+form
+which
+is
+resolved
+against
+</ins>
+the
+<del class="diff-old">default
+language
+for
+</del>
+<ins class="diff-chg">document
+base
+according
+</ins><cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1"><ins class="diff-chg">
+section
+5.1
+Establishing
+</ins>
+a
+<del class="diff-old">subtree,
+@language
+can
+</del>
+<ins class="diff-chg">Base
+URI
+</ins></a></cite><ins class="diff-chg">
+of
+[
+</ins><cite><a class="bibref" href="#bib-RFC3986"><ins class="diff-chg">
+RFC3986
+</ins></a></cite><ins class="diff-chg">
+].
+The
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr><ins class="diff-chg">
+may
+</ins>
+be
+<ins class="diff-new">explicitly
+</ins>
+set
+<del class="diff-old">to
+null
+in
+</del>
+<ins class="diff-chg">with
+</ins>
+a
+<del class="diff-old">local
+</del>
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+<del class="diff-old">as
+follows:
+</del>
+<ins class="diff-chg">using
+the
+</ins><code><ins class="diff-chg">
+@base
+</ins></code><ins class="diff-chg">
+keyword.
+</ins>
+</p>
+<del class="diff-old">{
+</del>
+<p>
+<ins class="diff-chg">For
+example,
+if
+a
+JSON-LD
+document
+was
+retrieved
+from
+</ins><code><ins class="diff-chg">
+http://example.com/document.jsonld
+</ins></code>,<ins class="diff-chg">
+relative
+IRIs
+would
+resolve
+against
+that
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>:</p>  <div class="example"><div class="example-title"><span>Example 15</span>: Use a relative IRI as node identifier</div><pre class="example">{
+  &quot;@context&quot;: {
+<del class="diff-old">    ...
+    &quot;@language&quot;: &quot;ja&quot;
+</del>
+<ins class="diff-chg">    &quot;label&quot;: &quot;http://www.w3.org/2000/01/rdf-schema#label&quot;
+</ins>
+  },
+<del class="diff-old">  &quot;name&quot;: &quot;花澄&quot;,
+  &quot;details&quot;: {
+    &quot;@context&quot;: {
+      &quot;@language&quot;: null
+    },
+    &quot;occupation&quot;: &quot;Ninja&quot;
+  }
+</del>
+  <span class="diff">&quot;@id&quot;: &quot;&quot;</span>,
+<ins class="diff-chg">  &quot;label&quot;: &quot;Just a simple document&quot;
+</ins>
+}
+</pre>
+</div>
+<del class="diff-old">Note
+JSON-LD
+allows
+one
+to
+associate
+language
+information
+with
+term
+s.
+See
+Expanded
+Term
+Definition
+for
+more
+details.
+3.6
+JSON-LD
+Syntax
+</del>
+<p>
+<del class="diff-old">A
+JSON-LD
+</del>
+<ins class="diff-chg">This
+document
+uses
+an
+empty
+</ins><code><ins class="diff-chg">
+@id
+</ins></code>,<ins class="diff-chg">
+which
+resolves
+to
+the
+document
+base.
+However,
+if
+the
+</ins>
+document
+is
+<del class="diff-old">first,
+and
+foremost,
+</del>
+<ins class="diff-chg">moved
+to
+</ins>
+a
+<del class="diff-old">JSON
+document
+(as
+defined
+in
+[
+</del>
+<ins class="diff-chg">different
+location,
+the
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+<del class="diff-old">RFC5988
+</del>
+</a>
+<ins class="diff-new">would
+change.
+To
+prevent
+this
+without
+having
+to
+use
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>
+<del class="diff-old">]),
+and
+any
+syntactically
+correct
+JSON
+document
+must
+be
+processed
+by
+</del>
+</a>,
+a
+<del class="diff-old">conforming
+JSON-LD
+processor.
+However,
+JSON-LD
+describes
+</del>
+<a class="tref internalDFN" title="context" href="#dfn-context">
+<ins class="diff-chg">context
+</ins></a><ins class="diff-chg">
+may
+define
+</ins>
+a
+<del class="diff-old">specific
+syntax
+</del>
+<code>
+<ins class="diff-chg">@base
+</ins></code><ins class="diff-chg">
+mapping,
+</ins>
+to
+<del class="diff-old">use
+for
+expressing
+Linked
+Data.
+This
+includes
+</del>
+<ins class="diff-chg">overwrite
+</ins>
+the
+<del class="diff-old">use
+of
+specific
+keywords,
+as
+identified
+in
+Syntax
+Tokens
+and
+Keywords
+</del>
+<ins class="diff-chg">base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+for
+<del class="diff-old">expressing
+subject
+definitions
+,
+values,
+and
+</del>
+the
+<del class="diff-old">context
+.
+See
+Appendix
+A
+for
+authoring
+guidelines
+and
+a
+BNF
+description
+of
+JSON-LD.
+</del>
+<ins class="diff-chg">document.
+</ins>
+</p>
+  <div class="example"><div class="example-title"><span>Example 16</span>: Setting the document base in a document</div><pre class="example">{
+<ins class="diff-new">  &quot;@context&quot;: {
+</ins>    <span class="diff">&quot;@base&quot;: &quot;http://example.com/document.jsonld&quot;</span><ins class="diff-new">
+  },
+  &quot;@id&quot;: &quot;&quot;,
+  &quot;label&quot;: &quot;Just a simple document&quot;
+}
+</ins></pre>
+</div>
+</section>
+<section class="informative" id="default-vocabulary">
+<h3>
+<span class="secno">
+<del class="diff-old">4.
+</del>
+<ins class="diff-chg">6.2
+</ins>
+</span>
+<del class="diff-old">Advanced
+Concepts
+</del>
+<ins class="diff-chg">Default
+Vocabulary
+</ins></h3><p>
+<em>
+This
+section
+is
+<del class="diff-old">normative.
+</del>
+<ins class="diff-chg">non-normative.
+</ins>
+</em>
+<del class="diff-old">JSON-LD
+has
+a
+number
+of
+features
+that
+provide
+functionality
+above
+and
+beyond
+the
+core
+functionality
+described
+above.
+The
+following
+section
+describes
+this
+advanced
+functionality
+in
+more
+detail.
+</del>
+<del class="diff-old">4.1
+Compact
+IRIs
+</del>
+</p>
+<p>
+<del class="diff-old">Term
+s
+in
+Linked
+Data
+documents
+may
+draw
+from
+a
+number
+of
+different
+vocabularies
+.
+</del>
+At
+times,
+<del class="diff-old">declaring
+every
+single
+term
+that
+a
+document
+uses
+can
+require
+</del>
+<ins class="diff-chg">all
+properties
+and
+types
+may
+come
+from
+</ins>
+the
+<del class="diff-old">developer
+</del>
+<ins class="diff-chg">same
+vocabulary.
+JSON-LD's
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code><ins class="diff-chg">
+keyword
+allows
+an
+author
+</ins>
+to
+<del class="diff-old">declare
+tens,
+if
+</del>
+<ins class="diff-chg">set
+a
+common
+prefix
+to
+be
+used
+for
+all
+properties
+and
+types
+that
+do
+</ins>
+not
+<del class="diff-old">hundreds
+of
+potential
+vocabulary
+</del>
+<ins class="diff-chg">match
+a
+</ins>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+<del class="diff-old">s
+that
+</del>
+<ins class="diff-chg">and
+</ins>
+are
+<del class="diff-old">used
+across
+</del>
+<ins class="diff-chg">neither
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+nor
+</ins>
+an
+<del class="diff-old">application.
+This
+is
+</del>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+(i.e.,
+they
+do
+not
+contain
+</ins>
+a
+<del class="diff-old">concern
+for
+at
+least
+two
+reasons:
+the
+first
+</del>
+<ins class="diff-chg">colon).
+</ins></p>  <div class="example"><div class="example-title"><span>Example 17</span>: Using a common vocabulary prefix</div><pre class="example">{<ins class="diff-chg">
+  &quot;@context&quot;: {
+</ins>    <span class="diff">&quot;@vocab&quot;: &quot;http://schema.org/&quot;</span><ins class="diff-chg">
+  }
+  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+  &quot;@type&quot;: <span class="diff">&quot;Restaurant&quot;</span>,
+</ins>  <span class="diff">&quot;name&quot;</span>: &quot;Brew Eats&quot;<ins class="diff-chg">
+  ...
+}
+</ins></pre></div><p><ins class="diff-chg">
+If
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code>
+is
+<ins class="diff-new">used
+but
+certain
+keys
+in
+an
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+object
+</ins></a><ins class="diff-new">
+should
+not
+be
+expanded
+using
+</ins>
+the
+<del class="diff-old">cognitive
+load
+on
+the
+developer
+of
+remembering
+all
+of
+the
+</del>
+<ins class="diff-chg">vocabulary
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+a
+</ins>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+<del class="diff-old">s,
+and
+the
+second
+is
+the
+serialized
+size
+of
+</del>
+<ins class="diff-chg">can
+be
+explicitly
+set
+to
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+in
+</ins>
+the
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+<del class="diff-old">if
+it
+is
+specified
+inline.
+In
+order
+to
+address
+these
+issues,
+</del>
+</a>.
+<ins class="diff-chg">For
+instance,
+in
+</ins>
+the
+<del class="diff-old">concept
+of
+a
+compact
+</del>
+<ins class="diff-chg">example
+below
+the
+</ins><code><ins class="diff-chg">
+databaseId
+</ins></code><ins class="diff-chg">
+member
+would
+not
+expand
+to
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+</p>
+  <div class="example"><div class="example-title"><span>Example 18</span>: Using the null keyword to ignore data</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;:
+  {
+     &quot;@vocab&quot;: &quot;http://schema.org/&quot;,
+</ins>     <span class="diff">&quot;databaseId&quot;: null</span><ins class="diff-chg">
+  },
+    &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+    &quot;@type&quot;: &quot;Restaurant&quot;,
+    &quot;name&quot;: &quot;Brew Eats&quot;,
+</ins>    <span class="diff">&quot;databaseId&quot;</span>: &quot;23987520&quot;<ins class="diff-chg">
+}
+</ins></pre></div></section><section class="informative" id="compact-iris"><h3><span class="secno"><ins class="diff-chg">
+6.3
+</ins></span><ins class="diff-chg">
+Compact
+IRIs
+</ins></h3><p><em><ins class="diff-chg">
+This
+section
+</ins>
+is
+<del class="diff-old">introduced.
+</del>
+<ins class="diff-chg">non-normative.
+</ins></em>
+</p>
+<p>
+A
+<dfn title="compact-iri" id="dfn-compact-iri">
+compact
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</dfn>
+is
+a
+way
+of
+expressing
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+using
+a
+<em>
+prefix
+</em>
+and
+<em>
+suffix
+</em>
+separated
+by
+a
+colon
+(
+<code>:
+</code>
+<del class="diff-old">)
+which
+is
+similar
+to
+the
+CURIE
+Syntax
+in
+[
+RDFA-CORE
+].
+</del>
+<ins class="diff-chg">).
+</ins>
+The
+<dfn title="prefix" id="dfn-prefix">
+prefix
+</dfn>
+is
+a
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+taken
+from
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+active
+context
+</a>
+and
+is
+a
+short
+string
+identifying
+a
+particular
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+in
+a
+JSON-LD
+document.
+For
+example,
+the
+prefix
+<code>
+foaf
+</code>
+may
+be
+used
+as
+a
+short
+hand
+for
+the
+Friend-of-a-Friend
+vocabulary,
+which
+is
+identified
+using
+the
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<code>
+http://xmlns.com/foaf/0.1/
+</code>.
+A
+developer
+may
+append
+any
+of
+the
+FOAF
+vocabulary
+terms
+to
+the
+end
+of
+the
+prefix
+to
+specify
+a
+short-hand
+version
+of
+the
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+for
+the
+vocabulary
+term.
+For
+example,
+<code>
+foaf:name
+</code>
+would
+be
+expanded
+<del class="diff-old">out
+</del>
+to
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<code>
+http://xmlns.com/foaf/0.1/name
+</code>.
+<del class="diff-old">Instead
+of
+having
+</del>
+</p>
+  <div class="example"><div class="example-title"><span>Example 19</span>: Prefix expansion</div><pre class="example">{
+<ins class="diff-chg">  &quot;<span class="diff">@context</span>&quot;:
+  {
+    &quot;<span class="diff">foaf</span>&quot;: &quot;<span class="diff">http://xmlns.com/foaf/0.1/</span>&quot;
+...
+  },
+  &quot;@type&quot;: &quot;<span class="diff">foaf:Person</span>&quot;
+  &quot;<span class="diff">foaf:name</span>&quot;: &quot;Dave Longley&quot;,
+...
+}
+</ins></pre></div><p><ins class="diff-chg">
+In
+the
+example
+above,
+</ins><code><ins class="diff-chg">
+foaf:name
+</ins></code><ins class="diff-chg">
+expands
+</ins>
+to
+<del class="diff-old">remember
+and
+type
+out
+</del>
+the
+<del class="diff-old">entire
+</del>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+<del class="diff-old">,
+the
+developer
+can
+instead
+use
+the
+prefix
+in
+their
+JSON-LD
+markup.
+</del>
+</abbr>
+</a>
+<code>
+<ins class="diff-chg">http://xmlns.com/foaf/0.1/name
+</ins></code><ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+foaf:Person
+</ins></code><ins class="diff-chg">
+expands
+to
+</ins><code><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/Person
+</ins></code>.
+</p>
+<p>
+<del class="diff-old">Terms
+</del>
+<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
+<ins class="diff-chg">Prefixes
+</ins></a>
+are
+<del class="diff-old">interpreted
+as
+</del>
+<ins class="diff-chg">expanded
+when
+the
+form
+of
+the
+value
+is
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+compact
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">s
+if
+they
+contain
+at
+least
+one
+colon
+and
+the
+first
+colon
+is
+not
+followed
+by
+two
+slashes
+(
+//
+,
+</del>
+<ins class="diff-chg">represented
+</ins>
+as
+<del class="diff-old">in
+</del>
+<ins class="diff-chg">a
+</ins>
+<code>
+<del class="diff-old">http://example.com
+</del>
+<ins class="diff-chg">prefix:suffix
+</ins>
+</code>
+<del class="diff-old">).
+To
+generate
+the
+full
+IRI
+,
+</del>
+<ins class="diff-chg">combination,
+</ins>
+the
+<del class="diff-old">value
+is
+first
+split
+into
+a
+</del>
+<em>
+prefix
+</em>
+<ins class="diff-new">matches
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+defined
+within
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,
+and
+<ins class="diff-new">the
+</ins>
+<em>
+suffix
+</em>
+<del class="diff-old">at
+the
+first
+occurrence
+of
+a
+colon
+</del>
+<ins class="diff-chg">does
+not
+begin
+with
+two
+slashes
+</ins>
+(
+<del class="diff-old">:
+</del>
+<code>
+<ins class="diff-chg">//
+</ins>
+</code>
+).
+<del class="diff-old">If
+the
+active
+context
+contains
+a
+term
+mapping
+for
+prefix
+,
+an
+</del>
+<ins class="diff-chg">The
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+is
+<del class="diff-old">generated
+</del>
+<ins class="diff-chg">expanded
+</ins>
+by
+<del class="diff-old">prepending
+</del>
+<ins class="diff-chg">concatenating
+</ins>
+the
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-new">IRI
+</ins></abbr></a>
+mapped
+<ins class="diff-new">to
+the
+</ins>
+<em>
+prefix
+</em>
+to
+the
+(possibly
+empty)
+<em>
+suffix
+<del class="diff-old">using
+textual
+concatenation.
+</del>
+</em>.
+If
+<del class="diff-old">no
+</del>
+<ins class="diff-chg">the
+</ins><em>
+prefix
+<del class="diff-old">mapping
+</del>
+</em>
+is
+<del class="diff-old">defined,
+</del>
+<ins class="diff-chg">not
+defined
+in
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<ins class="diff-chg">
+or
+the
+suffix
+begins
+with
+two
+slashes
+(such
+as
+in
+</ins><code><ins class="diff-chg">
+http://example.com
+</ins></code><ins class="diff-chg">
+),
+</ins>
+the
+value
+is
+interpreted
+as
+<del class="diff-old">an
+</del>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">.
+</del>
+</a>
+<ins class="diff-chg">instead.
+</ins>
+If
+the
+prefix
+is
+an
+underscore
+(
+<code>
+_
+</code>
+),
+the
+<del class="diff-old">IRI
+remains
+unchanged.
+This
+effectively
+means
+that
+every
+term
+containing
+a
+colon
+will
+be
+</del>
+<ins class="diff-chg">value
+is
+</ins>
+interpreted
+<del class="diff-old">by
+a
+JSON-LD
+processor
+</del>
+as
+<del class="diff-old">an
+IRI
+.
+Consider
+the
+following
+example:
+  {
+  &quot;@context&quot;:
+  {
+
+
+  },
+  &quot;@id&quot;: &quot;http://example.org/library&quot;,
+  &quot;@type&quot;: ,
+  :
+  {
+    &quot;@id&quot;: &quot;http://example.org/library/the-republic&quot;,
+    &quot;@type&quot;: ,
+    : &quot;Plato&quot;,
+    : &quot;The Republic&quot;,
+    :
+    {
+      &quot;@id&quot;: &quot;http://example.org/library/the-republic#introduction&quot;,
+      &quot;@type&quot;: ,
+      : &quot;An introductory chapter on The Republic.&quot;,
+      : &quot;The Introduction&quot;
+    }
+  }
+}
+In
+this
+example,
+two
+different
+vocabularies
+</del>
+<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
+<ins class="diff-chg">blank
+node
+identifier
+</ins>
+</a>
+<del class="diff-old">are
+referred
+to
+using
+prefixes.
+Those
+prefixes
+are
+then
+used
+as
+type
+and
+property
+values
+using
+the
+compact
+IRI
+prefix:suffix
+notation.
+</del>
+<ins class="diff-chg">instead.
+</ins>
+</p>
+<p>
+It's
+also
+possible
+to
+use
+compact
+IRIs
+within
+the
+context
+as
+shown
+in
+the
+following
+example:
+</p>
+<del class="diff-old">  {
+</del>
+  <div class="example"><div class="example-title"><span>Example 20</span>: Using vocabularies</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+<del class="diff-old">    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
+</del>
+    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
+    <span class="diff">&quot;foaf:homepage&quot;</span>: { &quot;@type&quot;: &quot;@id&quot; },
+    &quot;picture&quot;: { &quot;@id&quot;: <span class="diff">&quot;foaf:depiction&quot;</span>, &quot;@type&quot;: &quot;@id&quot; }
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;foaf:homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
+  &quot;picture&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
+}
+</pre>
+</div>
+</section>
+<section class="informative" id="typed-values">
+<h3>
+<span class="secno">
+<del class="diff-old">4.2
+</del>
+<ins class="diff-chg">6.4
+</ins>
+</span>
+Typed
+Values
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+A
+value
+with
+an
+associated
+type,
+also
+known
+as
+a
+<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
+typed
+value
+<del class="diff-old">,
+</del>
+</a>,
+is
+indicated
+by
+associating
+a
+value
+with
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+which
+indicates
+the
+value's
+type.
+Typed
+values
+may
+be
+expressed
+in
+JSON-LD
+in
+<del class="diff-old">two
+</del>
+<ins class="diff-chg">three
+</ins>
+ways:
+</p>
+<ol>
+<li>
+By
+utilizing
+the
+<code>
+@type
+</code>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keyword
+</a>
+when
+defining
+a
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+within
+a
+<code>
+@context
+</code>
+section.
+</li>
+<li>
+By
+utilizing
+<del class="diff-old">the
+expanded
+form
+for
+specifying
+objects.
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins></a>.</li><li><ins class="diff-chg">
+By
+using
+a
+native
+JSON
+type
+such
+as
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+number
+</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,<ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>.
+</li>
+</ol>
+<p>
+The
+first
+example
+uses
+the
+<code>
+@type
+</code>
+keyword
+to
+associate
+a
+type
+with
+a
+particular
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+in
+the
+<code>
+@context
+</code>:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 21</span>: Expanded term definition with type coercion</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+  {
+    &quot;modified&quot;:
+    {
+      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;,
+      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
+    }
+  },</span>
+...
+<ins class="diff-new">  &quot;@id&quot;: &quot;http://example.com/docs/1&quot;,
+</ins>
+  &quot;modified&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
+...
+}
+</pre>
+</div>
+<p>
+The
+<em>
+modified
+</em>
+key's
+value
+above
+is
+automatically
+type
+coerced
+to
+a
+<del class="diff-old">datetime
+</del>
+<em>
+<ins class="diff-chg">dateTime
+</ins></em>
+value
+because
+of
+the
+information
+specified
+in
+the
+<code>
+@context
+</code>.
+<ins class="diff-new">A
+JSON-LD
+processor
+will
+interpret
+the
+example
+above
+as
+follows:
+</ins>
+</p>
+<table class="example">
+<thead>
+<tr>
+<th>
+<ins class="diff-new">Subject
+</ins></th><th><ins class="diff-new">
+Property
+</ins></th><th><ins class="diff-new">
+Value
+</ins></th><th><ins class="diff-new">
+Value
+Type
+</ins></th></tr></thead><tbody><tr><td><ins class="diff-new">
+http://example.com/docs/1
+</ins></td><td><ins class="diff-new">
+http://purl.org/dc/terms/modified
+</ins></td><td><ins class="diff-new">
+2010-05-29T14:17:39+02:00
+</ins></td><td><ins class="diff-new">
+http://www.w3.org/2001/XMLSchema#dateTime
+</ins></td></tr></tbody></table>
+<p>
+The
+second
+example
+uses
+the
+expanded
+form
+of
+setting
+the
+type
+information
+in
+the
+body
+of
+a
+JSON-LD
+document:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 22</span>: Expanded value with type</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;modified&quot;:
+    {
+      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;
+    }
+  },
+...
+  &quot;modified&quot;:
+  <span class="diff">{
+    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
+    &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
+  }</span>
+...
+}
+</pre>
+</div>
+<p>
+Both
+examples
+above
+would
+generate
+<del class="diff-old">an
+object
+with
+</del>
+the
+value
+<del class="diff-old">of
+</del>
+<code>
+2010-05-29T14:17:39+02:00
+</code>
+<del class="diff-old">and
+</del>
+<ins class="diff-chg">with
+</ins>
+the
+type
+<del class="diff-old">of
+</del>
+<code>
+http://www.w3.org/2001/XMLSchema#dateTime
+</code>.
+Note
+that
+it
+is
+also
+possible
+to
+use
+a
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+or
+a
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+compact
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+to
+express
+the
+value
+of
+a
+type.
+</p>
+<del class="diff-old">Note
+</del>
+<p>
+The
+<code>
+@type
+</code>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keyword
+</a>
+is
+also
+used
+to
+associate
+a
+type
+with
+a
+<del class="diff-old">subject
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">node
+</ins>
+</a>.
+<del class="diff-old">Although
+the
+same
+keyword
+is
+used
+in
+both
+places,
+the
+</del>
+<ins class="diff-chg">The
+</ins>
+concept
+of
+<del class="diff-old">an
+object
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="node-type" href="#dfn-node-type"><ins class="diff-chg">
+node
+</ins>
+type
+</a>
+and
+a
+<a class="tref internalDFN" title="value-type" href="#dfn-value-type">
+value
+type
+</a>
+are
+different.
+<del class="diff-old">This
+</del>
+</p>
+<p>
+<ins class="diff-chg">Generally
+speaking,
+a
+</ins><dfn title="node-type" id="dfn-node-type"><ins class="diff-chg">
+node
+type
+</ins></dfn><ins class="diff-chg">
+specifies
+the
+type
+of
+thing
+that
+</ins>
+is
+<del class="diff-old">similar
+to
+object-oriented
+programming
+languages
+where
+both
+scalar
+and
+structured
+types
+</del>
+<ins class="diff-chg">being
+described,
+like
+a
+person,
+place,
+event,
+or
+web
+page.
+A
+</ins><dfn title="value-type" id="dfn-value-type"><ins class="diff-chg">
+value
+type
+</ins></dfn><ins class="diff-chg">
+specifies
+the
+data
+type
+of
+a
+particular
+value,
+such
+as
+an
+integer,
+a
+floating
+point
+number,
+or
+a
+date.
+</ins></p><div class="example"><div class="example-title"><span>Example 23</span>: Example demonstrating the context-sensitivity for @type</div><pre class="example">{<ins class="diff-chg">
+...
+  &quot;@id&quot;: &quot;http://example.org/posts#TripToWestVirginia&quot;,
+</ins>  <span class="diff">&quot;@type&quot;: &quot;http://schema.org/BlogPosting&quot;</span>,   &lt;- This is a node type<ins class="diff-chg">
+  &quot;modified&quot;:
+  {
+    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
+</ins>    <span class="diff">&quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;</span> &lt;- This is a value type<ins class="diff-chg">
+  }
+...
+}
+</ins></pre></div><p><ins class="diff-chg">
+The
+first
+</ins>
+use
+<ins class="diff-new">of
+</ins><code><ins class="diff-new">
+@type
+</ins></code><ins class="diff-new">
+associates
+a
+</ins><a class="tref internalDFN" title="node-type" href="#dfn-node-type"><ins class="diff-new">
+node
+type
+</ins></a><ins class="diff-new">
+(
+</ins><code><ins class="diff-new">
+http://schema.org/BlogPosting
+</ins></code><ins class="diff-new">
+)
+with
+</ins>
+the
+<del class="diff-old">same
+class
+inheritance
+mechanism,
+even
+though
+scalar
+types
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">node
+</ins></a>,<ins class="diff-chg">
+which
+is
+expressed
+using
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>.<ins class="diff-chg">
+The
+second
+use
+of
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+associates
+a
+</ins><a class="tref internalDFN" title="value-type" href="#dfn-value-type"><ins class="diff-chg">
+value
+type
+</ins></a><ins class="diff-chg">
+(
+</ins><code><ins class="diff-chg">
+http://www.w3.org/2001/XMLSchema#dateTime
+</ins></code><ins class="diff-chg">
+)
+with
+the
+value
+expressed
+using
+the
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>.<ins class="diff-chg">
+As
+a
+general
+rule,
+when
+</ins><code><ins class="diff-chg">
+@value
+</ins></code>
+and
+<del class="diff-old">structured
+types
+</del>
+<code>
+<ins class="diff-chg">@type
+</ins></code>
+are
+<del class="diff-old">inherently
+different.
+</del>
+<ins class="diff-chg">used
+in
+the
+same
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a>,<ins class="diff-chg">
+the
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+is
+expressing
+a
+</ins><a class="tref internalDFN" title="value-type" href="#dfn-value-type"><ins class="diff-chg">
+value
+type
+</ins></a>.<ins class="diff-chg">
+Otherwise,
+the
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+is
+expressing
+a
+</ins><a class="tref internalDFN" title="node-type" href="#dfn-node-type"><ins class="diff-chg">
+node
+type
+</ins></a>.<ins class="diff-chg">
+The
+example
+above
+expresses
+the
+following
+data:
+</ins>
+</p>
+<table class="example">
+<thead>
+<tr>
+<th>
+<ins class="diff-chg">Subject
+</ins></th><th><ins class="diff-chg">
+Property
+</ins></th><th><ins class="diff-chg">
+Value
+</ins></th><th><ins class="diff-chg">
+Value
+Type
+</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
+http://example.org/posts#TripToWestVirginia
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/1999/02/22-rdf-syntax-ns#type
+</ins></td><td><ins class="diff-chg">
+http://schema.org/BlogPosting
+</ins></td><td style="text-align:center;"><ins class="diff-chg">
+-
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.org/posts#TripToWestVirginia
+</ins></td><td><ins class="diff-chg">
+http://purl.org/dc/terms/modified
+</ins></td><td><ins class="diff-chg">
+2010-05-29T14:17:39+02:00
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/2001/XMLSchema#dateTime
+</ins></td></tr></tbody></table></section><section class="informative" id="type-coercion">
+<h3>
+<span class="secno">
+<del class="diff-old">4.3
+</del>
+<ins class="diff-chg">6.5
+</ins>
+</span>
+<del class="diff-old">External
+Contexts
+</del>
+<ins class="diff-chg">Type
+Coercion
+</ins>
+</h3>
+<p>
+<del class="diff-old">Authors
+may
+choose
+</del>
+<em>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+JSON-LD
+supports
+the
+coercion
+of
+values
+</ins>
+to
+<del class="diff-old">declare
+</del>
+<ins class="diff-chg">particular
+data
+types.
+Type
+</ins><dfn title="coercion" id="dfn-coercion"><ins class="diff-chg">
+coercion
+</ins></dfn><ins class="diff-chg">
+allows
+someone
+deploying
+</ins>
+JSON-LD
+<del class="diff-old">context
+s
+in
+external
+documents
+</del>
+to
+<del class="diff-old">promote
+re-use
+</del>
+<ins class="diff-chg">coerce
+the
+incoming
+or
+outgoing
+values
+to
+the
+proper
+data
+type
+based
+on
+a
+mapping
+</ins>
+of
+<del class="diff-old">contexts
+as
+well
+as
+reduce
+</del>
+<ins class="diff-chg">data
+type
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a>.<ins class="diff-chg">
+Using
+type
+coercion,
+value
+representation
+is
+preserved
+without
+requiring
+</ins>
+the
+<del class="diff-old">size
+</del>
+<ins class="diff-chg">data
+type
+to
+be
+specified
+with
+each
+piece
+</ins>
+of
+<del class="diff-old">JSON-LD
+documents.
+</del>
+<ins class="diff-chg">data.
+</ins>
+</p>
+<p>
+<del class="diff-old">In
+order
+to
+use
+an
+external
+context,
+</del>
+<ins class="diff-chg">Type
+coercion
+is
+specified
+within
+</ins>
+an
+<del class="diff-old">author
+must
+specify
+</del>
+<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">
+<ins class="diff-chg">expanded
+term
+definition
+</ins></a><ins class="diff-chg">
+using
+the
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+key.
+The
+value
+of
+this
+key
+expands
+to
+</ins>
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+<ins class="diff-new">Alternatively,
+the
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
+keywords
+</ins>
+</a>
+<code>
+<ins class="diff-new">@id
+</ins></code><ins class="diff-new">
+or
+</ins><code><ins class="diff-new">
+@vocab
+</ins></code><ins class="diff-new">
+may
+be
+used
+as
+value
+</ins>
+to
+<ins class="diff-new">indicate
+that
+within
+the
+body
+of
+</ins>
+a
+<del class="diff-old">valid
+</del>
+JSON-LD
+<del class="diff-old">document.
+The
+referenced
+document
+must
+have
+</del>
+<ins class="diff-chg">document,
+</ins>
+a
+<del class="diff-old">top-level
+subject
+definition
+.
+The
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">string
+</ins></a>
+value
+of
+<del class="diff-old">any
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+coerced
+to
+</ins>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">@id
+</ins></code><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@vocab
+</ins>
+</code>
+<del class="diff-old">key
+within
+that
+object
+</del>
+is
+<del class="diff-old">substituted
+for
+the
+</del>
+<ins class="diff-chg">to
+be
+interpreted
+as
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">within
+</del>
+</a>.
+<ins class="diff-chg">The
+difference
+between
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code><ins class="diff-chg">
+is
+how
+values
+are
+expanded
+to
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+IRIs
+</ins></a>.<code><ins class="diff-chg">
+@vocab
+</ins></code><ins class="diff-chg">
+first
+tries
+to
+expand
+</ins>
+the
+<del class="diff-old">referencing
+document
+</del>
+<ins class="diff-chg">value
+by
+interpreting
+it
+as
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>.<ins class="diff-chg">
+If
+no
+matching
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+is
+found
+in
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<ins class="diff-chg">
+it
+tries
+</ins>
+to
+<del class="diff-old">have
+</del>
+<ins class="diff-chg">expand
+it
+as
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+if
+there's
+a
+colon
+in
+</ins>
+the
+<del class="diff-old">same
+effect
+</del>
+<ins class="diff-chg">value;
+otherwise,
+it
+will
+expand
+the
+value
+using
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context's
+</ins></a><ins class="diff-chg">
+vocabulary
+mapping,
+if
+present,
+or
+by
+interpreting
+it
+as
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
+relative
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.<ins class="diff-chg">
+Values
+coerced
+to
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+in
+contrast
+are
+expanded
+</ins>
+as
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+<ins class="diff-new">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>
+if
+<ins class="diff-new">a
+colon
+is
+present;
+otherwise,
+they
+are
+interpreted
+as
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
+relative
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>.</p><p><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+Terms
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
+compact
+IRIs
+</ins></a><ins class="diff-new">
+used
+as
+</ins>
+the
+value
+<del class="diff-old">were
+specified
+inline
+</del>
+<ins class="diff-chg">of
+a
+</ins><code><ins class="diff-chg">
+@type
+</ins></code><ins class="diff-chg">
+key
+may
+be
+defined
+</ins>
+within
+the
+<del class="diff-old">referencing
+document.
+</del>
+<ins class="diff-chg">same
+context.
+This
+means
+that
+one
+may
+specify
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+like
+</ins><code><ins class="diff-chg">
+xsd
+</ins></code><ins class="diff-chg">
+and
+then
+use
+</ins><code><ins class="diff-chg">
+xsd:integer
+</ins></code><ins class="diff-chg">
+within
+the
+same
+context
+definition.
+</ins>
+</p>
+<p>
+The
+<del class="diff-old">following
+</del>
+example
+<ins class="diff-new">below
+</ins>
+demonstrates
+<del class="diff-old">the
+use
+of
+an
+external
+context:
+</del>
+<ins class="diff-chg">how
+a
+JSON-LD
+author
+can
+coerce
+values
+to
+</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
+typed
+values
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>.
+</p>
+<del class="diff-old">{
+  ,
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
+</del>
+<div class="example"><div class="example-title"><span>Example 24</span>: Expanded term definition with types</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;:
+  {
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;age&quot;:
+</ins>    <span class="diff">{<ins class="diff-chg">
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    }</span>,
+    &quot;homepage&quot;:
+</ins>    <span class="diff">{<ins class="diff-chg">
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }</span>
+  },
+  &quot;@id&quot;: &quot;http://example.com/people#john&quot;,
+  &quot;name&quot;: &quot;John Smith&quot;,
+  &quot;age&quot;: <span class="diff">&quot;41&quot;</span>,
+  &quot;homepage&quot;:
+</ins>  <span class="diff">[<ins class="diff-chg">
+    &quot;http://personal.example.org/&quot;,
+    &quot;http://work.example.com/jsmith/&quot;
+  ]</span>
+</ins>
+}
+</pre>
+</div>
+<p>
+<del class="diff-old">Authors
+</del>
+<ins class="diff-chg">The
+example
+shown
+above
+would
+generate
+the
+following
+data.
+</ins></p><table class="example"><thead><tr><th><ins class="diff-chg">
+Subject
+</ins></th><th><ins class="diff-chg">
+Property
+</ins></th><th><ins class="diff-chg">
+Value
+</ins></th><th><ins class="diff-chg">
+Value
+Type
+</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
+http://example.com/people#john
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/name
+</ins></td><td><ins class="diff-chg">
+John
+Smith
+</ins></td><td></td></tr><tr><td><ins class="diff-chg">
+http://example.com/people#john
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/age
+</ins></td><td><ins class="diff-chg">
+41
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/2001/XMLSchema#integer
+</ins></td></tr><tr><td rowspan="2"><ins class="diff-chg">
+http://example.com/people#john
+</ins></td><td rowspan="2"><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/homepage
+</ins></td><td><ins class="diff-chg">
+http://personal.example.org/
+</ins></td><td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a></td></tr><tr><td><ins class="diff-chg">
+http://work.example.com/jsmith/
+</ins></td><td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a></td></tr></tbody></table><p><ins class="diff-chg">
+Terms
+</ins>
+may
+also
+<del class="diff-old">import
+multiple
+contexts
+</del>
+<ins class="diff-chg">be
+defined
+using
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+IRIs
+</ins></a>
+or
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+<ins class="diff-new">compact
+IRIs
+</ins></a>.<ins class="diff-new">
+This
+allows
+coercion
+rules
+to
+be
+applied
+to
+keys
+which
+are
+not
+represented
+as
+</ins>
+a
+<del class="diff-old">combination
+of
+external
+and
+local
+contexts
+by
+specifying
+a
+list
+of
+contexts:
+</del>
+<ins class="diff-chg">simple
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>.<ins class="diff-chg">
+For
+example:
+</ins>
+</p>
+<del class="diff-old">{
+  &quot;@context&quot;:
+  [
+    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
+</del>
+<div class="example"><div class="example-title"><span>Example 25</span>: Term definitions using compact and absolute IRIs</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
+    &quot;<span class="diff">foaf:age</span>&quot;:
+</ins>
+    {
+<del class="diff-old">      &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+</del>
+      <span class="diff">&quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;</span>,
+<ins class="diff-chg">      &quot;@type&quot;: &quot;xsd:integer&quot;
+</ins>
+    },
+<del class="diff-old">    &quot;http://json-ld.org/contexts/event.jsonld&quot;
+  ],
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;foaf:depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;,
+  &quot;celebrates&quot;:
+  {
+    &quot;@type&quot;: &quot;Event&quot;,
+    &quot;description&quot;: &quot;International Talk Like a Pirate Day&quot;,
+    &quot;date&quot;: &quot;R/2011-09-19&quot;
+  }
+</del>
+<ins class="diff-chg">    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
+    {
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;foaf:name&quot;: &quot;John Smith&quot;,
+  &quot;<span class="diff">foaf:age</span>&quot;: &quot;41&quot;,
+  &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
+  [
+    &quot;http://personal.example.org/&quot;,
+    &quot;http://work.example.com/jsmith/&quot;
+  ]
+</ins>
+}
+</pre>
+</div>
+<p>
+<del class="diff-old">Each
+context
+</del>
+<ins class="diff-chg">In
+this
+case
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+definition
+</ins>
+in
+<del class="diff-old">a
+list
+will
+be
+evaluated
+in-order.
+Duplicate
+mappings
+among
+</del>
+the
+<del class="diff-old">context
+</del>
+<ins class="diff-chg">term
+definition
+is
+optional.
+If
+it
+does
+exist,
+the
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>
+<del class="diff-old">s
+must
+</del>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+representing
+the
+term
+will
+always
+</ins>
+be
+<del class="diff-old">overwritten
+on
+a
+last-defined-overrides
+basis.
+The
+context
+list
+must
+contain
+either
+de-referenceable
+</del>
+<ins class="diff-chg">expanded
+to
+</ins>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">s
+</del>
+<ins class="diff-chg">defined
+by
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+key—regardless
+of
+whether
+a
+prefix
+is
+defined
+</ins>
+or
+<del class="diff-old">JSON
+object
+s
+</del>
+<ins class="diff-chg">not.
+</ins></p><p><ins class="diff-chg">
+Type
+coercion
+is
+always
+performed
+using
+the
+unexpanded
+value
+of
+the
+key.
+In
+the
+example
+above,
+</ins>
+that
+<del class="diff-old">conform
+to
+</del>
+<ins class="diff-chg">means
+that
+type
+coercion
+is
+done
+looking
+for
+</ins><code><ins class="diff-chg">
+foaf:age
+</ins></code><ins class="diff-chg">
+in
+</ins>
+the
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+</ins>
+context
+</a>
+<del class="diff-old">syntax
+</del>
+<ins class="diff-chg">and
+not
+for
+the
+corresponding,
+expanded
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><code><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/age
+</ins></code>.</p><div class="note"><div class="note-title"><span><ins class="diff-chg">
+Note
+</ins></span></div><p class=""><ins class="diff-chg">
+Keys
+in
+the
+context
+are
+treated
+</ins>
+as
+<del class="diff-old">described
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">terms
+</ins></a><ins class="diff-chg">
+for
+the
+purpose
+of
+expansion
+and
+value
+coercion.
+At
+times,
+this
+may
+result
+</ins>
+in
+<ins class="diff-new">multiple
+representations
+for
+the
+same
+expanded
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>.<ins class="diff-new">
+For
+example,
+one
+could
+specify
+that
+</ins><code><ins class="diff-new">
+dog
+</ins></code><ins class="diff-new">
+and
+</ins><code><ins class="diff-new">
+cat
+</ins></code><ins class="diff-new">
+both
+expanded
+to
+</ins><code><ins class="diff-new">
+http://example.com/vocab#animal
+</ins></code>.<ins class="diff-new">
+Doing
+this
+could
+be
+useful
+for
+establishing
+different
+type
+coercion
+or
+language
+specification
+rules.
+It
+also
+allows
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+(or
+even
+an
+absolute
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+)
+to
+be
+defined
+as
+something
+else
+entirely.
+For
+example,
+one
+could
+specify
+that
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><code><ins class="diff-new">
+http://example.org/zoo
+</ins></code><ins class="diff-new">
+should
+expand
+to
+</ins><code><ins class="diff-new">
+http://example.org/river
+</ins></code>,<ins class="diff-new">
+but
+</ins>
+this
+<ins class="diff-new">usage
+is
+discouraged
+because
+it
+would
+lead
+to
+a
+great
+deal
+of
+confusion
+among
+developers
+attempting
+to
+understand
+the
+JSON-LD
+</ins>
+document.
+</p>
+</div>
+</section>
+<section class="informative" id="embedding">
+<h3>
+<span class="secno">
+<ins class="diff-new">6.6
+</ins></span><ins class="diff-new">
+Embedding
+</ins></h3><p><em><ins class="diff-new">
+This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+<del class="diff-old">An
+</del>
+<dfn title="embedding" id="dfn-embedding">
+<ins class="diff-chg">Embedding
+</ins></dfn><ins class="diff-chg">
+is
+a
+JSON-LD
+feature
+that
+allows
+an
+</ins>
+author
+<ins class="diff-chg">to
+use
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+objects
+</ins></a><ins class="diff-chg">
+as
+</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
+property
+</ins></a><ins class="diff-chg">
+values.
+This
+is
+a
+commonly
+used
+mechanism
+for
+creating
+a
+parent-child
+relationship
+between
+two
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+nodes
+</ins></a>.</p><p><ins class="diff-chg">
+The
+example
+shows
+two
+nodes
+related
+by
+a
+property
+from
+the
+first
+node:
+</ins></p>  <div class="example"><div class="example-title"><span>Example 26</span>: Embedding a node object as property value of another node object</div><pre class="example">{<ins class="diff-chg">
+...
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;<span class="diff">knows</span>&quot;:
+  {
+    &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">Person</span>&quot;,
+    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">Gregg Kellogg</span>&quot;,
+  }
+...
+}
+</ins></pre></div><p><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a>,<ins class="diff-chg">
+like
+the
+one
+used
+above,
+</ins>
+may
+<ins class="diff-new">be
+used
+in
+any
+value
+position
+in
+the
+body
+of
+a
+JSON-LD
+document.
+</ins></p></section><section class="informative" id="advanced-context-usage"><h3><span class="secno"><ins class="diff-new">
+6.7
+</ins></span><ins class="diff-new">
+Advanced
+Context
+Usage
+</ins></h3><p><em><ins class="diff-new">
+This
+section
+is
+non-normative.
+</ins>
+</em>
+<del class="diff-old">nest
+contexts
+within
+subject
+definitions
+,
+with
+</del>
+</p>
+<p>
+<ins class="diff-chg">Section
+</ins><a href="#the-context" class="sec-ref"><span class="secno"><ins class="diff-chg">
+5.1
+</ins></span><span class="sec-title"><ins class="diff-chg">
+The
+Context
+</ins></span></a><ins class="diff-chg">
+introduced
+the
+basics
+of
+what
+makes
+JSON-LD
+work.
+This
+section
+expands
+on
+the
+basic
+principles
+of
+</ins>
+the
+<a class="tref internalDFN" title="context" href="#dfn-context">
+<ins class="diff-new">context
+</ins></a><ins class="diff-new">
+and
+demonstrates
+how
+</ins>
+more
+<del class="diff-old">deeply
+nested
+</del>
+<ins class="diff-chg">advanced
+use
+cases
+can
+be
+achieved
+using
+JSON-LD.
+</ins></p><p><ins class="diff-chg">
+In
+general,
+</ins>
+contexts
+<del class="diff-old">overriding
+the
+values
+</del>
+<ins class="diff-chg">may
+be
+used
+at
+any
+time
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+is
+defined.
+The
+only
+time
+that
+one
+cannot
+express
+a
+context
+is
+inside
+a
+context
+definition
+itself.
+For
+example,
+a
+</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
+JSON-LD
+document
+</ins></a><ins class="diff-chg">
+may
+use
+more
+than
+one
+context
+at
+different
+points
+</ins>
+in
+<del class="diff-old">previously
+defined
+contexts:
+</del>
+<ins class="diff-chg">a
+document:
+</ins>
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 27</span>: Using multiple contexts</div><pre class="example">[
+<ins class="diff-chg">  {
+</ins>    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/person.jsonld&quot;,</span><ins class="diff-chg">
+    &quot;name&quot;: &quot;Manu Sporny&quot;,
+    &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+    &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
+  },
+  {
+</ins>    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/place.jsonld&quot;,</span><ins class="diff-chg">
+    &quot;name&quot;: &quot;The Empire State Building&quot;,
+    &quot;description&quot;: &quot;The Empire State Building is a 102-story landmark in New York City.&quot;,
+    &quot;geo&quot;: {
+      &quot;latitude&quot;: &quot;40.75&quot;,
+      &quot;longitude&quot;: &quot;73.98&quot;
+    }
+  }
+]
+</ins></pre></div><p><ins class="diff-chg">
+Duplicate
+context
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a><ins class="diff-chg">
+are
+overridden
+using
+a
+most-recently-defined-wins
+mechanism.
+</ins></p>  <div class="example"><div class="example-title"><span>Example 28</span>: Scoped contexts within node objects</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+  {
+<del class="diff-old">    &quot;name&quot;: &quot;http://example.com/person#name&quot;,
+</del>
+<ins class="diff-chg">    &quot;name&quot;: &quot;http://example.com/person#name,
+</ins>
+    &quot;details&quot;: &quot;http://example.com/person#details&quot;
+<del class="diff-old">  },
+</del>
+<ins class="diff-chg">  }&quot;</span>,
+</ins>
+  &quot;<span class="diff">name</span>&quot;: &quot;Markus Lanthaler&quot;,
+  ...
+  &quot;details&quot;:
+  {
+<del class="diff-old">    &quot;@context&quot;: {
+</del>
+    <span class="diff">&quot;@context&quot;:
+<ins class="diff-chg">    {
+</ins>
+      &quot;name&quot;: &quot;http://example.com/organization#name&quot;
+<del class="diff-old">    },
+</del>
+<ins class="diff-chg">    }</span>,
+</ins>
+    &quot;<span class="diff">name</span>&quot;: &quot;Graz University of Technology&quot;
+  }
+}
+</pre>
+</div>
+<p>
+In
+the
+example
+above,
+the
+<code>
+name
+</code>
+<del class="diff-old">prefix
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a>
+is
+overridden
+in
+the
+more
+deeply
+nested
+<code>
+details
+</code>
+structure.
+Note
+that
+this
+is
+rarely
+a
+good
+authoring
+practice
+and
+is
+typically
+used
+when
+<ins class="diff-new">working
+with
+legacy
+applications
+that
+depend
+on
+a
+specific
+structure
+of
+</ins>
+the
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+<del class="diff-old">has
+legacy
+applications
+using
+</del>
+</a>.
+<ins class="diff-chg">If
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+is
+redefined
+within
+a
+context,
+all
+previous
+rules
+associated
+with
+</ins>
+the
+<del class="diff-old">structure
+</del>
+<ins class="diff-chg">previous
+definition
+are
+removed.
+If
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+is
+redefined
+to
+</ins><code><ins class="diff-chg">
+null
+</ins></code>,<ins class="diff-chg">
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+is
+effectively
+removed
+from
+the
+list
+</ins>
+of
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-new">terms
+</ins></a><ins class="diff-new">
+defined
+in
+</ins>
+the
+<del class="diff-old">object.
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context
+</ins></a>.
+</p>
+<p>
+<del class="diff-old">External
+JSON-LD
+context
+documents
+</del>
+<ins class="diff-chg">Multiple
+contexts
+</ins>
+may
+<del class="diff-old">contain
+extra
+information
+located
+outside
+</del>
+<ins class="diff-chg">be
+combined
+using
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a>,<ins class="diff-chg">
+which
+is
+processed
+in
+order.
+The
+set
+</ins>
+of
+<del class="diff-old">the
+@context
+key,
+such
+</del>
+<ins class="diff-chg">contexts
+defined
+within
+a
+specific
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+are
+referred
+to
+</ins>
+as
+<del class="diff-old">documentation
+about
+</del>
+<dfn title="local-context" id="dfn-local-context">
+<ins class="diff-chg">local
+contexts
+</ins></dfn>.<ins class="diff-chg">
+The
+</ins><dfn title="active-context" id="dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></dfn><ins class="diff-chg">
+refers
+to
+</ins>
+the
+<del class="diff-old">prefixes
+</del>
+<ins class="diff-chg">accumulation
+of
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+contexts
+</ins>
+</a>
+<del class="diff-old">declared
+</del>
+<ins class="diff-chg">that
+are
+</ins>
+in
+<ins class="diff-new">scope
+at
+a
+specific
+point
+within
+</ins>
+the
+document.
+<del class="diff-old">When
+importing
+</del>
+<ins class="diff-chg">Setting
+</ins>
+a
+<a class="tref internalDFN" title="local-context" href="#dfn-local-context">
+<ins class="diff-new">local
+context
+</ins></a><ins class="diff-new">
+to
+</ins>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">null
+</ins>
+</code>
+<del class="diff-old">value
+from
+</del>
+<ins class="diff-chg">effectively
+resets
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+to
+an
+empty
+context.
+The
+following
+example
+specifies
+</ins>
+an
+external
+<del class="diff-old">JSON-LD
+</del>
+context
+<del class="diff-old">document,
+any
+extra
+information
+contained
+outside
+</del>
+<ins class="diff-chg">and
+then
+layers
+an
+embedded
+context
+on
+top
+</ins>
+of
+the
+<ins class="diff-new">external
+context:
+</ins></p>  <div class="example"><div class="example-title"><span>Example 29</span>: Combining external and local contexts</div><pre class="example">{  <span class="diff">&quot;@context&quot;: [<ins class="diff-new">
+    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
+    {
+      &quot;pic&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;
+    }
+  ],</span>
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+</ins>  <span class="diff">&quot;pic&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;</span><ins class="diff-new">
+}
+</ins></pre></div><div class="note"><div class="note-title"><span><ins class="diff-new">
+Note
+</ins></span></div><p class=""><ins class="diff-new">
+When
+possible,
+the
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
+context
+</ins></a><ins class="diff-new">
+definition
+should
+be
+put
+at
+the
+top
+of
+a
+JSON-LD
+document.
+This
+makes
+the
+document
+easier
+to
+read
+and
+might
+make
+streaming
+parsers
+more
+efficient.
+Documents
+that
+do
+not
+have
+the
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
+context
+</ins></a><ins class="diff-new">
+at
+the
+top
+are
+still
+conformant
+JSON-LD.
+</ins></p></div><div class="note"><div class="note-title"><span><ins class="diff-new">
+Note
+</ins></span></div><p class=""><ins class="diff-new">
+To
+avoid
+forward-compatibility
+issues,
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+terms
+</ins></a><ins class="diff-new">
+starting
+with
+an
+</ins>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">@
+</ins>
+</code>
+<del class="diff-old">value
+must
+</del>
+<ins class="diff-chg">character
+are
+to
+</ins>
+be
+<del class="diff-old">discarded.
+It
+is
+also
+recommended
+</del>
+<ins class="diff-chg">avoided
+as
+they
+might
+be
+used
+as
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a><ins class="diff-chg">
+in
+future
+versions
+of
+JSON-LD.
+Terms
+starting
+with
+an
+</ins><code><ins class="diff-chg">
+@
+</ins></code><ins class="diff-chg">
+character
+</ins>
+that
+<del class="diff-old">a
+human-readable
+document
+is
+served
+</del>
+<ins class="diff-chg">are
+not
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+JSON-LD
+1.0
+keywords
+</ins></a><ins class="diff-chg">
+are
+treated
+</ins>
+as
+<del class="diff-old">well
+</del>
+<ins class="diff-chg">any
+other
+term,
+i.e.,
+they
+are
+ignored
+unless
+mapped
+</ins>
+to
+<del class="diff-old">explain
+</del>
+<ins class="diff-chg">an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.<ins class="diff-chg">
+Furthermore,
+</ins>
+the
+<del class="diff-old">correct
+usage
+</del>
+<ins class="diff-chg">use
+</ins>
+of
+<del class="diff-old">the
+JSON-LD
+context
+document.
+</del>
+<ins class="diff-chg">empty
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a><ins class="diff-chg">
+(
+</ins><code><ins class="diff-chg">
+&quot;&quot;
+</ins></code><ins class="diff-chg">
+)
+is
+not
+allowed
+as
+not
+all
+programming
+languages
+are
+able
+to
+handle
+empty
+JSON
+keys.
+</ins>
+</p>
+</div>
+</section>
+<section class="normative" id="interpreting-json-as-json-ld">
+<h3>
+<span class="secno">
+<del class="diff-old">4.4
+</del>
+<ins class="diff-chg">6.8
+</ins>
+</span>
+<del class="diff-old">Referencing
+Contexts
+from
+</del>
+<ins class="diff-chg">Interpreting
+</ins>
+JSON
+<del class="diff-old">Documents
+</del>
+<ins class="diff-chg">as
+JSON-LD
+</ins>
+</h3>
+<p>
+Ordinary
+JSON
+documents
+can
+be
+<del class="diff-old">transformed
+into
+</del>
+<ins class="diff-chg">interpreted
+as
+</ins>
+JSON-LD
+<del class="diff-old">documents
+</del>
+by
+referencing
+<del class="diff-old">to
+an
+external
+</del>
+<ins class="diff-chg">a
+</ins>
+JSON-LD
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+<ins class="diff-new">document
+</ins>
+in
+an
+HTTP
+Link
+Header.
+Doing
+<del class="diff-old">this
+</del>
+<ins class="diff-chg">so
+</ins>
+allows
+JSON
+to
+be
+unambiguously
+machine-readable
+without
+requiring
+developers
+to
+drastically
+change
+their
+<del class="diff-old">workflow
+</del>
+<ins class="diff-chg">documents
+</ins>
+and
+provides
+an
+upgrade
+path
+for
+existing
+infrastructure
+without
+breaking
+existing
+clients
+that
+rely
+on
+the
+<code>
+application/json
+</code>
+media
+type.
+</p>
+<p>
+In
+order
+to
+use
+an
+external
+context
+with
+an
+ordinary
+JSON
+document,
+an
+author
+<del class="diff-old">must
+</del>
+<em class="rfc2119" title="MUST">
+<ins class="diff-chg">MUST
+</ins>
+</em>
+specify
+an
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+to
+a
+valid
+<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
+JSON-LD
+document
+</a>
+in
+an
+HTTP
+Link
+Header
+[
+<cite>
+<a class="bibref" href="#bib-RFC5988">
+RFC5988
+</a>
+</cite>
+]
+using
+the
+<code>
+<del class="diff-old">describedby
+</del>
+<ins class="diff-chg">http://www.w3.org/ns/json-ld#context
+</ins>
+</code>
+link
+relation.
+The
+referenced
+document
+<del class="diff-old">must
+</del>
+<em class="rfc2119" title="MUST">
+<ins class="diff-chg">MUST
+</ins>
+</em>
+have
+a
+top-level
+<del class="diff-old">subject
+definition
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins>
+</a>.
+The
+<code>
+@context
+</code>
+subtree
+within
+that
+object
+is
+added
+to
+the
+top-level
+<del class="diff-old">subject
+definition
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins>
+</a>
+of
+the
+referencing
+document.
+If
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+is
+at
+the
+top-level
+of
+the
+referencing
+document
+and
+its
+items
+are
+<del class="diff-old">subject
+definitions
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+objects
+</ins>
+</a>,
+the
+<code>
+@context
+</code>
+subtree
+is
+added
+to
+all
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+items.
+All
+extra
+information
+located
+outside
+of
+the
+<code>
+@context
+</code>
+subtree
+in
+the
+referenced
+document
+<del class="diff-old">must
+</del>
+<em class="rfc2119" title="MUST">
+<ins class="diff-chg">MUST
+</ins>
+</em>
+be
+discarded.
+<ins class="diff-new">Effectively
+this
+means
+that
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a><ins class="diff-new">
+is
+initialized
+with
+the
+referenced
+external
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
+context
+</ins></a>.
+</p>
+<p>
+The
+following
+example
+demonstrates
+the
+use
+of
+an
+external
+context
+with
+an
+ordinary
+JSON
+document:
+</p>
+<del class="diff-old">GET /ordinary-json-document.json HTTP/1.1
+</del>
+  <div class="example"><div class="example-title"><span>Example 30</span>: Referencing a JSON-LD context from a JSON document via an HTTP Link Header</div><pre class="example">GET /ordinary-json-document.json HTTP/1.1
+Host: example.com
+Accept: application/ld+json,application/json,*/*;q=0.1
+====================================
+HTTP/1.0 200 OK
+...
+Content-Type: <span class="diff">application/json</span>
+<span class="diff">Link: &lt;http://json-ld.org/contexts/person.jsonld&gt;; rel=&quot;http://www.w3.org/ns/json-ld#context&quot;; type=&quot;application/ld+json&quot;</span>
+{
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
+<del class="diff-old">  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
+</del>
+<ins class="diff-chg">  &quot;image&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
+</ins>
+}
+</pre>
+</div>
+<del class="diff-old">Note
+</del>
+<p>
+<ins class="diff-chg">Please
+note
+that
+</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
+JSON-LD
+documents
+</a>
+served
+with
+the
+<code>
+application/ld+json
+</code>
+media
+type
+<del class="diff-old">must
+</del>
+<em class="rfc2119" title="MUST">
+<ins class="diff-chg">MUST
+</ins>
+</em>
+have
+all
+context
+information,
+including
+references
+to
+external
+contexts,
+within
+the
+body
+of
+the
+document.
+<ins class="diff-new">Contexts
+linked
+via
+a
+</ins><code><ins class="diff-new">
+http://www.w3.org/ns/json-ld#context
+</ins></code><ins class="diff-new">
+HTTP
+Link
+Header
+</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+ignored
+for
+such
+documents.
+</ins>
+</p>
+</section>
+<section class="informative" id="string-internationalization">
+<h3>
+<span class="secno">
+<del class="diff-old">4.5
+</del>
+<ins class="diff-chg">6.9
+</ins>
+</span>
+<del class="diff-old">Expanded
+Term
+Definition
+</del>
+<ins class="diff-chg">String
+Internationalization
+</ins>
+</h3>
+<p>
+<del class="diff-old">Within
+a
+context
+definition,
+term
+s
+may
+</del>
+<em>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins>
+</em>
+<del class="diff-old">be
+defined
+using
+an
+expanded
+notation
+to
+allow
+for
+additional
+information
+associated
+with
+the
+term
+to
+be
+specified
+(see
+also
+Type
+Coercion
+and
+Sets
+and
+Lists
+).
+</del>
+</p>
+<p>
+<del class="diff-old">Instead
+of
+using
+</del>
+<ins class="diff-chg">At
+times,
+it
+is
+important
+to
+annotate
+</ins>
+a
+<a class="tref internalDFN" title="string" href="#dfn-string">
+string
+<del class="diff-old">representation
+</del>
+</a>
+<ins class="diff-chg">with
+its
+language.
+In
+JSON-LD
+this
+is
+possible
+in
+a
+variety
+</ins>
+of
+<del class="diff-old">an
+IRI
+,
+the
+IRI
+may
+be
+specified
+using
+</del>
+<ins class="diff-chg">ways.
+First,
+it
+is
+possible
+to
+define
+</ins>
+a
+<del class="diff-old">JSON
+object
+having
+an
+</del>
+<ins class="diff-chg">default
+language
+for
+a
+JSON-LD
+document
+by
+setting
+the
+</ins>
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<del class="diff-old">key.
+</del>
+<ins class="diff-chg">key
+in
+the
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>:</p>  <div class="example"><div class="example-title"><span>Example 31</span>: Setting the default language of a JSON-LD document</div><pre class="example">{  <span class="diff">&quot;@context&quot;:<ins class="diff-chg">
+  {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+  }</span>,
+  &quot;name&quot;: <span class="diff">&quot;花澄&quot;</span>,
+  &quot;occupation&quot;: <span class="diff">&quot;科学者&quot;</span>
+}
+</ins></pre></div><p>
+The
+<del class="diff-old">value
+of
+</del>
+<ins class="diff-chg">example
+above
+would
+associate
+</ins>
+the
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">ja
+</ins>
+</code>
+<del class="diff-old">key
+must
+</del>
+<ins class="diff-chg">language
+code
+with
+the
+two
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+strings
+</ins></a><em><ins class="diff-chg">
+花澄
+</ins>
+</em>
+<del class="diff-old">be
+either
+a
+term
+,
+a
+compact
+IRI
+</del>
+<ins class="diff-chg">and
+</ins><em><ins class="diff-chg">
+科学者
+</ins></em>.<ins class="diff-chg">
+Languages
+codes
+are
+defined
+in
+[
+</ins><cite>
+<del class="diff-old">,
+or
+an
+absolute
+IRI
+</del>
+<a class="bibref" href="#bib-BCP47">
+<ins class="diff-chg">BCP47
+</ins></a>
+</cite>
+<ins class="diff-new">].
+The
+default
+language
+applies
+to
+all
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+string
+</ins></a><ins class="diff-new">
+values
+that
+are
+not
+</ins><a href="#type-coercion"><ins class="diff-new">
+type
+coerced
+</ins>
+</a>.
+<del class="diff-old">Such
+an
+object
+is
+called
+</del>
+</p>
+<p>
+<ins class="diff-chg">To
+clear
+the
+default
+language
+for
+</ins>
+a
+<del class="diff-old">subject
+reference
+.
+</del>
+<ins class="diff-chg">subtree,
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+can
+be
+set
+to
+</ins><code><ins class="diff-chg">
+null
+</ins></code><ins class="diff-chg">
+in
+a
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+as
+follows:
+</ins>
+</p>
+<del class="diff-old">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: ,
+    &quot;name&quot;: ,
+    &quot;homepage&quot;: ,
+    &quot;depiction&quot;:
+</del>
+  <div class="example"><div class="example-title"><span>Example 32</span>: Clearing default language</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;: {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+</ins>
+  },
+<del class="diff-old">  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
+</del>
+<ins class="diff-chg">  &quot;name&quot;: &quot;花澄&quot;,
+  &quot;details&quot;: {
+</ins><span class="diff">    &quot;@context&quot;: {<ins class="diff-chg">
+      &quot;@language&quot;: null
+    }</span>,
+    &quot;occupation&quot;: &quot;Ninja&quot;
+  }
+</ins>
+}
+</pre>
+</div>
+<p>
+<del class="diff-old">This
+allows
+additional
+information
+to
+be
+associated
+with
+the
+term.
+This
+may
+be
+used
+for
+Type
+Coercion
+,
+Sets
+and
+Lists
+),
+or
+</del>
+<ins class="diff-chg">Second,
+it
+is
+possible
+</ins>
+to
+associate
+<ins class="diff-new">a
+</ins>
+language
+<del class="diff-old">information
+</del>
+with
+a
+<ins class="diff-new">specific
+</ins><a class="tref internalDFN" title="term" href="#dfn-term">
+term
+<del class="diff-old">as
+shown
+in
+the
+following
+example:
+</del>
+</a>
+<ins class="diff-chg">using
+an
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins></a>:
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 33</span>: Expanded term definition with language</div><pre class="example">{
+  &quot;@context&quot;: {
+    ...
+<del class="diff-old">    &quot;ex&quot;: &quot;http://example.com/&quot;,
+</del>
+<ins class="diff-chg">    &quot;ex&quot;: &quot;http://example.com/vocab/&quot;,
+</ins>
+    &quot;@language&quot;: &quot;ja&quot;,
+    &quot;name&quot;: { &quot;@id&quot;: &quot;ex:name&quot;, <span class="diff">&quot;@language&quot;: null</span> },
+    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot; },
+    &quot;occupation_en&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;en&quot;</span> },
+    &quot;occupation_cs&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;cs&quot;</span> }
+  },
+  <span class="diff">&quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
+  &quot;occupation&quot;: &quot;忍者&quot;,
+  &quot;occupation_en&quot;: &quot;Ninja&quot;,
+  &quot;occupation_cs&quot;: &quot;Nindža&quot;,</span>
+  ...
+}
+</pre>
+</div>
+<p>
+The
+example
+above
+would
+associate
+<em>
+忍者
+</em>
+with
+the
+specified
+default
+language
+code
+<code>
+ja
+</code>,
+<em>
+Ninja
+</em>
+with
+the
+language
+code
+<code>
+en
+</code>,
+and
+<em>
+Nindža
+</em>
+with
+the
+language
+code
+<code>
+cs
+</code>.
+The
+value
+of
+<code>
+name
+</code>,
+<em>
+Yagyū
+Muneyoshi
+</em>
+wouldn't
+be
+associated
+with
+any
+language
+code
+since
+<code>
+@language
+</code>
+was
+reset
+to
+<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>
+in
+the
+<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">
+expanded
+term
+<del class="diff-old">definition.
+Expanded
+terms
+may
+also
+be
+defined
+using
+compact
+IRIs
+or
+absolute
+IRIs
+as
+keys.
+If
+the
+</del>
+definition
+<del class="diff-old">does
+not
+include
+an
+@id
+key,
+the
+expanded
+IRI
+is
+determined
+by
+performing
+expansion
+of
+the
+key
+within
+the
+current
+active
+context.
+This
+mechanism
+is
+mainly
+used
+to
+associate
+type
+or
+language
+information
+with
+a
+compact
+IRI
+or
+an
+absolute
+IRI
+</del>
+</a>.
+</p>
+<div class="note">
+<div class="note-title">
+<span>
+Note
+</span>
+</div>
+<p class="">
+<del class="diff-old">While
+it
+is
+possible
+to
+define
+a
+compact
+IRI
+,
+or
+an
+absolute
+IRI
+to
+expand
+to
+some
+other
+unrelated
+IRI
+(for
+example,
+foaf:name
+expanding
+</del>
+<ins class="diff-chg">Language
+associations
+are
+only
+applied
+</ins>
+to
+<del class="diff-old">http://example.org/unrelated#species
+),
+such
+usage
+is
+strongly
+discouraged.
+4.6
+Type
+Coercion
+JSON-LD
+supports
+the
+coercion
+of
+</del>
+<ins class="diff-chg">plain
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+strings
+</ins></a>.<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
+Typed
+</ins>
+values
+<del class="diff-old">to
+particular
+data
+types.
+Type
+coercion
+allows
+someone
+deploying
+JSON-LD
+to
+coerce
+the
+incoming
+</del>
+</a>
+or
+<del class="diff-old">outgoing
+</del>
+values
+<ins class="diff-new">that
+are
+subject
+</ins>
+to
+<del class="diff-old">the
+proper
+data
+type
+based
+on
+a
+mapping
+of
+data
+type
+IRI
+s
+to
+term
+s.
+Using
+type
+coercion,
+value
+representation
+is
+preserved
+without
+requiring
+the
+data
+</del>
+<a href="#type-coercion">
+type
+<del class="diff-old">to
+be
+specified
+with
+each
+piece
+of
+data.
+Type
+</del>
+coercion
+<del class="diff-old">is
+specified
+within
+an
+expanded
+term
+definition
+using
+the
+@type
+key.
+The
+value
+of
+this
+key
+represents
+a
+type
+IRI
+and
+must
+take
+the
+form
+of
+a
+term
+,
+compact
+IRI
+,
+absolute
+IRI
+,
+or
+the
+keyword
+</del>
+</a>
+<del class="diff-old">@id
+.
+Specifying
+@id
+indicates
+that
+within
+the
+body
+of
+a
+JSON-LD
+document,
+a
+string
+value
+of
+a
+term
+coerced
+to
+@id
+is
+to
+be
+interpreted
+as
+an
+IRI
+.
+</del>
+<ins class="diff-chg">are
+not
+language
+tagged.
+</ins>
+</p>
+<del class="diff-old">Terms
+or
+compact
+IRIs
+used
+</del>
+</div>
+<p>
+<ins class="diff-chg">Just
+</ins>
+as
+<ins class="diff-new">in
+the
+example
+above,
+systems
+often
+need
+to
+express
+</ins>
+the
+value
+of
+a
+<del class="diff-old">@type
+key
+may
+be
+defined
+within
+the
+same
+context.
+This
+means
+</del>
+<ins class="diff-chg">property
+in
+multiple
+languages.
+Typically,
+such
+systems
+also
+try
+to
+ensure
+</ins>
+that
+<del class="diff-old">one
+may
+specify
+</del>
+<ins class="diff-chg">developers
+have
+</ins>
+a
+<del class="diff-old">term
+like
+xsd
+and
+then
+use
+xsd:integer
+within
+the
+same
+context
+definition
+-
+the
+JSON-LD
+processor
+will
+be
+able
+</del>
+<ins class="diff-chg">programmatically
+easy
+way
+</ins>
+to
+<del class="diff-old">determine
+</del>
+<ins class="diff-chg">navigate
+</ins>
+the
+<del class="diff-old">proper
+expansion
+</del>
+<ins class="diff-chg">data
+structures
+</ins>
+for
+<del class="diff-old">xsd:integer
+.
+The
+example
+below
+demonstrates
+how
+a
+JSON-LD
+author
+can
+coerce
+values
+to
+typed
+value
+</del>
+<ins class="diff-chg">the
+language-specific
+data.
+In
+this
+case,
+</ins><a class="tref internalDFN" title="language-map" href="#dfn-language-map"><ins class="diff-chg">
+language
+maps
+</ins>
+</a>
+<del class="diff-old">s,
+IRIs
+and
+lists.
+</del>
+<ins class="diff-chg">may
+be
+utilized.
+</ins>
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 34</span>: Language map expressing a property in three languages</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+<del class="diff-old">    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;age&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    },
+    &quot;homepage&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;,
+      &quot;@container&quot;: &quot;@list&quot;
+    }
+</del>
+<ins class="diff-chg">    ...
+    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@container&quot;: &quot;@language&quot;</span> }
+</ins>
+  },
+<del class="diff-old">  &quot;name&quot;: &quot;John Smith&quot;,
+  &quot;age&quot;: ,
+  &quot;homepage&quot;:
+  [
+    &quot;http://personal.example.org/&quot;,
+    &quot;http://work.example.com/jsmith/&quot;
+  ]
+</del>
+<ins class="diff-chg">  &quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
+  &quot;occupation&quot;:
+</ins>  <span class="diff">{<ins class="diff-chg">
+    &quot;ja&quot;: &quot;忍者&quot;,
+    &quot;en&quot;: &quot;Ninja&quot;,
+    &quot;cs&quot;: &quot;Nindža&quot;
+  }</span>
+  ...
+</ins>
+}
+</pre>
+</div>
+<p>
+The
+example
+above
+<del class="diff-old">would
+generate
+</del>
+<ins class="diff-chg">expresses
+exactly
+</ins>
+the
+<del class="diff-old">following
+Turtle:
+@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
+[ foaf:name &quot;John Smith&quot;;
+  foaf:age  &quot;41&quot;^^xsd:integer;
+  foaf:homepage ( &lt;http://personal.example.org/&gt; &lt;http://work.example.com/jsmith/&gt; )
+]
+.
+Terms
+may
+also
+be
+defined
+using
+absolute
+IRIs
+or
+compact
+IRIs
+.
+This
+allows
+coercion
+rules
+to
+be
+applied
+to
+keys
+which
+are
+not
+represented
+</del>
+<ins class="diff-chg">same
+information
+</ins>
+as
+<del class="diff-old">a
+simple
+term
+.
+For
+example:
+{
+  &quot;@context&quot;:
+  {
+    ,
+    &quot;&quot;:
+    {
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    },
+    &quot;&quot;:
+    {
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;foaf:name&quot;: &quot;John Smith&quot;,
+  &quot;foaf:age&quot;: ,
+  &quot;foaf:homepage&quot;:
+  [
+    &quot;http://personal.example.org/&quot;,
+    &quot;http://work.example.com/jsmith/&quot;
+  ]
+}
+In
+this
+case
+</del>
+the
+<del class="diff-old">@id
+definition
+is
+optional,
+</del>
+<ins class="diff-chg">previous
+example
+</ins>
+but
+<del class="diff-old">if
+it
+does
+exist,
+the
+compact
+IRI
+or
+IRI
+is
+treated
+as
+a
+term
+(not
+</del>
+<ins class="diff-chg">consolidates
+all
+values
+in
+</ins>
+a
+<del class="diff-old">prefix:suffix
+construct)
+so
+that
+</del>
+<ins class="diff-chg">single
+property.
+To
+access
+</ins>
+the
+<del class="diff-old">actual
+definition
+of
+</del>
+<ins class="diff-chg">value
+in
+</ins>
+a
+<del class="diff-old">prefix
+becomes
+unnecessary.
+Note
+Keys
+</del>
+<ins class="diff-chg">specific
+language
+</ins>
+in
+<del class="diff-old">the
+context
+are
+treated
+as
+terms
+</del>
+<ins class="diff-chg">a
+programming
+language
+supporting
+dot-notation
+accessors
+</ins>
+for
+<del class="diff-old">the
+purpose
+of
+expansion
+and
+value
+coercion.
+At
+times,
+this
+</del>
+<ins class="diff-chg">object
+properties,
+a
+developer
+</ins>
+may
+<del class="diff-old">result
+in
+multiple
+representations
+for
+</del>
+<ins class="diff-chg">use
+</ins>
+the
+<del class="diff-old">same
+expanded
+IRI
+.
+For
+example,
+one
+could
+specify
+that
+</del>
+<code>
+<del class="diff-old">dog
+and
+cat
+</del>
+<ins class="diff-chg">property.language
+</ins>
+</code>
+<del class="diff-old">both
+expanded
+</del>
+<ins class="diff-chg">pattern.
+For
+example,
+</ins>
+to
+<ins class="diff-new">access
+the
+occupation
+in
+English,
+a
+developer
+would
+use
+the
+following
+code
+snippet:
+</ins>
+<code>
+<del class="diff-old">http://example.com/vocab#animal
+</del>
+<ins class="diff-chg">obj.occupation.en
+</ins>
+</code>.
+<del class="diff-old">Doing
+this
+could
+be
+useful
+for
+establishing
+different
+type
+coercion
+or
+</del>
+</p>
+<p>
+<ins class="diff-chg">Third,
+it
+is
+possible
+to
+override
+the
+default
+</ins>
+language
+<del class="diff-old">specification
+rules.
+It
+also
+allows
+</del>
+<ins class="diff-chg">by
+using
+</ins>
+a
+<del class="diff-old">compact
+IRI
+(or
+even
+an
+absolute
+IRI
+</del>
+<a class="tref internalDFN" title="value-object" href="#dfn-value-object">
+<ins class="diff-chg">value
+object
+</ins></a>:</p>  <div class="example"><div class="example-title"><span>Example 35</span>: Overriding default language using an expanded value</div><pre class="example">{<ins class="diff-chg">
+  &quot;@context&quot;: {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+  },
+  &quot;name&quot;: &quot;花澄&quot;,
+  &quot;occupation&quot;: <span class="diff">{
+    &quot;@value&quot;: &quot;Scientist&quot;,
+    &quot;@language&quot;: &quot;en&quot;
+  }</span>
+}
+</ins></pre>
+<del class="diff-old">)
+</del>
+</div>
+<p>
+<ins class="diff-chg">This
+makes
+it
+possible
+</ins>
+to
+<del class="diff-old">be
+defined
+as
+something
+else
+entirely.
+For
+example,
+one
+could
+</del>
+specify
+<del class="diff-old">that
+</del>
+<ins class="diff-chg">a
+plain
+string
+by
+omitting
+</ins>
+the
+<del class="diff-old">term
+</del>
+<code>
+<del class="diff-old">http://example.org/zoo
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<del class="diff-old">should
+expand
+</del>
+<ins class="diff-chg">tag
+or
+setting
+it
+</ins>
+to
+<code>
+<del class="diff-old">http://example.org/river
+,
+but
+this
+usage
+is
+discouraged
+because
+</del>
+<ins class="diff-chg">null
+</ins></code><ins class="diff-chg">
+when
+expressing
+</ins>
+it
+<del class="diff-old">would
+lead
+to
+a
+great
+deal
+of
+confusion
+among
+developers
+attempting
+to
+understand
+the
+JSON-LD
+document.
+Type
+coercion
+is
+performed
+</del>
+using
+<del class="diff-old">the
+unexpanded
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object">
+value
+<del class="diff-old">of
+the
+key,
+which
+must
+have
+an
+exact
+match
+for
+an
+entry
+in
+the
+active
+context
+.
+</del>
+<ins class="diff-chg">object
+</ins></a>:
+</p>
+  <div class="example"><div class="example-title"><span>Example 36</span>: Removing language information using an expanded value</div><pre class="example">{
+<ins class="diff-new">  &quot;@context&quot;: {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+  },
+  &quot;name&quot;: <span class="diff">{
+    &quot;@value&quot;: &quot;Frank&quot;
+  }</span>,
+  &quot;occupation&quot;: {
+    &quot;@value&quot;: &quot;Ninja&quot;,
+    &quot;@language&quot;: &quot;en&quot;
+  },
+  &quot;speciality&quot;: &quot;手裏剣&quot;
+}
+</ins></pre>
+</div>
+</section>
+<section class="informative" id="iri-expansion-within-a-context">
+<h3>
+<span class="secno">
+<del class="diff-old">4.7
+</del>
+<ins class="diff-chg">6.10
+</ins>
+</span>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+Expansion
+<del class="diff-old">Within
+</del>
+<ins class="diff-chg">within
+</ins>
+a
+Context
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+In
+general,
+normal
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+expansion
+rules
+apply
+anywhere
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+is
+expected
+(see
+<a class="sectionRef sec-ref" href="#iris">
+<ins class="diff-chg">section
+5.2
+</ins>
+IRIs
+</a>
+).
+Within
+a
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+definition,
+this
+can
+mean
+that
+terms
+defined
+within
+the
+context
+may
+also
+be
+used
+within
+that
+context
+as
+long
+as
+there
+are
+no
+circular
+dependencies.
+For
+example,
+it
+is
+common
+to
+use
+the
+<code>
+xsd
+</code>
+namespace
+when
+defining
+<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">
+typed
+value
+</a>
+s:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 37</span>: IRI expansion within a context</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    <span class="diff">&quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;</span>,
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;age&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
+      &quot;@type&quot;: <span class="diff">&quot;xsd:integer&quot;</span>
+    },
+    &quot;homepage&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  ...
+}
+</pre>
+</div>
+<p>
+In
+this
+example,
+the
+<code>
+xsd
+</code>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+is
+defined
+and
+used
+as
+a
+<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
+prefix
+</a>
+for
+the
+<code>
+@type
+</code>
+coercion
+of
+the
+<code>
+age
+</code>
+property.
+</p>
+<p>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">Term
+</del>
+<ins class="diff-chg">Terms
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+may
+also
+be
+used
+when
+defining
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+of
+another
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 38</span>: Using a term to define the IRI of another term within a context</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    &quot;name&quot;: <span class="diff">&quot;foaf:name&quot;</span>,
+    &quot;age&quot;:
+    {
+      &quot;@id&quot;: <span class="diff">&quot;foaf:age&quot;</span>,
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    },
+    &quot;homepage&quot;:
+    {
+      &quot;@id&quot;: <span class="diff">&quot;foaf:homepage&quot;</span>,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  ...
+}
+</pre>
+</div>
+<p>
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+Compact
+IRIs
+</a>
+and
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+IRIs
+</a>
+may
+be
+used
+on
+the
+left-hand
+side
+of
+a
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+definition.
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 39</span>: Using a compact IRI as a term</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    &quot;name&quot;: &quot;foaf:name&quot;,
+    &quot;<span class="diff">foaf:age</span>&quot;:
+    {
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    },
+    &quot;<span class="diff">foaf:homepage</span>&quot;:
+    <span class="diff">{
+      &quot;@type&quot;: &quot;@id&quot;
+    }</span>
+  },
+  ...
+}
+</pre>
+</div>
+<p>
+In
+this
+example,
+the
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+compact
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+form
+is
+used
+in
+two
+different
+ways.
+In
+the
+first
+approach,
+<code>
+foaf:age
+</code>
+declares
+both
+the
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+for
+the
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+(using
+short-form)
+as
+well
+as
+the
+<code>
+@type
+</code>
+associated
+with
+the
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>.
+In
+the
+second
+approach,
+only
+the
+<code>
+@type
+</code>
+associated
+with
+the
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+</a>
+is
+specified.
+The
+<del class="diff-old">JSON-LD
+processor
+will
+derive
+the
+</del>
+full
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+for
+<code>
+foaf:homepage
+</code>
+<ins class="diff-new">is
+determined
+</ins>
+by
+looking
+up
+the
+<code>
+foaf
+</code>
+<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
+prefix
+</a>
+in
+the
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>.
+</p>
+<p>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+Absolute
+IRIs
+</a>
+may
+also
+be
+used
+in
+the
+key
+position
+in
+a
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 40</span>: Associating context definitions with absolute IRIs</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    &quot;name&quot;: &quot;foaf:name&quot;,
+    &quot;foaf:age&quot;:
+    {
+      &quot;@id&quot;: &quot;foaf:age&quot;,
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    },
+    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
+    {
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  ...
+}
+</pre>
+</div>
+<p>
+In
+order
+for
+the
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+to
+match
+above,
+the
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">must
+also
+</del>
+<ins class="diff-chg">needs
+to
+</ins>
+be
+used
+in
+the
+<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
+JSON-LD
+<del class="diff-old">document.
+</del>
+<ins class="diff-chg">document
+</ins></a>.
+Also
+note
+that
+<code>
+foaf:homepage
+</code>
+will
+not
+use
+the
+<code>
+{
+&quot;@type&quot;:
+&quot;@id&quot;
+}
+</code>
+declaration
+because
+<code>
+foaf:homepage
+</code>
+is
+not
+the
+same
+as
+<code>
+http://xmlns.com/foaf/0.1/homepage
+</code>.
+That
+is,
+<del class="diff-old">a
+JSON-LD
+processor
+will
+use
+direct
+string
+comparison
+when
+looking
+up
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<del class="diff-old">term
+</del>
+<ins class="diff-chg">terms
+</ins>
+</a>
+<del class="diff-old">s
+</del>
+<ins class="diff-chg">are
+looked
+up
+</ins>
+in
+a
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+<ins class="diff-new">using
+direct
+string
+comparison
+</ins>
+before
+<del class="diff-old">it
+applies
+</del>
+the
+<a class="tref internalDFN" title="prefix" href="#dfn-prefix">
+prefix
+</a>
+lookup
+<del class="diff-old">mechanism.
+</del>
+<ins class="diff-chg">mechanism
+is
+applied.
+</ins></p><div class="note"><div class="note-title"><span><ins class="diff-chg">
+Note
+</ins></span></div><p class=""><ins class="diff-chg">
+While
+it
+is
+possible
+to
+define
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+or
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+to
+expand
+to
+some
+other
+unrelated
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+(for
+example,
+</ins><code><ins class="diff-chg">
+foaf:name
+</ins></code><ins class="diff-chg">
+expanding
+to
+</ins><code><ins class="diff-chg">
+http://example.org/unrelated#species
+</ins></code><ins class="diff-chg">
+),
+such
+usage
+is
+strongly
+discouraged.
+</ins>
+</p>
+</div>
+<p>
+The
+only
+exception
+for
+using
+terms
+in
+the
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+is
+that
+<del class="diff-old">they
+must
+not
+be
+used
+in
+a
+</del>
+circular
+<del class="diff-old">manner.
+</del>
+<ins class="diff-chg">definitions
+are
+not
+allowed.
+</ins>
+That
+is,
+a
+definition
+of
+<em>
+<del class="diff-old">term-1
+must
+not
+</del>
+<ins class="diff-chg">term1
+</ins>
+</em>
+<ins class="diff-new">cannot
+</ins>
+depend
+on
+the
+definition
+of
+<em>
+<del class="diff-old">term-2
+</del>
+<ins class="diff-chg">term2
+</ins>
+</em>
+if
+<em>
+<del class="diff-old">term-2
+</del>
+<ins class="diff-chg">term2
+</ins>
+</em>
+also
+depends
+on
+<em>
+<del class="diff-old">term-1
+</del>
+<ins class="diff-chg">term1
+</ins>
+</em>.
+For
+example,
+the
+following
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+definition
+is
+illegal:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 41</span>: Illegal circular definition of terms within a context</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    <span class="diff">&quot;term1&quot;: &quot;term2:foo&quot;,
+    &quot;term2&quot;: &quot;term1:bar&quot;</span>
+  },
+  ...
+}
+</pre>
+</div>
+</section>
+<section class="informative" id="sets-and-lists">
+<h3>
+<span class="secno">
+<del class="diff-old">4.8
+</del>
+<ins class="diff-chg">6.11
+</ins>
+</span>
+Sets
+and
+Lists
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+A
+JSON-LD
+author
+can
+express
+multiple
+values
+in
+a
+compact
+way
+by
+using
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<del class="diff-old">array
+s.
+</del>
+<ins class="diff-chg">arrays
+</ins></a>.
+Since
+graphs
+do
+not
+describe
+ordering
+for
+links
+between
+nodes,
+arrays
+in
+JSON-LD
+do
+not
+provide
+an
+ordering
+of
+the
+<del class="diff-old">listed
+objects
+</del>
+<ins class="diff-chg">contained
+elements
+</ins>
+by
+default.
+This
+is
+exactly
+the
+opposite
+from
+regular
+JSON
+arrays,
+which
+are
+ordered
+by
+default.
+For
+example,
+consider
+the
+following
+simple
+document:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 42</span>: Multiple values with no inherent order</div><pre class="example">{
+...
+  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
+<del class="diff-old">  &quot;nick&quot;: ,
+</del>
+<ins class="diff-chg">  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;JB&quot; ]</span>,
+</ins>
+...
+}
+</pre>
+</div>
+<p>
+The
+<del class="diff-old">markup
+</del>
+<ins class="diff-chg">example
+</ins>
+shown
+above
+would
+result
+in
+<del class="diff-old">three
+triples
+</del>
+<ins class="diff-chg">the
+following
+data
+</ins>
+being
+generated,
+each
+relating
+the
+<del class="diff-old">subject
+</del>
+<ins class="diff-chg">node
+</ins>
+to
+an
+individual
+<del class="diff-old">object
+,
+</del>
+<ins class="diff-chg">value,
+</ins>
+with
+no
+inherent
+order:
+</p>
+<del class="diff-old">&lt;http://example.org/people#joebob&gt;
+   &lt;http://xmlns.com/foaf/0.1/nick&gt;
+      &quot;joe&quot; .
+&lt;http://example.org/people#joebob&gt;
+   &lt;http://xmlns.com/foaf/0.1/nick&gt;
+      &quot;bob&quot; .
+&lt;http://example.org/people#joebob&gt;
+   &lt;http://xmlns.com/foaf/0.1/nick&gt;
+&quot;jaybee&quot;
+.
+</del>
+<table class="example">
+<thead>
+<tr>
+<th>
+<ins class="diff-chg">Subject
+</ins></th><th><ins class="diff-chg">
+Property
+</ins></th><th><ins class="diff-chg">
+Value
+</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
+http://example.org/people#joebob
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/nick
+</ins></td><td><ins class="diff-chg">
+joe
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.org/people#joebob
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/nick
+</ins></td><td><ins class="diff-chg">
+bob
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.org/people#joebob
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/nick
+</ins></td><td><ins class="diff-chg">
+JB
+</ins></td></tr></tbody></table>
+<p>
+Multiple
+values
+may
+also
+be
+expressed
+using
+the
+expanded
+form:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 43</span>: Using an expanded form to set multiple values</div><pre class="example">{
+  &quot;@id&quot;: &quot;http://example.org/articles/8&quot;,
+  &quot;dc:title&quot;: <span class="diff">
+  [
+    {
+      &quot;@value&quot;: &quot;Das Kapital&quot;,
+      &quot;@language&quot;: &quot;de&quot;
+    },
+    {
+      &quot;@value&quot;: &quot;Capital&quot;,
+      &quot;@language&quot;: &quot;en&quot;
+    }
+  ]</span>
+}
+</pre>
+</div>
+<p>
+The
+<del class="diff-old">markup
+</del>
+<ins class="diff-chg">example
+</ins>
+shown
+above
+would
+generate
+the
+following
+<del class="diff-old">triples,
+</del>
+<ins class="diff-chg">data,
+</ins>
+again
+with
+no
+inherent
+order:
+</p>
+<del class="diff-old">&lt;http://example.org/articles/8&gt;
+   &lt;http://purl.org/dc/terms/title&gt;
+      &quot;Das Kapital&quot;@de .
+&lt;http://example.org/articles/8&gt;
+   &lt;http://purl.org/dc/terms/title&gt;
+&quot;Capital&quot;@en
+.
+</del>
+<table class="example">
+<thead>
+<tr>
+<th>
+<ins class="diff-chg">Subject
+</ins></th><th><ins class="diff-chg">
+Property
+</ins></th><th><ins class="diff-chg">
+Value
+</ins></th><th><ins class="diff-chg">
+Language
+</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
+http://example.org/articles/8
+</ins></td><td><ins class="diff-chg">
+http://purl.org/dc/terms/title
+</ins></td><td><ins class="diff-chg">
+Das
+Kapital
+</ins></td><td><ins class="diff-chg">
+de
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.org/articles/8
+</ins></td><td><ins class="diff-chg">
+http://purl.org/dc/terms/title
+</ins></td><td><ins class="diff-chg">
+Capital
+</ins></td><td><ins class="diff-chg">
+en
+</ins></td></tr></tbody></table>
+<p>
+As
+the
+notion
+of
+ordered
+collections
+is
+rather
+important
+in
+data
+modeling,
+it
+is
+useful
+to
+have
+specific
+language
+support.
+In
+JSON-LD,
+a
+list
+may
+be
+represented
+using
+the
+<code>
+@list
+</code>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keyword
+</a>
+as
+follows:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 44</span>: An ordered collection of values in JSON-LD</div><pre class="example">{
+...
+  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
+  &quot;foaf:nick&quot;:
+  <span class="diff">{
+    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
+  }</span>,
+...
+}
+</pre>
+</div>
+<p>
+This
+describes
+the
+use
+of
+this
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+as
+being
+ordered,
+and
+order
+is
+maintained
+when
+processing
+a
+document.
+If
+every
+use
+of
+a
+given
+multi-valued
+property
+is
+a
+list,
+this
+may
+be
+abbreviated
+by
+setting
+<code>
+@container
+</code>
+to
+<code>
+@list
+</code>
+in
+the
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>:
+</p>
+<del class="diff-old">{
+</del>
+<div class="example"><div class="example-title"><span>Example 45</span>: Specifying that a collection is ordered in the context</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+  {
+    ...
+    &quot;nick&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/nick&quot;,
+      &quot;@container&quot;: &quot;@list&quot;
+    }
+  }</span>,
+...
+  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
+  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]</span>,
+...
+}
+</pre>
+</div>
+<div class="note">
+<div class="note-title">
+<span>
+Note
+</span>
+</div>
+<p class="">
+List
+of
+lists
+are
+not
+allowed
+in
+this
+version
+of
+JSON-LD.
+<del class="diff-old">If
+a
+list
+of
+lists
+is
+detected,
+a
+JSON-LD
+processor
+will
+throw
+an
+exception.
+</del>
+This
+decision
+was
+made
+due
+to
+the
+extreme
+amount
+of
+added
+complexity
+when
+processing
+lists
+of
+lists.
+</p>
+</div>
+<p>
+<del class="diff-old">Similarly
+to
+</del>
+<ins class="diff-chg">While
+</ins>
+<code>
+@list
+<del class="diff-old">,
+there
+exists
+</del>
+</code>
+<ins class="diff-chg">is
+used
+to
+describe
+</ins><em><ins class="diff-chg">
+ordered
+lists
+</ins></em>,
+the
+<del class="diff-old">keyword
+</del>
+<code>
+@set
+</code>
+<ins class="diff-new">keyword
+is
+used
+</ins>
+to
+describe
+<em>
+unordered
+<del class="diff-old">sets.
+While
+its
+</del>
+<ins class="diff-chg">sets
+</ins></em>.<ins class="diff-chg">
+The
+</ins>
+use
+<ins class="diff-new">of
+</ins><code><ins class="diff-new">
+@set
+</ins></code>
+in
+the
+body
+of
+a
+JSON-LD
+document
+<del class="diff-old">represents
+just
+syntactic
+sugar
+that
+must
+be
+</del>
+<ins class="diff-chg">is
+</ins>
+optimized
+away
+when
+processing
+the
+document,
+<ins class="diff-new">as
+</ins>
+it
+is
+<del class="diff-old">very
+</del>
+<ins class="diff-chg">just
+syntactic
+sugar.
+However,
+</ins><code><ins class="diff-chg">
+@set
+</ins></code><ins class="diff-chg">
+is
+</ins>
+helpful
+when
+used
+within
+the
+context
+of
+a
+document.
+Values
+of
+terms
+associated
+with
+a
+<code>
+@set
+</code>
+or
+<code>
+@list
+</code>
+container
+are
+always
+represented
+in
+the
+form
+of
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+<del class="diff-old">-
+</del>
+</a>,
+even
+if
+there
+is
+just
+a
+single
+value
+that
+would
+otherwise
+be
+optimized
+to
+a
+non-array
+form
+in
+<del class="diff-old">a
+compacted
+document
+.
+</del>
+<ins class="diff-chg">compact
+form
+(see
+</ins><a class="sectionRef sec-ref" href="#compact-document-form"><ins class="diff-chg">
+section
+6.18
+Compact
+Document
+Form
+</ins></a><ins class="diff-chg">
+).
+</ins>
+This
+makes
+post-processing
+of
+<del class="diff-old">the
+data
+</del>
+<ins class="diff-chg">JSON-LD
+documents
+</ins>
+easier
+as
+the
+data
+is
+always
+in
+array
+form,
+even
+if
+the
+array
+only
+contains
+a
+single
+value.
+</p>
+</section>
+<section class="informative" id="reverse-properties">
+<h3>
+<del class="diff-old">Note
+</del>
+<span class="secno">
+<ins class="diff-chg">6.12
+</ins>
+</span>
+<ins class="diff-new">Reverse
+Properties
+</ins></h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
+Feature
+at
+Risk
+2
+</ins></span>:<ins class="diff-new">
+Reverse
+properties
+</ins>
+</div>
+<del class="diff-old">The
+use
+of
+@container
+in
+</del>
+<div class="atrisk">
+<p class="atrisk-head">
+<ins class="diff-chg">Note:
+This
+feature
+is
+</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-chg">
+&quot;at
+risk&quot;
+</ins></a><ins class="diff-chg">
+and
+may
+be
+removed
+from
+this
+specification
+based
+on
+feedback.
+Please
+send
+feedback
+to
+</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-chg">
+public-rdf-comments@w3.org
+</ins></a>.<ins class="diff-chg">
+For
+</ins>
+the
+<del class="diff-old">body
+of
+a
+</del>
+<ins class="diff-chg">current
+status
+see
+</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
+features
+&quot;at
+risk&quot;
+in
+</ins>
+JSON-LD
+<del class="diff-old">document,
+i.e.,
+outside
+@context
+must
+</del>
+<ins class="diff-chg">1.0
+</ins></a></p><p><ins class="diff-chg">
+Reverse
+properties
+might
+</ins>
+be
+<del class="diff-old">ignored
+by
+</del>
+<ins class="diff-chg">removed
+from
+</ins>
+JSON-LD
+<del class="diff-old">processors.
+</del>
+<ins class="diff-chg">1.0
+if
+implementation
+experience
+reveals
+problems
+with
+supporting
+this
+feature.
+</ins>
+</p>
+</div>
+<del class="diff-old">4.9
+Embedding
+</del>
+</div>
+<p>
+<del class="diff-old">Object
+embedding
+is
+a
+</del>
+JSON-LD
+<del class="diff-old">feature
+</del>
+<ins class="diff-chg">serializes
+directed
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+graphs
+</ins></a>.<ins class="diff-chg">
+That
+means
+</ins>
+that
+<del class="diff-old">allows
+an
+author
+to
+use
+subject
+definitions
+as
+</del>
+<ins class="diff-chg">every
+</ins>
+<a class="tref internalDFN" title="property" href="#dfn-property">
+property
+</a>
+<del class="diff-old">values.
+This
+</del>
+<ins class="diff-chg">points
+from
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a><ins class="diff-chg">
+to
+another
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
+value
+</ins></a>.<ins class="diff-chg">
+However,
+in
+some
+cases,
+it
+</ins>
+is
+<ins class="diff-new">desirable
+to
+serialize
+in
+the
+reverse
+direction.
+Consider
+for
+example
+the
+case
+where
+</ins>
+a
+<del class="diff-old">commonly
+</del>
+<ins class="diff-chg">person
+and
+its
+children
+should
+be
+described
+in
+a
+document.
+If
+the
+</ins>
+used
+<del class="diff-old">mechanism
+for
+creating
+</del>
+<ins class="diff-chg">vocabulary
+does
+not
+provide
+</ins>
+a
+<del class="diff-old">parent-child
+relationship
+between
+two
+subject
+</del>
+<em>
+<ins class="diff-chg">children
+</ins></em><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
+property
+</ins>
+</a>
+<del class="diff-old">s.
+The
+example
+shows
+two
+subjects
+related
+by
+</del>
+<ins class="diff-chg">but
+just
+a
+</ins><em><ins class="diff-chg">
+parent
+</ins></em><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
+property
+</ins></a>,<ins class="diff-chg">
+every
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a><ins class="diff-chg">
+representing
+</ins>
+a
+<ins class="diff-new">child
+would
+have
+to
+be
+expressed
+with
+a
+</ins><a class="tref internalDFN" title="property" href="#dfn-property">
+property
+<del class="diff-old">from
+</del>
+</a>
+<ins class="diff-chg">pointing
+to
+</ins>
+the
+<del class="diff-old">first
+subject:
+</del>
+<ins class="diff-chg">parent
+as
+in
+the
+following
+example.
+</ins>
+</p>
+<del class="diff-old">  {
+...
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;&quot;:
+</del>
+  <div class="example"><div class="example-title"><span>Example 46</span>: A document with children linking to their parent</div><pre class="example">[
+  {
+<del class="diff-old">    &quot;&quot;,
+    &quot;&quot;,
+</del>
+    <span class="diff">&quot;@id&quot;: &quot;#homer&quot;</span>,
+<ins class="diff-chg">    &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;
+  },
+  {
+    &quot;@id&quot;: &quot;#bart&quot;,
+    &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;,
+</ins>    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span><ins class="diff-chg">
+  },
+  {
+    &quot;@id&quot;: &quot;#lisa&quot;,
+    &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;,
+</ins>    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span>
+  }
+<del class="diff-old">...
+}
+</del>
+<ins class="diff-chg">]
+</ins>
+</pre>
+</div>
+<p>
+<del class="diff-old">A
+subject
+definition
+,
+like
+the
+one
+used
+above,
+may
+be
+used
+in
+any
+value
+position
+in
+the
+body
+of
+a
+JSON-LD
+document.
+</del>
+<ins class="diff-chg">Expressing
+such
+data
+is
+much
+simpler
+by
+using
+JSON-LD's
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>:
+</p>
+  <div class="example"><div class="example-title"><span>Example 47</span>: A person and its children using a reverse property</div><pre class="example">{
+<ins class="diff-chg">  &quot;@id&quot;: &quot;#homer&quot;,
+  &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;,
+</ins>  <span class="diff">&quot;@reverse&quot;</span>: {    <span class="diff">&quot;http://example.com/vocab#parent&quot;</span>: [<ins class="diff-chg">
+      {
+        &quot;@id&quot;: &quot;#bart&quot;,
+        &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;
+      },
+      {
+        &quot;@id&quot;: &quot;#lisa&quot;,
+        &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;
+      }
+    ]
+  }
+}
+</ins></pre>
+<del class="diff-old">4.10
+Named
+Graphs
+</del>
+</div>
+<p>
+The
+<code>
+<del class="diff-old">@graph
+</del>
+<ins class="diff-chg">@reverse
+</ins>
+</code>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keyword
+</a>
+<del class="diff-old">is
+used
+to
+express
+a
+set
+of
+JSON-LD
+subject
+definition
+s
+that
+may
+not
+be
+directly
+related
+to
+one
+another
+through
+a
+property.
+The
+mechanism
+may
+</del>
+<ins class="diff-chg">can
+</ins>
+also
+be
+used
+<del class="diff-old">where
+embedding
+</del>
+<ins class="diff-chg">in
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definitions
+</ins>
+</a>
+<del class="diff-old">is
+not
+desirable
+</del>
+to
+<ins class="diff-new">create
+reverse
+properties
+as
+shown
+in
+</ins>
+the
+<del class="diff-old">application.
+For
+</del>
+<ins class="diff-chg">following
+</ins>
+example:
+</p>
+<del class="diff-old">  {
+  &quot;@context&quot;: ...,
+  &quot;&quot;:
+  [
+</del>
+  <div class="example"><div class="example-title"><span>Example 48</span>: Using @reverse to define reverse properties</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://example.com/vocab#name&quot;,
+</ins>    <span class="diff">&quot;children&quot;: { &quot;@reverse&quot;: &quot;http://example.com/vocab#parent&quot; }</span><ins class="diff-chg">
+  },
+  &quot;@id&quot;: &quot;#homer&quot;,
+  &quot;name&quot;: &quot;Homer&quot;,
+</ins>  <span class="diff">&quot;children&quot;</span>: [
+    {
+<del class="diff-old">      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;,
+      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
+</del>
+<ins class="diff-chg">      &quot;@id&quot;: &quot;#bart&quot;,
+      &quot;name&quot;: &quot;Bart&quot;
+</ins>
+    },
+    {
+<del class="diff-old">      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
+      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
+</del>
+<ins class="diff-chg">      &quot;@id&quot;: &quot;#lisa&quot;,
+      &quot;name&quot;: &quot;Lisa&quot;
+</ins>
+    }
+  ]
+}
+</pre>
+</div>
+</section>
+<section class="informative" id="named-graphs">
+<h3>
+<span class="secno">
+<ins class="diff-new">6.13
+</ins></span><ins class="diff-new">
+Named
+Graphs
+</ins></h3>
+<p>
+<del class="diff-old">In
+this
+case,
+embedding
+doesn't
+work
+as
+each
+subject
+definition
+references
+the
+other.
+Using
+the
+@graph
+keyword
+allows
+multiple
+resources
+to
+be
+defined
+within
+an
+array
+,
+and
+allows
+the
+use
+of
+a
+shared
+context
+.
+When
+used
+in
+a
+JSON
+object
+that
+is
+not
+otherwise
+a
+subject
+definition
+,
+this
+describes
+resources
+in
+the
+</del>
+<em>
+<del class="diff-old">default
+graph
+.
+</del>
+This
+<ins class="diff-new">section
+</ins>
+is
+<del class="diff-old">equivalent
+to
+using
+multiple
+subject
+definitions
+in
+array
+and
+defining
+the
+@context
+within
+each
+subject
+definition
+:
+
+  {
+
+    &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+    &quot;@type&quot;: &quot;foaf:Person&quot;,
+    &quot;name&quot;: &quot;Manu Sporny&quot;,
+    &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
+  },
+  {
+
+    &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+    &quot;@type&quot;: &quot;foaf:Person&quot;,
+    &quot;name&quot;: &quot;Gregg Kellogg&quot;,
+    &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
+  }
+]
+</del>
+<ins class="diff-chg">non-normative.
+</ins></em>
+</p>
+<p>
+<del class="diff-old">JSON-LD
+allows
+you
+</del>
+<ins class="diff-chg">At
+times,
+it
+is
+necessary
+</ins>
+to
+<del class="diff-old">name
+things
+on
+the
+Web
+</del>
+<ins class="diff-chg">make
+statements
+about
+a
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+JSON-LD
+graph
+</ins></a><ins class="diff-chg">
+itself,
+rather
+than
+just
+a
+single
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a>.<ins class="diff-chg">
+This
+can
+be
+done
+</ins>
+by
+<del class="diff-old">assigning
+an
+</del>
+<ins class="diff-chg">grouping
+a
+set
+of
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+nodes
+</ins></a><ins class="diff-chg">
+using
+the
+</ins>
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">@graph
+</ins>
+</code>
+<del class="diff-old">to
+them,
+which
+is
+typically
+an
+IRI
+</del>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-chg">keyword
+</ins>
+</a>.
+<del class="diff-old">This
+notion
+extends
+to
+the
+ability
+to
+identify
+graphs
+in
+the
+same
+manner.
+</del>
+A
+developer
+may
+<ins class="diff-new">also
+</ins>
+name
+data
+expressed
+using
+the
+<code>
+@graph
+</code>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keyword
+</a>
+by
+pairing
+it
+with
+an
+<code>
+@id
+</code>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keyword
+<del class="diff-old">.
+This
+enables
+the
+developer
+to
+make
+statements
+about
+a
+linked
+data
+graph
+</del>
+</a>
+<del class="diff-old">itself,
+rather
+than
+just
+a
+single
+subject
+.
+</del>
+<ins class="diff-chg">as
+shown
+in
+the
+following
+example:
+</ins>
+</p>
+<del class="diff-old">  {
+  &quot;@context&quot;: ...,
+</del>
+  <div class="example"><div class="example-title"><span>Example 49</span>: Identifying and making statements about a graph</div><pre class="example">{
+<ins class="diff-chg">  &quot;@context&quot;: {
+    &quot;generatedAt&quot;: {
+      &quot;@id&quot;: &quot;http://www.w3.org/ns/prov#generatedAtTime&quot;,
+      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#date&quot;
+    },
+    &quot;Person&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+</ins>
+  <span class="diff">&quot;@id&quot;: &quot;http://example.org/graphs/73&quot;,
+<del class="diff-old">  &quot;asOf&quot;: { &quot;@value&quot;: &quot;2012-04-09&quot;, &quot;@type&quot;: &quot;xsd:date&quot; },
+</del>
+<ins class="diff-chg">  &quot;generatedAt&quot;: &quot;2012-04-09&quot;,
+</ins>
+  &quot;@graph&quot;:</span>
+  [
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+<del class="diff-old">      &quot;@type&quot;: &quot;foaf:Person&quot;,
+</del>
+<ins class="diff-chg">      &quot;@type&quot;: &quot;Person&quot;,
+</ins>
+      &quot;name&quot;: &quot;Manu Sporny&quot;,
+      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+<del class="diff-old">      &quot;@type&quot;: &quot;foaf:Person&quot;,
+</del>
+<ins class="diff-chg">      &quot;@type&quot;: &quot;Person&quot;,
+</ins>
+      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
+      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
+    }
+  ]
+}
+</pre>
+</div>
+<p>
+The
+example
+above
+expresses
+a
+<a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">
+named
+<del class="diff-old">linked
+data
+</del>
+graph
+</a>
+that
+is
+identified
+by
+the
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<code>
+http://example.org/graphs/73
+</code>.
+That
+graph
+is
+composed
+of
+the
+statements
+about
+Manu
+and
+Gregg.
+<del class="diff-old">Meta-data
+</del>
+<ins class="diff-chg">Metadata
+</ins>
+about
+the
+graph
+itself
+is
+<del class="diff-old">also
+</del>
+expressed
+via
+the
+<code>
+<del class="diff-old">asOf
+</del>
+<ins class="diff-chg">generatedAt
+</ins>
+</code>
+property,
+which
+specifies
+when
+the
+<del class="diff-old">information
+</del>
+<ins class="diff-chg">graph
+</ins>
+was
+<del class="diff-old">retrieved
+from
+</del>
+<ins class="diff-chg">generated.
+An
+alternative
+view
+of
+</ins>
+the
+<del class="diff-old">Web.
+</del>
+<ins class="diff-chg">information
+above
+is
+represented
+in
+table
+form
+below:
+</ins>
+</p>
+<table class="example">
+<thead>
+<tr>
+<th>
+<ins class="diff-chg">Graph
+</ins></th><th><ins class="diff-chg">
+Subject
+</ins></th><th><ins class="diff-chg">
+Property
+</ins></th><th><ins class="diff-chg">
+Value
+</ins></th><th><ins class="diff-chg">
+Value
+Type
+</ins></th></tr>
+<del class="diff-old">Issue
+3
+</del>
+</thead>
+<tbody>
+<tr>
+<td>
+</td>
+<td>
+<ins class="diff-chg">http://example.org/graphs/73
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/ns/prov#generatedAtTime
+</ins></td><td><ins class="diff-chg">
+2012-04-09
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/2001/XMLSchema#date
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.org/graphs/73
+</ins></td><td><ins class="diff-chg">
+http://manu.sporny.org/i/public
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/2001/XMLSchema#type
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/Person
+</ins></td><td>
+</td>
+</tr>
+<tr>
+<td>
+<ins class="diff-chg">http://example.org/graphs/73
+</ins></td><td><ins class="diff-chg">
+http://manu.sporny.org/i/public
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/name
+</ins></td><td><ins class="diff-chg">
+Manu
+Sporny
+</ins></td><td>
+<del class="diff-old">These
+examples
+could
+all
+have
+TriG
+definitions
+</del>
+</td>
+</tr>
+<tr>
+<td>
+<ins class="diff-chg">http://example.org/graphs/73
+</ins></td><td><ins class="diff-chg">
+http://manu.sporny.org/i/public
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/knows
+</ins></td><td><ins class="diff-chg">
+http://greggkellogg.net/foaf#me
+</ins></td><td></td></tr><tr><td><ins class="diff-chg">
+http://example.org/graphs/73
+</ins></td><td><ins class="diff-chg">
+http://greggkellogg.net/foaf#me
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/2001/XMLSchema#type
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/Person
+</ins></td><td></td></tr><tr><td><ins class="diff-chg">
+http://example.org/graphs/73
+</ins></td><td><ins class="diff-chg">
+http://greggkellogg.net/foaf#me
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/name
+</ins></td><td><ins class="diff-chg">
+Gregg
+Kellogg
+</ins></td><td></td></tr><tr><td><ins class="diff-chg">
+http://example.org/graphs/73
+</ins></td><td><ins class="diff-chg">
+http://greggkellogg.net/foaf#me
+</ins></td><td><ins class="diff-chg">
+http://xmlns.com/foaf/0.1/knows
+</ins></td><td><ins class="diff-chg">
+http://manu.sporny.org/i/public
+</ins></td><td></td></tr></tbody></table><p><ins class="diff-chg">
+When
+a
+JSON-LD
+document's
+top-level
+structure
+is
+an
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+object
+</ins></a><ins class="diff-chg">
+that
+contains
+no
+other
+</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
+properties
+</ins></a><ins class="diff-chg">
+than
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+and
+optionally
+</ins><code><ins class="diff-chg">
+@context
+</ins></code><ins class="diff-chg">
+(properties
+that
+are
+not
+mapped
+to
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+are
+ignored),
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+is
+considered
+to
+express
+the
+otherwise
+implicit
+</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
+default
+graph
+</ins></a>.<ins class="diff-chg">
+This
+mechanism
+can
+be
+useful
+when
+a
+number
+</ins>
+of
+<del class="diff-old">their
+RDF
+results,
+but
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">nodes
+</ins></a><ins class="diff-chg">
+exist
+at
+the
+document's
+top
+level
+</ins>
+that
+<del class="diff-old">would
+involve
+adding
+RDF
+earlier
+</del>
+<ins class="diff-chg">share
+the
+same
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins></a>,<ins class="diff-chg">
+which
+is,
+e.g.,
+the
+case
+when
+a
+document
+is
+</ins><a href="#flattened-document-form"><ins class="diff-chg">
+flattened
+</ins></a>.<ins class="diff-chg">
+The
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+keyword
+collects
+such
+nodes
+</ins>
+in
+<ins class="diff-new">an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+and
+allows
+</ins>
+the
+<del class="diff-old">document.
+</del>
+<ins class="diff-chg">use
+of
+a
+shared
+context.
+</ins>
+</p>
+  <div class="example"><div class="example-title"><span>Example 50</span>: Using @graph to explicitly express the default graph</div><pre class="example">{
+<ins class="diff-new">  &quot;@context&quot;: ...,
+  &quot;<span class="diff">@graph</span>&quot;:
+  [
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;,
+      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
+      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
+    }
+  ]
+}
+</ins></pre>
+</div>
+<p>
+<ins class="diff-new">In
+this
+case,
+embedding
+doesn't
+work
+as
+each
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a><ins class="diff-new">
+references
+the
+other.
+This
+is
+equivalent
+to
+using
+multiple
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+objects
+</ins></a><ins class="diff-new">
+in
+array
+and
+defining
+the
+</ins><code><ins class="diff-new">
+@context
+</ins></code><ins class="diff-new">
+within
+each
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a>:</p>  <div class="example"><div class="example-title"><span>Example 51</span>: Context needs to be duplicated if @graph is not used</div><pre class="example">[<ins class="diff-new">
+  {
+</ins>    <span class="diff">&quot;@context&quot;: ...,</span><ins class="diff-new">
+    &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+    &quot;@type&quot;: &quot;foaf:Person&quot;,
+    &quot;name&quot;: &quot;Manu Sporny&quot;,
+    &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
+  },
+  {
+</ins>    <span class="diff">&quot;@context&quot;: ...,</span><ins class="diff-new">
+    &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+    &quot;@type&quot;: &quot;foaf:Person&quot;,
+    &quot;name&quot;: &quot;Gregg Kellogg&quot;,
+    &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
+  }
+]
+</ins></pre>
+</div>
+</section>
+<section class="informative" id="identifying-blank-nodes">
+<h3>
+<span class="secno">
+<del class="diff-old">4.11
+</del>
+<ins class="diff-chg">6.14
+</ins>
+</span>
+Identifying
+<del class="diff-old">Unlabeled
+</del>
+<ins class="diff-chg">Blank
+</ins>
+Nodes
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+At
+times,
+it
+becomes
+necessary
+to
+be
+able
+to
+express
+information
+without
+being
+able
+to
+<del class="diff-old">specify
+</del>
+<ins class="diff-chg">uniquely
+identify
+</ins>
+the
+<del class="diff-old">subject.
+Typically,
+this
+</del>
+<a class="tref internalDFN" title="node" href="#dfn-node">
+<ins class="diff-chg">node
+</ins></a><ins class="diff-chg">
+with
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.<ins class="diff-chg">
+This
+</ins>
+type
+of
+node
+is
+called
+<del class="diff-old">an
+unlabeled
+node
+or
+</del>
+a
+<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
+blank
+node
+<del class="diff-old">(see
+[
+RDF-CONCEPTS
+]
+Section
+3.4:
+Blank
+Nodes
+).
+In
+JSON-LD,
+unlabeled
+node
+identifiers
+are
+automatically
+created
+if
+a
+subject
+is
+</del>
+</a>.
+<ins class="diff-chg">JSON-LD
+does
+</ins>
+not
+<del class="diff-old">specified
+</del>
+<ins class="diff-chg">require
+all
+nodes
+to
+be
+identified
+</ins>
+using
+<del class="diff-old">the
+</del>
+<code>
+@id
+<del class="diff-old">keyword
+.
+</del>
+</code>.
+However,
+<del class="diff-old">authors
+</del>
+<ins class="diff-chg">some
+graph
+topologies
+</ins>
+may
+<del class="diff-old">provide
+</del>
+<ins class="diff-chg">require
+</ins>
+identifiers
+<del class="diff-old">for
+unlabeled
+nodes
+by
+</del>
+<ins class="diff-chg">to
+be
+serializable.
+Graphs
+containing
+loops,
+e.g.,
+cannot
+be
+serialized
+</ins>
+using
+<ins class="diff-new">embedding
+alone,
+</ins><code><ins class="diff-new">
+@id
+</ins></code><ins class="diff-new">
+must
+be
+used
+to
+connect
+</ins>
+the
+<del class="diff-old">special
+</del>
+<ins class="diff-chg">nodes.
+In
+these
+situations,
+one
+can
+use
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a>,<ins class="diff-chg">
+which
+look
+like
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+using
+an
+underscore
+(
+</ins>
+<code>
+_
+</code>
+<del class="diff-old">(underscore)
+prefix
+.
+</del>
+<ins class="diff-chg">)
+as
+scheme.
+</ins>
+This
+allows
+one
+to
+reference
+the
+node
+locally
+within
+the
+document,
+but
+makes
+it
+impossible
+to
+reference
+the
+node
+from
+an
+external
+document.
+The
+<del class="diff-old">unlabeled
+</del>
+<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
+<ins class="diff-chg">blank
+</ins>
+node
+identifier
+</a>
+is
+scoped
+to
+the
+document
+in
+which
+it
+is
+used.
+</p>
+<del class="diff-old">{
+...
+  &quot;@id&quot;: &quot;&quot;,
+...
+</del>
+  <div class="example"><div class="example-title"><span>Example 52</span>: Specifying a local blank node identifier</div><pre class="example">{
+<ins class="diff-chg">   ...
+   &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot;,
+   &quot;name&quot;: &quot;Secret Agent 1&quot;,
+   &quot;knows&quot;:
+     {
+       &quot;name&quot;: &quot;Secret Agent 2&quot;,
+       &quot;knows&quot;: { &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot; }
+     }
+</ins>
+}
+</pre>
+</div>
+<p>
+The
+example
+above
+<del class="diff-old">would
+set
+the
+subject
+</del>
+<ins class="diff-chg">contains
+information
+about
+</ins>
+to
+<del class="diff-old">_:foo
+,
+which
+</del>
+<ins class="diff-chg">secrete
+agents
+that
+cannot
+be
+identified
+with
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.<ins class="diff-chg">
+While
+expressing
+that
+</ins><em><ins class="diff-chg">
+agent
+1
+</ins></em><ins class="diff-chg">
+knows
+</ins><em><ins class="diff-chg">
+agent
+2
+</ins></em><ins class="diff-chg">
+is
+possible
+without
+using
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a>,<ins class="diff-chg">
+it
+is
+necessary
+assign
+</ins><em><ins class="diff-chg">
+agent
+1
+</ins></em><ins class="diff-chg">
+an
+identifier
+so
+that
+it
+</ins>
+can
+<del class="diff-old">then
+</del>
+be
+<del class="diff-old">used
+elsewhere
+in
+the
+JSON-LD
+document
+to
+refer
+back
+to
+the
+unlabeled
+</del>
+<ins class="diff-chg">referenced
+from
+</ins><em><ins class="diff-chg">
+agent
+2
+</ins></em>.</p><p><ins class="diff-chg">
+It
+is
+worth
+nothing
+that
+blank
+</ins>
+node
+<del class="diff-old">.
+</del>
+<ins class="diff-chg">identifiers
+may
+be
+relabeled
+during
+processing.
+</ins>
+If
+a
+developer
+finds
+that
+they
+refer
+to
+the
+<del class="diff-old">unlabeled
+</del>
+<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
+<ins class="diff-chg">blank
+</ins>
+node
+</a>
+more
+than
+once,
+they
+should
+consider
+naming
+the
+node
+using
+a
+<del class="diff-old">de-referenceable
+</del>
+<ins class="diff-chg">dereferenceable
+</ins>
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+so
+that
+it
+can
+<ins class="diff-new">also
+</ins>
+be
+referenced
+<del class="diff-old">also
+</del>
+from
+other
+documents.
+</p>
+</section>
+<section class="informative" id="aliasing-keywords">
+<h3>
+<span class="secno">
+<del class="diff-old">4.12
+</del>
+<ins class="diff-chg">6.15
+</ins>
+</span>
+Aliasing
+Keywords
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+Each
+of
+the
+JSON-LD
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keywords
+</a>,
+except
+for
+<code>
+@context
+</code>,
+may
+be
+aliased
+to
+application-specific
+keywords.
+This
+feature
+allows
+legacy
+JSON
+content
+to
+be
+utilized
+by
+JSON-LD
+by
+re-using
+JSON
+keys
+that
+already
+exist
+in
+legacy
+documents.
+This
+feature
+also
+allows
+developers
+to
+design
+domain-specific
+implementations
+using
+only
+the
+JSON-LD
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>.
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 53</span>: Aliasing keywords</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+     <span class="diff">&quot;url&quot;: &quot;@id&quot;</span>,
+     <span class="diff">&quot;a&quot;: &quot;@type&quot;</span>,
+<del class="diff-old">     &quot;name&quot;: &quot;http://schema.org/name&quot;
+</del>
+<ins class="diff-chg">     &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;
+</ins>
+  },
+  &quot;<span class="diff">url</span>&quot;: &quot;http://example.com/about#gregg&quot;,
+<del class="diff-old">  &quot;&quot;: &quot;http://schema.org/Person&quot;,
+</del>
+<ins class="diff-chg">  &quot;<span class="diff">a</span>&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
+</ins>
+  &quot;name&quot;: &quot;Gregg Kellogg&quot;
+}
+</pre>
+</div>
+<p>
+In
+the
+example
+above,
+the
+<code>
+@id
+</code>
+and
+<code>
+@type
+</code>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+keywords
+</a>
+have
+been
+given
+the
+aliases
+<strong>
+url
+</strong>
+and
+<strong>
+a
+</strong>,
+respectively.
+</p>
+<p>
+<ins class="diff-new">Since
+keywords
+cannot
+be
+redefined,
+they
+can
+also
+not
+be
+aliased
+to
+other
+keywords.
+</ins></p></section><section class="informative" id="data-indexing"><h3><span class="secno"><ins class="diff-new">
+6.16
+</ins></span><ins class="diff-new">
+Data
+Indexing
+</ins></h3><p><em><ins class="diff-new">
+This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-new">
+Databases
+are
+typically
+used
+to
+make
+access
+to
+data
+more
+efficient.
+Developers
+often
+extend
+this
+sort
+of
+functionality
+into
+their
+application
+data
+to
+deliver
+similar
+performance
+gains.
+Often
+this
+data
+does
+not
+have
+any
+meaning
+from
+a
+Linked
+Data
+standpoint,
+but
+is
+still
+useful
+for
+an
+application.
+</ins></p><p><ins class="diff-new">
+JSON-LD
+introduces
+the
+notion
+of
+</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-new">
+index
+maps
+</ins></a><ins class="diff-new">
+that
+can
+be
+used
+to
+structure
+data
+into
+a
+form
+that
+is
+more
+efficient
+to
+access.
+The
+data
+indexing
+feature
+allows
+an
+author
+to
+structure
+data
+using
+a
+simple
+key-value
+map
+where
+the
+keys
+do
+not
+map
+to
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
+IRIs
+</ins></a>.<ins class="diff-new">
+This
+enables
+direct
+access
+to
+data
+instead
+of
+having
+to
+scan
+an
+array
+in
+search
+of
+a
+specific
+item.
+In
+JSON-LD
+such
+data
+can
+be
+specified
+by
+associating
+the
+</ins><code><ins class="diff-new">
+@index
+</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
+keyword
+</ins></a><ins class="diff-new">
+with
+a
+</ins><code><ins class="diff-new">
+@container
+</ins></code><ins class="diff-new">
+declaration
+in
+the
+context:
+</ins></p>  <div class="example"><div class="example-title"><span>Example 54</span>: Indexing data in JSON-LD</div><pre class="example">{<ins class="diff-new">
+  &quot;@context&quot;:
+  {
+     &quot;schema&quot;: &quot;http://schema.org/&quot;,
+     &quot;name&quot;: &quot;schema:name&quot;,
+     &quot;body&quot;: &quot;schema:articleBody&quot;,
+     &quot;words&quot;: &quot;schema:wordCount&quot;,
+     &quot;post&quot;: {
+       &quot;@id&quot;: &quot;schema:blogPost&quot;,
+</ins>       <span class="diff">&quot;@container&quot;: &quot;@index&quot;</span><ins class="diff-new">
+     }
+  },
+  &quot;@id&quot;: &quot;http://example.com/&quot;,
+  &quot;@type&quot;: &quot;schema:Blog&quot;,
+  &quot;name&quot;: &quot;World Financial News&quot;,
+</ins>  <span class="diff">&quot;post&quot;: {<ins class="diff-new">
+     &quot;en&quot;: {
+       &quot;@id&quot;: &quot;http://example.com/posts/1/en&quot;,
+       &quot;body&quot;: &quot;World commodities were up today with heavy trading of crude oil...&quot;,
+       &quot;words&quot;: 1539
+     },
+     &quot;de&quot;: {
+       &quot;@id&quot;: &quot;http://example.com/posts/1/de&quot;,
+       &quot;body&quot;: &quot;Die Werte an Warenbörsen stiegen im Sog eines starken Handels von Rohöl...&quot;,
+       &quot;words&quot;: 1204
+     }</span>
+  }
+}
+</ins></pre>
+</div>
+<p>
+<ins class="diff-chg">In
+the
+example
+above,
+the
+</ins><strong><ins class="diff-chg">
+blogPost
+</ins></strong><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+has
+been
+marked
+as
+an
+</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
+index
+map
+</ins></a>.<ins class="diff-chg">
+The
+</ins><strong><ins class="diff-chg">
+en
+</ins></strong>,<strong><ins class="diff-chg">
+de
+</ins></strong>,<ins class="diff-chg">
+and
+</ins><strong><ins class="diff-chg">
+ja
+</ins></strong><ins class="diff-chg">
+keys
+will
+be
+ignored
+semantically,
+but
+preserved
+syntactically,
+by
+the
+JSON-LD
+Processor.
+This
+allows
+a
+developer
+to
+access
+the
+German
+version
+of
+the
+</ins><strong><ins class="diff-chg">
+blogPost
+</ins></strong><ins class="diff-chg">
+using
+the
+following
+code
+snippet:
+</ins><code><ins class="diff-chg">
+obj.blogPost.de
+</ins></code>.</p><p><ins class="diff-chg">
+The
+interpretation
+of
+the
+data
+above
+is
+expressed
+in
+the
+table
+below.
+Note
+how
+the
+index
+keys
+do
+not
+appear
+in
+the
+Linked
+Data
+below,
+but
+would
+continue
+to
+exist
+if
+the
+document
+were
+compacted
+or
+expanded
+(see
+</ins><a class="sectionRef sec-ref" href="#compact-document-form"><ins class="diff-chg">
+section
+6.18
+Compact
+Document
+Form
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="sectionRef sec-ref" href="#expanded-document-form"><ins class="diff-chg">
+section
+6.17
+Expanded
+Document
+Form
+</ins></a><ins class="diff-chg">
+)
+using
+a
+JSON-LD
+processor:
+</ins></p><table class="example"><thead><tr><th><ins class="diff-chg">
+Subject
+</ins></th><th><ins class="diff-chg">
+Property
+</ins></th><th><ins class="diff-chg">
+Value
+</ins></th></tr></thead><tbody><tr><td><ins class="diff-chg">
+http://example.com/
+</ins></td><td><ins class="diff-chg">
+http://www.w3.org/1999/02/22-rdf-syntax-ns#type
+</ins></td><td><ins class="diff-chg">
+http://schema.org/Blog
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.com/
+</ins></td><td><ins class="diff-chg">
+http://schema.org/name
+</ins></td><td><ins class="diff-chg">
+World
+Financial
+News
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.com/
+</ins></td><td><ins class="diff-chg">
+http://schema.org/blogPost
+</ins></td><td><ins class="diff-chg">
+http://example.com/posts/1/en
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.com/
+</ins></td><td><ins class="diff-chg">
+http://schema.org/blogPost
+</ins></td><td><ins class="diff-chg">
+http://example.com/posts/1/de
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.com/posts/1/en
+</ins></td><td><ins class="diff-chg">
+http://schema.org/articleBody
+</ins></td><td><ins class="diff-chg">
+World
+commodities
+were
+up
+today
+with
+heavy
+trading
+of
+crude
+oil...
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.com/posts/1/en
+</ins></td><td><ins class="diff-chg">
+http://schema.org/wordCount
+</ins></td><td><ins class="diff-chg">
+1539
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.com/posts/1/de
+</ins></td><td><ins class="diff-chg">
+http://schema.org/articleBody
+</ins></td><td><ins class="diff-chg">
+Die
+Werte
+an
+Warenbörsen
+stiegen
+im
+Sog
+eines
+starken
+Handels
+von
+Rohöl...
+</ins></td></tr><tr><td><ins class="diff-chg">
+http://example.com/posts/1/de
+</ins></td><td><ins class="diff-chg">
+http://schema.org/wordCount
+</ins></td><td><ins class="diff-chg">
+1204
+</ins></td></tr></tbody></table></section><section class="informative" id="expanded-document-form">
+<h3>
+<span class="secno">
+<del class="diff-old">4.13
+</del>
+<ins class="diff-chg">6.17
+</ins>
+</span>
+Expanded
+Document
+Form
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+The
+JSON-LD
+<ins class="diff-new">Processing
+Algorithms
+and
+</ins>
+API
+<ins class="diff-new">specification
+</ins>
+[
+<cite>
+<a class="bibref" href="#bib-JSON-LD-API">
+JSON-LD-API
+</a>
+</cite>
+]
+defines
+<del class="diff-old">an
+</del>
+<ins class="diff-chg">a
+</ins>
+method
+for
+<em>
+expanding
+</em>
+a
+JSON-LD
+document.
+Expansion
+is
+the
+process
+of
+taking
+a
+JSON-LD
+document
+and
+applying
+a
+<code>
+@context
+</code>
+such
+that
+all
+IRIs,
+types,
+and
+values
+are
+expanded
+so
+that
+the
+<code>
+@context
+</code>
+is
+no
+longer
+necessary.
+</p>
+<p>
+For
+example,
+assume
+the
+following
+JSON-LD
+input
+document:
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 55</span>: Sample JSON-LD document</div><pre class="example">{
+   &quot;@context&quot;:
+   {
+      &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+      &quot;homepage&quot;: {
+        &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+<del class="diff-old">        &quot;@type&quot;, &quot;@id&quot;
+</del>
+<ins class="diff-chg">        &quot;@type&quot;: &quot;@id&quot;
+</ins>
+      }
+   },
+   &quot;name&quot;: &quot;Manu Sporny&quot;,
+   &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+}
+</pre>
+</div>
+<p>
+Running
+the
+JSON-LD
+Expansion
+algorithm
+against
+the
+JSON-LD
+input
+document
+provided
+above
+would
+result
+in
+the
+following
+output:
+</p>
+<del class="diff-old">[
+</del>
+  <div class="example"><div class="example-title"><span>Example 56</span>: Expanded form for the previous example</div><pre class="example">[
+  {
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Manu Sporny&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
+    ]
+  }
+]
+</pre>
+</div>
+<del class="diff-old">Expanded
+document
+form
+is
+useful
+when
+an
+application
+has
+to
+process
+input
+data
+in
+a
+deterministic
+form.
+It
+has
+been
+optimized
+to
+ensure
+that
+the
+code
+that
+developers
+have
+to
+write
+is
+minimized
+compared
+to
+the
+code
+that
+would
+have
+to
+be
+written
+to
+operate
+on
+compact
+document
+form
+.
+</del>
+</section>
+<section class="informative" id="compact-document-form">
+<h3>
+<span class="secno">
+<del class="diff-old">4.14
+</del>
+<ins class="diff-chg">6.18
+</ins>
+</span>
+Compact
+Document
+Form
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+The
+JSON-LD
+<ins class="diff-new">Processing
+Algorithms
+and
+</ins>
+API
+<ins class="diff-new">specification
+</ins>
+[
+<cite>
+<a class="bibref" href="#bib-JSON-LD-API">
+JSON-LD-API
+</a>
+</cite>
+]
+defines
+a
+method
+for
+<em>
+compacting
+</em>
+a
+JSON-LD
+document.
+Compaction
+is
+the
+process
+of
+<del class="diff-old">taking
+a
+JSON-LD
+document
+and
+</del>
+applying
+a
+<ins class="diff-new">developer-supplied
+</ins>
+context
+<del class="diff-old">such
+that
+the
+most
+</del>
+<ins class="diff-chg">to
+shorten
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+compact
+<del class="diff-old">form
+of
+the
+document
+is
+generated.
+JSON
+is
+typically
+</del>
+<ins class="diff-chg">IRIs
+</ins></a><ins class="diff-chg">
+and
+JSON-LD
+values
+</ins>
+expressed
+in
+<del class="diff-old">a
+very
+compact,
+key-value
+format.
+That
+is,
+full
+IRIs
+are
+rarely
+used
+</del>
+<ins class="diff-chg">expanded
+form
+to
+simple
+values
+such
+</ins>
+as
+<del class="diff-old">keys.
+At
+times,
+a
+JSON-LD
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">strings
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+numbers
+</ins></a>.<ins class="diff-chg">
+Often
+this
+makes
+it
+simpler
+to
+work
+with
+</ins>
+document
+<del class="diff-old">may
+be
+received
+that
+</del>
+<ins class="diff-chg">as
+the
+data
+</ins>
+is
+<del class="diff-old">not
+</del>
+<ins class="diff-chg">expressed
+</ins>
+in
+<del class="diff-old">its
+most
+compact
+form.
+JSON-LD,
+via
+the
+API,
+provides
+a
+way
+</del>
+<ins class="diff-chg">application-specific
+terms.
+Compacted
+documents
+are
+also
+typically
+easier
+</ins>
+to
+<del class="diff-old">compact
+a
+JSON-LD
+document.
+</del>
+<ins class="diff-chg">read
+for
+humans.
+</ins>
+</p>
+<p>
+For
+example,
+assume
+the
+following
+JSON-LD
+input
+document:
+</p>
+<del class="diff-old">[
+</del>
+  <div class="example"><div class="example-title"><span>Example 57</span>: Sample expanded JSON-LD document</div><pre class="example">[
+  {
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [ &quot;Manu Sporny&quot; ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      {
+       &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
+      }
+    ]
+  }
+]
+</pre>
+</div>
+<p>
+Additionally,
+assume
+the
+following
+developer-supplied
+JSON-LD
+context:
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 58</span>: Sample context</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  }
+}
+</pre>
+</div>
+<p>
+Running
+the
+JSON-LD
+Compaction
+algorithm
+given
+the
+context
+supplied
+above
+against
+the
+JSON-LD
+input
+document
+provided
+above
+would
+result
+in
+the
+following
+output:
+</p>
+<del class="diff-old">{
+</del>
+  <div class="example"><div class="example-title"><span>Example 59</span>: Compact form of the sample document once sample context has been applied</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+}
+</pre>
+</div>
+</section>
+<section class="informative" id="flattened-document-form">
+<h3>
+<span class="secno">
+<ins class="diff-new">6.19
+</ins></span><ins class="diff-new">
+Flattened
+Document
+Form
+</ins></h3><p><em><ins class="diff-new">
+This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+The
+<del class="diff-old">compaction
+algorithm
+enables
+</del>
+<ins class="diff-chg">JSON-LD
+Processing
+Algorithms
+and
+API
+specification
+[
+</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
+JSON-LD-API
+</ins></a></cite><ins class="diff-chg">
+]
+defines
+</ins>
+a
+<del class="diff-old">developer
+</del>
+<ins class="diff-chg">method
+for
+</ins><em><ins class="diff-chg">
+flattening
+</ins></em><ins class="diff-chg">
+a
+JSON-LD
+document.
+Flattening
+collects
+all
+properties
+of
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a><ins class="diff-chg">
+in
+a
+single
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+and
+labels
+all
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a><ins class="diff-chg">
+with
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a>.<ins class="diff-chg">
+This
+ensures
+a
+shape
+of
+the
+data
+and
+consequently
+may
+drastically
+simplify
+the
+code
+required
+</ins>
+to
+<del class="diff-old">map
+any
+document
+into
+an
+application-specific
+compacted
+form
+by
+first
+expanding
+</del>
+<ins class="diff-chg">process
+JSON-LD
+in
+certain
+applications.
+</ins></p><p><ins class="diff-chg">
+For
+example,
+assume
+</ins>
+the
+<ins class="diff-new">following
+JSON-LD
+input
+document:
+</ins></p>  <div class="example"><div class="example-title"><span>Example 60</span>: Sample JSON-LD document</div><pre class="example">{<ins class="diff-new">
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;knows&quot;: [
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;
+    },
+    {
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    }
+  ]
+}
+</ins></pre></div><p><ins class="diff-new">
+Running
+the
+JSON-LD
+Flattening
+algorithm
+against
+the
+JSON-LD
+input
+</ins>
+document
+<del class="diff-old">.
+While
+</del>
+<ins class="diff-chg">in
+</ins>
+the
+<del class="diff-old">context
+provided
+</del>
+<ins class="diff-chg">example
+</ins>
+above
+<del class="diff-old">mapped
+http://xmlns.com/foaf/0.1/name
+to
+name
+,
+it
+could
+have
+also
+mapped
+it
+to
+any
+arbitrary
+string
+provided
+by
+</del>
+<ins class="diff-chg">and
+using
+</ins>
+the
+<del class="diff-old">developer.
+This
+powerful
+mechanism,
+along
+with
+another
+</del>
+<ins class="diff-chg">same
+context
+would
+result
+in
+the
+following
+output:
+</ins></p>  <div class="example"><div class="example-title"><span>Example 61</span>: Flattened and compacted form for the previous example</div><pre class="example">{<ins class="diff-chg">
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@graph&quot;: [
+    {
+      &quot;@id&quot;: &quot;_:b0&quot;,
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+      &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+      &quot;knows&quot;: [
+        { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
+        { &quot;@id&quot;: &quot;_:b0&quot; }
+      ]
+    }
+  ]
+}
+</ins></pre></div></section><section class="informative" id="embedding-json-ld-in-html-documents"><h3><span class="secno"><ins class="diff-chg">
+6.20
+</ins></span><ins class="diff-chg">
+Embedding
+</ins>
+JSON-LD
+<del class="diff-old">API
+technique
+called
+</del>
+<ins class="diff-chg">in
+HTML
+Documents
+</ins></h3><p>
+<em>
+<del class="diff-old">framing
+,
+allows
+</del>
+<ins class="diff-chg">This
+section
+is
+non-normative.
+</ins></em></p><p><ins class="diff-chg">
+HTML
+script
+tags
+can
+be
+used
+to
+embed
+blocks
+of
+data
+in
+documents.
+This
+way,
+JSON-LD
+content
+can
+be
+easily
+embedded
+in
+HTML
+by
+placing
+it
+in
+a
+script
+element
+with
+</ins>
+the
+<del class="diff-old">developer
+</del>
+<code>
+<ins class="diff-chg">type
+</ins></code><ins class="diff-chg">
+attribute
+set
+</ins>
+to
+<del class="diff-old">re-shape
+</del>
+<code>
+<ins class="diff-chg">application/ld+json
+</ins></code>.</p>  <div class="example"><div class="example-title"><span>Example 62</span>: Embedding JSON-LD in HTML</div><pre class="example"><span class="diff">&lt;script type=&quot;application/ld+json&quot;&gt;</span><ins class="diff-chg">
+{
+  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,
+  &quot;@id&quot;: &quot;http://dbpedia.org/resource/John_Lennon&quot;,
+  &quot;name&quot;: &quot;John Lennon&quot;,
+  &quot;born&quot;: &quot;1940-10-09&quot;,
+  &quot;spouse&quot;: &quot;http://dbpedia.org/resource/Cynthia_Lennon&quot;
+}
+</ins><span class="diff"><ins class="diff-chg">
+&lt;/script&gt;
+</ins></span></pre></div><p><ins class="diff-chg">
+Depending
+on
+how
+</ins>
+the
+<del class="diff-old">incoming
+JSON
+</del>
+<ins class="diff-chg">HTML
+document
+is
+served,
+certain
+strings
+may
+need
+to
+be
+escaped.
+</ins></p><p><ins class="diff-chg">
+Defining
+how
+such
+</ins>
+data
+<del class="diff-old">into
+a
+format
+that
+</del>
+<ins class="diff-chg">may
+be
+used
+</ins>
+is
+<del class="diff-old">optimized
+for
+their
+application.
+</del>
+<ins class="diff-chg">beyond
+the
+scope
+of
+this
+specification.
+The
+embedded
+JSON-LD
+document
+might
+be
+extracted
+as
+is
+or,
+e.g.,
+be
+converted
+to
+RDF.
+</ins>
+</p>
+<p>
+<ins class="diff-chg">If
+JSON-LD
+content
+is
+extracted
+as
+RDF
+[
+</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
+RDF11-CONCEPTS
+</ins></a></cite><ins class="diff-chg">
+],
+it
+should
+be
+expanded
+into
+an
+</ins><a class="tref externalDFN" title="rdf-dataset" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset"><ins class="diff-chg">
+RDF
+dataset
+</ins></a><ins class="diff-chg">
+using
+the
+</ins><cite><a href="../json-ld-api/#convert-to-rdf-algorithm"><ins class="diff-chg">
+Convert
+to
+RDF
+Algorithm
+</ins></a></cite><ins class="diff-chg">
+[
+</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
+JSON-LD-API
+</ins></a></cite><ins class="diff-chg">
+].
+</ins></p></section></section><section class="appendix normative" id="data-model">
+<h2>
+<span class="secno">
+A.
+</span>
+<del class="diff-old">JSON-LD
+Authoring
+Guidelines
+</del>
+<ins class="diff-chg">Data
+Model
+</ins>
+</h2>
+<p>
+<del class="diff-old">Since
+</del>
+<ins class="diff-chg">JSON-LD
+is
+a
+serialization
+format
+for
+</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data"><ins class="diff-chg">
+Linked
+Data
+</ins></a><ins class="diff-chg">
+based
+on
+JSON.
+It
+is
+therefore
+important
+to
+distinguish
+between
+</ins>
+the
+<ins class="diff-new">syntax,
+which
+is
+defined
+by
+JSON
+in
+[
+</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-new">
+RFC4627
+</ins></a></cite><ins class="diff-new">
+],
+and
+</ins><dfn title="json-ld-data-model" id="dfn-json-ld-data-model"><ins class="diff-new">
+JSON-LD's
+data
+model
+</ins></dfn><ins class="diff-new">
+which
+is
+defined
+as
+follows:
+</ins></p><ul><li><ins class="diff-new">
+A
+</ins><dfn title="json-ld-document" id="dfn-json-ld-document">
+JSON-LD
+<del class="diff-old">syntax
+</del>
+<ins class="diff-chg">document
+</ins></dfn><ins class="diff-chg">
+serializes
+a
+collection
+of
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+JSON-LD
+graphs
+</ins></a><ins class="diff-chg">
+and
+comprises
+exactly
+one
+</ins><dfn title="default-graph" id="dfn-default-graph"><ins class="diff-chg">
+default
+graph
+</ins></dfn><ins class="diff-chg">
+and
+zero
+or
+more
+</ins><dfn title="named-graph" id="dfn-named-graph"><ins class="diff-chg">
+named
+graphs
+</ins></dfn>.</li><li><ins class="diff-chg">
+The
+</ins><a class="tref internalDFN" title="default-graph" href="#dfn-default-graph"><ins class="diff-chg">
+default
+graph
+</ins></a><ins class="diff-chg">
+does
+not
+have
+a
+name
+and
+</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
+MAY
+</ins></em><ins class="diff-chg">
+be
+empty.
+</ins></li><li><ins class="diff-chg">
+Each
+</ins><a class="tref internalDFN" title="named-graph" href="#dfn-named-graph"><ins class="diff-chg">
+named
+graph
+</ins></a>
+is
+a
+<del class="diff-old">subset
+</del>
+<ins class="diff-chg">pair
+consisting
+</ins>
+of
+<ins class="diff-new">an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
+blank
+node
+identifier
+</ins></a><ins class="diff-new">
+(the
+</ins><dfn title="graph-name" id="dfn-graph-name"><ins class="diff-new">
+graph
+name
+</ins></dfn><ins class="diff-new">
+)
+and
+a
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-new">
+JSON-LD
+graph
+</ins></a>.<ins class="diff-new">
+Whenever
+practical,
+</ins>
+the
+<del class="diff-old">JSON
+syntax,
+</del>
+<a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">
+<ins class="diff-chg">graph
+name
+</ins></a><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
+SHOULD
+</ins></em><ins class="diff-chg">
+be
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.</li><li><ins class="diff-chg">
+A
+</ins><dfn title="json-ld-graph" id="dfn-json-ld-graph"><ins class="diff-chg">
+JSON-LD
+graph
+</ins></dfn><ins class="diff-chg">
+is
+a
+labeled
+directed
+graph,
+i.e.,
+a
+set
+of
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+nodes
+</ins></a><ins class="diff-chg">
+connected
+by
+</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
+edges
+</ins></a>.</li><li><ins class="diff-chg">
+Every
+</ins><dfn title="edge" id="dfn-edge"><ins class="diff-chg">
+edge
+</ins></dfn><ins class="diff-chg">
+has
+a
+direction
+associated
+with
+</ins>
+it
+<del class="diff-old">follows
+that
+all
+valid
+</del>
+<ins class="diff-chg">and
+is
+labeled
+with
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>.<ins class="diff-chg">
+Within
+the
+</ins>
+JSON-LD
+<del class="diff-old">documents
+</del>
+<ins class="diff-chg">syntax
+these
+edge
+labels
+</ins>
+are
+<del class="diff-old">valid
+JSON
+documents.
+It
+also
+means
+that
+</del>
+<ins class="diff-chg">called
+</ins><dfn title="property" id="dfn-property"><ins class="diff-chg">
+properties
+</ins></dfn>.<ins class="diff-chg">
+Whenever
+practical,
+</ins>
+an
+<del class="diff-old">invalid
+JSON
+</del>
+<a class="tref internalDFN" title="edge" href="#dfn-edge">
+<ins class="diff-chg">edge
+</ins></a><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
+SHOULD
+</ins></em><ins class="diff-chg">
+be
+labeled
+with
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.</li><li><ins class="diff-chg">
+Every
+</ins><dfn title="node" id="dfn-node"><ins class="diff-chg">
+node
+</ins></dfn><ins class="diff-chg">
+is
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+node
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
+JSON-LD
+value
+</ins></a>,<ins class="diff-chg">
+or
+a
+</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-chg">
+list
+</ins></a>.</li><li><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a><ins class="diff-chg">
+having
+an
+outgoing
+edge
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+be
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+a
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+node
+</ins></a>.</li><li><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+JSON-LD
+graph
+</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em><ins class="diff-chg">
+contain
+unconnected
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+nodes
+</ins></a>,<ins class="diff-chg">
+i.e.,
+nodes
+which
+are
+not
+connected
+by
+an
+</ins><a class="tref internalDFN" title="edge" href="#dfn-edge"><ins class="diff-chg">
+edge
+</ins></a><ins class="diff-chg">
+to
+any
+other
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a>.</li><li><ins class="diff-chg">
+An
+</ins><dfn title="iri" id="dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></dfn><ins class="diff-chg">
+(Internationalized
+Resource
+Identifier)
+is
+a
+string
+that
+conforms
+to
+the
+syntax
+defined
+in
+[
+</ins><cite><a class="bibref" href="#bib-RFC3987"><ins class="diff-chg">
+RFC3987
+</ins></a></cite><ins class="diff-chg">
+].
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+used
+within
+a
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+JSON-LD
+graph
+</ins></a><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
+SHOULD
+</ins></em><ins class="diff-chg">
+return
+a
+</ins><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data"><ins class="diff-chg">
+Linked
+Data
+</ins></a>
+document
+<ins class="diff-new">describing
+the
+resource
+denoted
+by
+that
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+when
+being
+dereferenced.
+</ins></li><li><ins class="diff-new">
+A
+</ins><dfn title="blank-node" id="dfn-blank-node"><ins class="diff-new">
+blank
+node
+</ins></dfn><ins class="diff-new">
+is
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
+node
+</ins></a><ins class="diff-new">
+which
+is
+neither
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>,<ins class="diff-new">
+nor
+a
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-new">
+JSON-LD
+value
+</ins></a>,<ins class="diff-new">
+nor
+a
+</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-new">
+list
+</ins></a>.<ins class="diff-new">
+A
+blank
+node
+</ins><em class="rfc2119" title="MAY"><ins class="diff-new">
+MAY
+</ins></em><ins class="diff-new">
+be
+identified
+using
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-new">
+blank
+node
+identifier
+</ins></a>.</li><li><ins class="diff-new">
+A
+</ins><dfn title="blank-node-identifier" id="dfn-blank-node-identifier"><ins class="diff-new">
+blank
+node
+identifier
+</ins></dfn><ins class="diff-new">
+is
+a
+string
+that
+</ins>
+can
+<del class="diff-old">never
+</del>
+be
+<ins class="diff-new">used
+as
+an
+identifier
+for
+</ins>
+a
+<del class="diff-old">valid
+</del>
+<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
+<ins class="diff-chg">blank
+node
+</ins></a><ins class="diff-chg">
+within
+the
+scope
+of
+a
+</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
+JSON-LD
+<del class="diff-old">document.
+Furthermore,
+</del>
+<ins class="diff-chg">document
+</ins></a>.<ins class="diff-chg">
+Blank
+node
+identifiers
+begin
+with
+</ins><code><ins class="diff-chg">
+_:
+</ins></code>.</li><li><ins class="diff-chg">
+A
+</ins><dfn title="json-ld-value" id="dfn-json-ld-value">
+JSON-LD
+<del class="diff-old">places
+</del>
+<ins class="diff-chg">value
+</ins></dfn><ins class="diff-chg">
+is
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,
+a
+<a class="tref internalDFN" title="number" href="#dfn-number">
+number
+</a>,
+<a class="tref internalDFN" title="true" href="#dfn-true">
+<ins class="diff-new">true
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
+false
+</ins></a>,<ins class="diff-new">
+a
+</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-new">
+typed
+value
+</ins></a>,<ins class="diff-new">
+or
+a
+</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-new">
+language-tagged
+string
+</ins></a>.</li><li><ins class="diff-new">
+A
+</ins><dfn title="typed-value" id="dfn-typed-value"><ins class="diff-new">
+typed
+value
+</ins></dfn><ins class="diff-new">
+consists
+</ins>
+of
+<del class="diff-old">restrictions
+on
+the
+JSON
+syntax
+in
+order
+to
+define
+</del>
+a
+<del class="diff-old">set
+</del>
+<ins class="diff-chg">value,
+which
+is
+a
+string,
+and
+a
+type,
+which
+is
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.</li><li><ins class="diff-chg">
+A
+</ins><dfn title="language-tagged-string" id="dfn-language-tagged-string"><ins class="diff-chg">
+language-tagged
+string
+</ins></dfn><ins class="diff-chg">
+consists
+</ins>
+of
+<del class="diff-old">authoring
+guidelines
+</del>
+<ins class="diff-chg">a
+string
+and
+a
+non-empty
+language
+tag
+as
+defined
+by
+[
+</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
+BCP47
+</ins></a></cite><ins class="diff-chg">
+].
+The
+language
+tag
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+<del class="diff-old">that
+are
+</del>
+<ins class="diff-chg">be
+well-formed
+according
+to
+section
+</ins><a href="http://tools.ietf.org/html/bcp47#section-2.2.9"><ins class="diff-chg">
+2.2.9
+Classes
+of
+Conformance
+</ins></a><ins class="diff-chg">
+of
+[
+</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
+BCP47
+</ins></a></cite><ins class="diff-chg">
+].
+</ins></li><li><ins class="diff-chg">
+A
+</ins><dfn title="list" id="dfn-list"><ins class="diff-chg">
+list
+</ins></dfn><ins class="diff-chg">
+is
+an
+ordered
+sequence
+of
+zero
+or
+more
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>,<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a>,<ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value"><ins class="diff-chg">
+JSON-LD
+values
+</ins></a>.</li></ul><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-chg">
+Feature
+at
+Risk
+3
+</ins></span>:<ins class="diff-chg">
+Allow
+blank
+nodes
+to
+be
+</ins>
+used
+<ins class="diff-new">as
+graph
+name
+or
+property
+</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
+Note:
+This
+feature
+is
+</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
+&quot;at
+risk&quot;
+</ins></a><ins class="diff-new">
+and
+may
+be
+removed
+from
+this
+specification
+based
+on
+feedback.
+Please
+send
+feedback
+</ins>
+to
+<del class="diff-old">express
+well-formed
+</del>
+<a href="mailto:public-rdf-comments@w3.org">
+<ins class="diff-chg">public-rdf-comments@w3.org
+</ins></a>.<ins class="diff-chg">
+For
+the
+current
+status
+see
+</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-chg">
+features
+&quot;at
+risk&quot;
+in
+</ins>
+JSON-LD
+<del class="diff-old">documents.
+At
+times,
+even
+if
+these
+guidelines
+are
+violated,
+</del>
+<ins class="diff-chg">1.0
+</ins></a></p><p><ins class="diff-chg">
+RDF
+does
+not
+currently
+allow
+</ins>
+a
+<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
+<ins class="diff-new">blank
+node
+</ins></a><ins class="diff-new">
+to
+be
+used
+as
+</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-new">
+graph
+name
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-new">
+property
+</ins></a>,<ins class="diff-new">
+while
+JSON-LD
+does.
+</ins>
+JSON-LD
+<del class="diff-old">processor
+will
+do
+its
+best
+</del>
+to
+<del class="diff-old">recover
+</del>
+<ins class="diff-chg">RDF
+converters
+can
+work
+around
+this
+restriction,
+when
+converting
+JSON-LD
+to
+RDF,
+by
+converting
+such
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>,<ins class="diff-chg">
+minting
+new
+&quot;Skolem
+IRIs&quot;
+as
+per
+</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization"><ins class="diff-chg">
+Replacing
+Blank
+Nodes
+with
+IRIs
+</ins></a></cite><ins class="diff-chg">
+of
+[
+</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
+RDF11-CONCEPTS
+</ins></a></cite><ins class="diff-chg">
+].
+Based
+on
+feedback
+</ins>
+from
+<ins class="diff-new">implementors
+</ins>
+the
+<del class="diff-old">mistake
+</del>
+<ins class="diff-chg">Working
+Group
+may
+decide
+to
+disallow
+blank
+nodes
+as
+graph
+names
+</ins>
+and
+<del class="diff-old">will
+deterministically
+transform
+the
+author's
+markup
+into
+well-formed
+</del>
+<ins class="diff-chg">properties
+in
+</ins>
+JSON-LD.
+<ins class="diff-new">If
+this
+change
+would
+affect
+you,
+be
+sure
+to
+send
+in
+a
+comment.
+</ins>
+</p>
+</div>
+</div>
+<p>
+<del class="diff-old">Issue
+4
+</del>
+<a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
+<ins class="diff-chg">JSON-LD
+documents
+</ins></a><em class="rfc2119" title="MAY"><ins class="diff-chg">
+MAY
+</ins></em><ins class="diff-chg">
+contain
+data
+that
+cannot
+be
+represented
+by
+the
+</ins><a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model"><ins class="diff-chg">
+data
+model
+</ins></a><ins class="diff-chg">
+defined
+above.
+Unless
+otherwise
+specified,
+such
+data
+is
+ignored
+when
+a
+</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
+JSON-LD
+document
+</ins></a><ins class="diff-chg">
+is
+being
+processed.
+This
+means,
+e.g.,
+that
+properties
+which
+are
+not
+mapped
+to
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr>
+<del class="diff-old">The
+final
+details
+</del>
+</a>
+<ins class="diff-chg">or
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+node
+</ins></a><ins class="diff-chg">
+will
+be
+ignored.
+</ins></p><p style="text-align: center"><img src="linked-data-graph.png" title="An illustration of JSON-LD's data model" /></p><p style="text-align: center"><ins class="diff-chg">
+Figure
+1:
+An
+illustration
+</ins>
+of
+<ins class="diff-new">JSON-LD's
+data
+model.
+</ins></p></section><section class="appendix normative" id="json-ld-grammar"><h2><span class="secno"><ins class="diff-new">
+B.
+</ins></span><ins class="diff-new">
+JSON-LD
+Grammar
+</ins></h2><p><ins class="diff-new">
+This
+appendix
+restates
+</ins>
+the
+<del class="diff-old">guidelines
+are
+still
+being
+discussed
+(
+ISSUE-114
+</del>
+<ins class="diff-chg">syntactic
+conventions
+described
+in
+the
+previous
+sections
+more
+formally.
+</ins></p><p><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-chg">
+JSON-LD
+document
+</ins>
+</a>
+<del class="diff-old">),
+as
+well
+</del>
+<em class="rfc2119" title="MUST">
+<ins class="diff-chg">MUST
+</ins></em><ins class="diff-chg">
+be
+a
+valid
+JSON
+document
+</ins>
+as
+<ins class="diff-new">described
+in
+[
+</ins><cite><a class="bibref" href="#bib-RFC4627"><ins class="diff-new">
+RFC4627
+</ins></a></cite><ins class="diff-new">
+].
+</ins></p><p><ins class="diff-new">
+A
+</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document"><ins class="diff-new">
+JSON-LD
+document
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+a
+single
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a><ins class="diff-new">
+or
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+whose
+elements
+are
+each
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+objects
+</ins></a><ins class="diff-new">
+at
+</ins>
+the
+<del class="diff-old">best
+mechanism
+</del>
+<ins class="diff-chg">top
+level.
+</ins></p><p><ins class="diff-chg">
+In
+contrast
+</ins>
+to
+<del class="diff-old">express
+these
+restrictions.
+EBNF
+doesn't
+quite
+capture
+what
+these
+guidelines
+are
+attempting
+</del>
+<ins class="diff-chg">JSON,
+in
+JSON-LD
+the
+keys
+in
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+objects
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+be
+unique.
+</ins></p><div class="note"><div class="note-title"><span><ins class="diff-chg">
+Note
+</ins></span></div><p class=""><ins class="diff-chg">
+JSON-LD
+allows
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a>
+to
+<del class="diff-old">do
+-
+which
+is
+strongly
+express
+what
+constitutes
+</del>
+<ins class="diff-chg">be
+aliased
+(see
+</ins><a class="sectionRef sec-ref" href="#aliasing-keywords"><ins class="diff-chg">
+section
+6.15
+Aliasing
+Keywords
+</ins></a><ins class="diff-chg">
+for
+details).
+Whenever
+</ins>
+a
+<del class="diff-old">well-formed
+JSON-LD
+document.
+</del>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-chg">keyword
+</ins></a><ins class="diff-chg">
+is
+discussed
+in
+this
+grammar,
+the
+statements
+also
+apply
+to
+an
+alias
+for
+that
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>.
+For
+<ins class="diff-new">example,
+if
+</ins>
+the
+<del class="diff-old">time
+being,
+</del>
+<a class="tref internalDFN" title="active-context" href="#dfn-active-context">
+<ins class="diff-chg">active
+context
+</ins></a><ins class="diff-chg">
+defines
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><code><ins class="diff-chg">
+id
+</ins></code><ins class="diff-chg">
+as
+an
+alias
+for
+</ins><code><ins class="diff-chg">
+@id
+</ins></code>,<ins class="diff-chg">
+that
+alias
+may
+be
+legitimately
+used
+as
+</ins>
+a
+<del class="diff-old">simple
+list
+of
+plain
+English
+guidelines
+</del>
+<ins class="diff-chg">substitution
+for
+</ins><code><ins class="diff-chg">
+@id
+</ins></code>.<ins class="diff-chg">
+Note
+that
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+aliases
+</ins>
+are
+<del class="diff-old">provided.
+</del>
+<ins class="diff-chg">not
+expanded
+during
+context
+processing.
+</ins>
+</p>
+</div>
+<section class="normative" id="terms">
+<h3>
+<del class="diff-old">Issue
+5
+</del>
+<span class="secno">
+<ins class="diff-chg">B.1
+</ins>
+</span>
+<ins class="diff-new">Terms
+</ins></h3><p><ins class="diff-new">
+A
+</ins><dfn title="term" id="dfn-term"><ins class="diff-new">
+term
+</ins></dfn><ins class="diff-new">
+is
+a
+short-hand
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+string
+</ins></a><ins class="diff-new">
+that
+expands
+to
+an
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr>
+<del class="diff-old">Per
+Andy
+S's
+comment
+,
+consider
+making
+this
+</del>
+</a>
+<ins class="diff-chg">or
+</ins>
+a
+<del class="diff-old">normative
+syntax
+definition
+along
+</del>
+<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
+<ins class="diff-chg">blank
+node
+identifier
+</ins></a>.</p><p><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em><ins class="diff-chg">
+equal
+any
+of
+the
+JSON-LD
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a>.</p><p><ins class="diff-chg">
+To
+avoid
+forward-compatibility
+issues,
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
+SHOULD
+NOT
+</ins></em><ins class="diff-chg">
+start
+</ins>
+with
+<del class="diff-old">EBNF.
+</del>
+<ins class="diff-chg">an
+</ins><code><ins class="diff-chg">
+@
+</ins></code><ins class="diff-chg">
+character
+as
+future
+versions
+of
+JSON-LD
+may
+introduce
+additional
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a>.<ins class="diff-chg">
+Furthermore,
+the
+term
+</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em><ins class="diff-chg">
+be
+an
+empty
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a><ins class="diff-chg">
+(
+</ins><code><ins class="diff-chg">
+&quot;&quot;
+</ins></code><ins class="diff-chg">
+)
+as
+not
+all
+programming
+languages
+are
+able
+to
+handle
+empty
+JSON
+keys.
+</ins>
+</p>
+<p>
+<ins class="diff-new">See
+</ins><a class="sectionRef sec-ref" href="#the-context"><ins class="diff-new">
+section
+5.1
+The
+Context
+</ins></a><ins class="diff-new">
+and
+</ins><a class="sectionRef sec-ref" href="#iris"><ins class="diff-new">
+section
+5.2
+IRIs
+</ins></a><ins class="diff-new">
+for
+further
+discussion
+on
+mapping
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+terms
+</ins></a><ins class="diff-new">
+to
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
+IRIs
+</ins></a>.</p></section><section class="normative" id="node-objects"><h3>
+<span class="secno">
+<ins class="diff-chg">B.2
+</ins></span><ins class="diff-chg">
+Node
+Objects
+</ins></h3><p>
+A
+<dfn title="node-object" id="dfn-node-object">
+<ins class="diff-new">node
+object
+</ins></dfn><ins class="diff-new">
+represents
+zero
+or
+more
+properties
+of
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
+node
+</ins></a><ins class="diff-new">
+in
+the
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-new">
+JSON-LD
+graph
+</ins></a><ins class="diff-new">
+serialized
+by
+the
+</ins><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">
+JSON-LD
+document
+</a>.
+<ins class="diff-new">A
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a>
+is
+<del class="diff-old">composed
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+if
+it
+exists
+outside
+</ins>
+of
+a
+<del class="diff-old">single
+subject
+definition
+</del>
+<ins class="diff-chg">JSON-LD
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-chg">
+context
+</ins>
+</a>
+<ins class="diff-new">and:
+</ins></p><ul><li><ins class="diff-new">
+it
+does
+not
+contain
+the
+</ins><code><ins class="diff-new">
+@value
+</ins></code>,<code><ins class="diff-new">
+@list
+</ins></code>,
+or
+<del class="diff-old">an
+array
+</del>
+<code>
+<ins class="diff-chg">@set
+</ins></code><ins class="diff-chg">
+keywords,
+and
+</ins></li><li><ins class="diff-chg">
+it
+is
+not
+the
+top-most
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins>
+</a>
+<ins class="diff-new">in
+the
+JSON-LD
+document
+consisting
+</ins>
+of
+<del class="diff-old">subject
+definitions
+.
+</del>
+<ins class="diff-chg">no
+other
+members
+than
+</ins><code><ins class="diff-chg">
+@graph
+</ins></code><ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+@context
+</ins></code>.
+</li>
+</ul>
+<p>
+The
+<del class="diff-old">value
+</del>
+<a class="tref internalDFN" title="property" href="#dfn-property">
+<ins class="diff-chg">properties
+</ins></a><ins class="diff-chg">
+of
+a
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-chg">
+node
+</ins></a><ins class="diff-chg">
+in
+a
+</ins><a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph"><ins class="diff-chg">
+JSON-LD
+graph
+</ins></a><ins class="diff-chg">
+may
+be
+spread
+among
+different
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+objects
+</ins></a><ins class="diff-chg">
+within
+a
+document.
+When
+that
+happens,
+the
+keys
+</ins>
+of
+<ins class="diff-new">the
+different
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+objects
+</ins></a><ins class="diff-new">
+need
+to
+be
+merged
+to
+create
+the
+properties
+of
+the
+resulting
+</ins><a class="tref internalDFN" title="node" href="#dfn-node"><ins class="diff-new">
+node
+</ins></a>.</p><p><ins class="diff-new">
+A
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a>.<ins class="diff-new">
+All
+keys
+which
+are
+not
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-new">
+IRIs
+</ins></a>,<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
+compact
+IRIs
+</ins></a>,<a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+terms
+</ins></a><ins class="diff-new">
+valid
+in
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>,<ins class="diff-new">
+or
+one
+of
+the
+following
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
+keywords
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+ignored
+when
+processed:
+</ins></p><ul><li><code><ins class="diff-new">
+@context
+</ins></code>,</li><li>
+<code>
+@id
+</code>,
+</li>
+<li>
+<code>
+<ins class="diff-new">@graph
+</ins></code>,</li><li><code><ins class="diff-new">
+@type
+</ins></code>,</li><li><code><ins class="diff-new">
+@reverse
+</ins></code>,<ins class="diff-new">
+or
+</ins></li><li><code><ins class="diff-new">
+@index
+</ins>
+</code>
+<del class="diff-old">must
+</del>
+</li>
+</ul>
+<p>
+<ins class="diff-chg">If
+the
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+contains
+the
+</ins><code><ins class="diff-chg">
+@context
+</ins></code><ins class="diff-chg">
+key,
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+be
+<del class="diff-old">a
+term
+</del>
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-chg">null
+</ins></a>,<ins class="diff-chg">
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>,
+a
+<del class="diff-old">compact
+</del>
+<a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">
+<ins class="diff-chg">relative
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>,
+<ins class="diff-new">a
+</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-new">
+context
+definition
+</ins></a>,
+or
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+<ins class="diff-chg">array
+</ins></a><ins class="diff-chg">
+composed
+of
+any
+of
+these.
+</ins></p><p><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+contains
+the
+</ins><code><ins class="diff-chg">
+@id
+</ins></code><ins class="diff-chg">
+key,
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+be
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>,
+<ins class="diff-new">a
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
+relative
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<del class="diff-old">.
+An
+</del>
+</a>,
+<ins class="diff-chg">or
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+(including
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a><ins class="diff-chg">
+).
+See
+</ins><a class="sectionRef sec-ref" href="#node-identifiers"><ins class="diff-chg">
+section
+5.3
+Node
+Identifiers
+</ins></a>,<a class="sectionRef sec-ref" href="#compact-iris"><ins class="diff-chg">
+section
+6.3
+Compact
+IRIs
+</ins></a>,<ins class="diff-chg">
+and
+</ins><a class="sectionRef sec-ref" href="#identifying-blank-nodes"><ins class="diff-chg">
+section
+6.14
+Identifying
+Blank
+Nodes
+</ins></a><ins class="diff-chg">
+for
+further
+discussion
+on
+</ins>
+<code>
+@id
+</code>
+<del class="diff-old">keyword
+and
+a
+</del>
+<ins class="diff-chg">values.
+</ins></p><p><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+contains
+the
+</ins>
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@graph
+</ins>
+</code>
+<del class="diff-old">keyword
+must
+not
+</del>
+<ins class="diff-chg">key,
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+<del class="diff-old">exist
+in
+the
+same
+JSON
+</del>
+<ins class="diff-chg">be
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+</ins>
+object
+</a>
+<ins class="diff-new">or
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+of
+zero
+or
+more
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+objects
+</ins>
+</a>.
+<del class="diff-old">An
+</del>
+<ins class="diff-chg">If
+the
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+contains
+an
+</ins>
+<code>
+@id
+</code>
+<del class="diff-old">keyword
+and
+</del>
+<ins class="diff-chg">keyword,
+its
+value
+is
+used
+as
+the
+label
+of
+</ins>
+a
+<ins class="diff-new">named
+graph.
+See
+</ins><a class="sectionRef sec-ref" href="#named-graphs"><ins class="diff-new">
+section
+6.13
+Named
+Graphs
+</ins></a><ins class="diff-new">
+for
+further
+discussion
+on
+</ins>
+<code>
+<del class="diff-old">@container
+</del>
+<ins class="diff-chg">@graph
+</ins>
+</code>
+<del class="diff-old">keyword
+must
+not
+exist
+in
+the
+same
+</del>
+<ins class="diff-chg">values.
+As
+a
+special
+case,
+if
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+<del class="diff-old">.
+A
+subject
+definition
+</del>
+</a>
+<del class="diff-old">may
+contain
+a
+</del>
+<ins class="diff-chg">contains
+no
+keys
+other
+than
+</ins>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">@graph
+</ins>
+</code>
+<del class="diff-old">property.
+A
+</del>
+<ins class="diff-chg">and
+</ins>
+<code>
+@context
+</code>,
+<ins class="diff-new">and
+the
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a><ins class="diff-new">
+is
+the
+root
+of
+the
+JSON-LD
+document,
+the
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-new">
+JSON
+object
+</ins></a><ins class="diff-new">
+is
+not
+treated
+as
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a><ins class="diff-new">
+;
+this
+is
+used
+as
+a
+way
+of
+defining
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+definitions
+</ins></a><ins class="diff-new">
+that
+may
+not
+form
+a
+connected
+graph.
+This
+allows
+a
+</ins><a class="tref internalDFN" title="context" href="#dfn-context"><ins class="diff-new">
+context
+</ins></a><ins class="diff-new">
+to
+be
+defined
+which
+is
+shared
+by
+all
+of
+the
+constituent
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+objects
+</ins></a>.</p><p><ins class="diff-new">
+If
+the
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a><ins class="diff-new">
+contains
+the
+</ins><code><ins class="diff-new">
+@type
+</ins>
+</code>
+<ins class="diff-new">key,
+its
+</ins>
+value
+<del class="diff-old">must
+not
+</del>
+<em class="rfc2119" title="MUST">
+<ins class="diff-chg">MUST
+</ins>
+</em>
+<del class="diff-old">contain
+</del>
+<ins class="diff-chg">be
+either
+</ins>
+an
+<del class="diff-old">embedded
+</del>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-chg">
+relative
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+(including
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifiers
+</ins></a><ins class="diff-chg">
+),
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+defined
+in
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+expanding
+into
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+or
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+array
+</ins></a><ins class="diff-chg">
+of
+any
+of
+these.
+See
+</ins><a class="sectionRef sec-ref" href="#specifying-the-type"><ins class="diff-chg">
+section
+5.4
+Specifying
+the
+Type
+</ins></a><ins class="diff-chg">
+for
+further
+discussion
+on
+</ins>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">@type
+</ins>
+</code>
+<del class="diff-old">definition.
+The
+value
+associated
+with
+</del>
+<ins class="diff-chg">values.
+</ins></p><p><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+contains
+</ins>
+the
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">@reverse
+</ins>
+</code>
+<del class="diff-old">keyword
+must
+</del>
+<ins class="diff-chg">key,
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+be
+a
+<del class="diff-old">string
+expanding
+to
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins></a><ins class="diff-chg">
+containing
+members
+representing
+reverse
+properties.
+Each
+value
+of
+such
+a
+reverse
+property
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+be
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>,
+<ins class="diff-new">a
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
+relative
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>,
+a
+<del class="diff-old">JSON
+object
+</del>
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+<ins class="diff-chg">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>,
+<del class="diff-old">null,
+</del>
+<ins class="diff-chg">a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a>
+or
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+containing
+a
+combination
+of
+<ins class="diff-new">these.
+</ins></p><p><ins class="diff-new">
+If
+</ins>
+the
+<del class="diff-old">allowed
+values.
+The
+value
+associated
+with
+</del>
+<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
+<ins class="diff-chg">node
+object
+</ins></a><ins class="diff-chg">
+contains
+</ins>
+the
+<del class="diff-old">keys
+used
+in
+a
+</del>
+<code>
+<del class="diff-old">@context
+</del>
+<ins class="diff-chg">@index
+</ins>
+</code>
+<del class="diff-old">must
+</del>
+<ins class="diff-chg">key,
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+be
+a
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-new">string
+</ins></a>.<ins class="diff-new">
+See
+</ins><a class="sectionRef sec-ref" href="#data-indexing"><ins class="diff-new">
+section
+6.16
+Data
+Indexing
+</ins></a><ins class="diff-new">
+for
+further
+discussion
+on
+</ins>
+<code>
+<del class="diff-old">null
+,
+</del>
+<ins class="diff-chg">@index
+</ins></code><ins class="diff-chg">
+values.
+</ins></p><p><ins class="diff-chg">
+Keys
+in
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+that
+are
+not
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a><em class="rfc2119" title="MAY"><ins class="diff-chg">
+MAY
+</ins></em><ins class="diff-chg">
+expand
+to
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>
+<ins class="diff-new">using
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a>.<ins class="diff-new">
+The
+values
+associated
+with
+keys
+that
+expand
+to
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
+absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<em class="rfc2119" title="MUST">
+<ins class="diff-new">MUST
+</ins></em><ins class="diff-new">
+be
+one
+of
+the
+following:
+</ins></p><ul><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+string
+</ins></a>,</li><li><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
+number
+</ins></a>,</li><li><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a>,</li><li><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
+false
+</ins></a>,</li><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,</li><li><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a>,</li><li><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-new">
+value
+object
+</ins></a>,</li><li><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
+list
+object
+</ins></a>,</li><li><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-new">
+set
+object
+</ins>
+</a>,
+</li>
+<li>
+<ins class="diff-new">an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+of
+zero
+</ins>
+or
+<ins class="diff-new">more
+of
+the
+possibilities
+above,
+</ins></li><li>
+a
+<del class="diff-old">JSON
+object
+.
+</del>
+<a class="tref internalDFN" title="language-map" href="#dfn-language-map">
+<ins class="diff-chg">language
+map
+</ins></a>,<ins class="diff-chg">
+or
+</ins>
+</li>
+<li>
+<del class="diff-old">For
+each
+</del>
+<ins class="diff-chg">an
+</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
+index
+map
+</ins></a></li></ul></section><section class="normative" id="value-objects"><h3><span class="secno"><ins class="diff-chg">
+B.3
+</ins></span><ins class="diff-chg">
+Value
+Objects
+</ins></h3><p><ins class="diff-chg">
+A
+</ins><dfn title="value-object" id="dfn-value-object">
+value
+<del class="diff-old">that
+</del>
+<ins class="diff-chg">object
+</ins></dfn>
+is
+<ins class="diff-new">used
+to
+explicitly
+associate
+</ins>
+a
+<ins class="diff-chg">type
+or
+a
+language
+with
+a
+value
+to
+create
+a
+</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-chg">
+typed
+value
+</ins></a><ins class="diff-chg">
+or
+a
+</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-chg">
+language-tagged
+string
+</ins></a>.</p><p><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+be
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+<del class="diff-old">that
+is
+associated
+with
+</del>
+<ins class="diff-chg">containing
+the
+</ins><code><ins class="diff-chg">
+@value
+</ins></code><ins class="diff-chg">
+key.
+It
+</ins><em class="rfc2119" title="MAY"><ins class="diff-chg">
+MAY
+</ins></em><ins class="diff-chg">
+also
+contain
+</ins>
+a
+<del class="diff-old">key
+in
+</del>
+<code>
+<ins class="diff-chg">@type
+</ins></code>,
+a
+<code>
+<ins class="diff-new">@language
+</ins></code>,<ins class="diff-new">
+an
+</ins><code><ins class="diff-new">
+@index
+</ins></code>,<ins class="diff-new">
+or
+an
+</ins><code>
+@context
+<del class="diff-old">:
+</del>
+</code>
+<ins class="diff-chg">key
+but
+</ins><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em><ins class="diff-chg">
+contain
+both
+a
+</ins>
+<code>
+<del class="diff-old">@id
+</del>
+<ins class="diff-chg">@type
+</ins>
+</code>
+and
+<ins class="diff-new">a
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<del class="diff-old">must
+</del>
+<ins class="diff-chg">key
+at
+the
+same
+time.
+A
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-chg">
+value
+object
+</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins>
+</em>
+<del class="diff-old">be
+</del>
+<ins class="diff-chg">contain
+any
+other
+keys
+that
+expand
+to
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+or
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-new">keyword
+</ins></a>.</p><p><ins class="diff-new">
+The
+value
+associated
+with
+the
+</ins>
+<code>
+<ins class="diff-new">@value
+</ins></code><ins class="diff-new">
+key
+</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+either
+a
+</ins><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+string
+</ins></a>,<ins class="diff-new">
+a
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-new">
+number
+</ins></a>,<a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-new">
+true
+</ins></a>,<a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
+false
+</ins></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>.
+</p>
+<p>
+<ins class="diff-new">The
+value
+associated
+with
+the
+</ins><code><ins class="diff-new">
+@type
+</ins>
+</code>
+<ins class="diff-new">key
+</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a>,<ins class="diff-new">
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>
+</a>,
+<ins class="diff-chg">an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>,
+<ins class="diff-new">a
+</ins><a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri"><ins class="diff-new">
+relative
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>,<ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>.</p><p><ins class="diff-new">
+The
+value
+associated
+with
+the
+</ins>
+<code>
+<del class="diff-old">@container
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<del class="diff-old">must
+</del>
+<ins class="diff-chg">key
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+<ins class="diff-new">have
+the
+lexical
+form
+described
+in
+[
+</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-new">
+BCP47
+</ins></a></cite><ins class="diff-new">
+],
+or
+</ins>
+be
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-new">null
+</ins></a>.</p><p><ins class="diff-new">
+The
+value
+</ins>
+associated
+with
+<ins class="diff-new">the
+</ins><code><ins class="diff-new">
+@index
+</ins></code><ins class="diff-new">
+key
+</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+</ins>
+a
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-new">string
+</ins></a>.</p><p><ins class="diff-new">
+See
+</ins><a class="sectionRef sec-ref" href="#typed-values"><ins class="diff-new">
+section
+6.4
+Typed
+Values
+</ins></a><ins class="diff-new">
+and
+</ins><a class="sectionRef sec-ref" href="#string-internationalization"><ins class="diff-new">
+section
+6.9
+String
+Internationalization
+</ins></a><ins class="diff-new">
+for
+more
+information
+on
+</ins><a class="tref internalDFN" title="value-object" href="#dfn-value-object">
+value
+<ins class="diff-new">objects
+</ins></a>.</p></section><section class="normative" id="lists-and-sets"><h3><span class="secno"><ins class="diff-new">
+B.4
+</ins></span><ins class="diff-new">
+Lists
+and
+Sets
+</ins></h3><p><ins class="diff-new">
+A
+</ins><a class="tref internalDFN" title="list" href="#dfn-list"><ins class="diff-new">
+list
+</ins></a><ins class="diff-new">
+represents
+an
+</ins><em><ins class="diff-new">
+ordered
+</ins></em><ins class="diff-new">
+set
+</ins>
+of
+<del class="diff-old">either
+</del>
+<ins class="diff-chg">values.
+A
+set
+represents
+an
+</ins><em><ins class="diff-chg">
+unordered
+</ins></em><ins class="diff-chg">
+set
+of
+values.
+Unless
+otherwise
+specified,
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-chg">
+arrays
+</ins></a><ins class="diff-chg">
+are
+unordered
+in
+JSON-LD.
+As
+such,
+the
+</ins><code><ins class="diff-chg">
+@set
+</ins></code><ins class="diff-chg">
+keyword,
+when
+used
+in
+the
+body
+of
+a
+JSON-LD
+document,
+represents
+just
+syntactic
+sugar
+which
+is
+optimized
+away
+when
+processing
+the
+document.
+However,
+it
+is
+very
+helpful
+when
+used
+within
+the
+context
+of
+a
+document.
+Values
+of
+terms
+associated
+with
+a
+</ins>
+<code>
+@set
+</code>
+or
+<code>
+@list
+<del class="diff-old">.
+@language
+</del>
+</code>
+<del class="diff-old">must
+</del>
+<ins class="diff-chg">container
+will
+always
+</ins>
+be
+<ins class="diff-new">represented
+in
+the
+form
+of
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+when
+</ins>
+a
+<del class="diff-old">string
+expressed
+</del>
+<ins class="diff-chg">document
+is
+processed—even
+if
+there
+is
+just
+a
+single
+value
+that
+would
+otherwise
+be
+optimized
+to
+a
+non-array
+form
+</ins>
+in
+<del class="diff-old">[
+BCP47
+</del>
+<a href="#compact-document-form">
+<ins class="diff-chg">compact
+document
+form
+</ins></a>.<ins class="diff-chg">
+This
+simplifies
+post-processing
+of
+the
+data
+as
+the
+data
+is
+always
+in
+a
+deterministic
+form.
+</ins></p><p><ins class="diff-chg">
+A
+</ins><dfn title="list-object" id="dfn-list-object"><ins class="diff-chg">
+list
+object
+</ins></dfn><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+be
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object"><ins class="diff-chg">
+JSON
+object
+</ins>
+</a>
+<ins class="diff-new">that
+contains
+no
+keys
+that
+expand
+to
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>
+<del class="diff-old">]
+</del>
+</a>
+or
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-new">keyword
+</ins></a><ins class="diff-new">
+other
+than
+</ins>
+<code>
+<del class="diff-old">null
+</del>
+<ins class="diff-chg">@list
+</ins></code>,<code><ins class="diff-chg">
+@context
+</ins></code>,<ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+@index
+</ins>
+</code>.
+<del class="diff-old">Any
+other
+property
+must
+</del>
+</p>
+<p>
+<ins class="diff-chg">A
+</ins><dfn title="set-object" id="dfn-set-object"><ins class="diff-chg">
+set
+object
+</ins></dfn><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+be
+<del class="diff-old">ignored
+by
+</del>
+a
+<del class="diff-old">JSON-LD
+processor
+</del>
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-chg">JSON
+object
+</ins></a><ins class="diff-chg">
+that
+contains
+no
+keys
+that
+expand
+to
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a><ins class="diff-chg">
+other
+than
+</ins><code><ins class="diff-chg">
+@list
+</ins></code>,<code><ins class="diff-chg">
+@context
+</ins></code>,
+and
+<del class="diff-old">must
+</del>
+<code>
+<ins class="diff-chg">@index
+</ins></code>.<ins class="diff-chg">
+Please
+note
+that
+the
+</ins><code><ins class="diff-chg">
+@index
+</ins></code><ins class="diff-chg">
+key
+will
+</ins>
+be
+<del class="diff-old">preserved
+in
+compaction
+</del>
+<ins class="diff-chg">ignored
+when
+being
+processed.
+</ins></p><p><ins class="diff-chg">
+In
+both
+cases,
+the
+value
+associated
+with
+the
+keys
+</ins><code><ins class="diff-chg">
+@list
+</ins></code>
+and
+<del class="diff-old">framing.
+</del>
+<code>
+<ins class="diff-chg">@set
+</ins></code><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+be
+one
+of
+the
+following
+types:
+</ins></p><ul><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,
+</li>
+<li>
+<a class="tref internalDFN" title="number" href="#dfn-number">
+<ins class="diff-chg">number
+</ins></a>,</li><li><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a>,</li><li><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>,</li><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,</li><li><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a>,
+</li>
+<li>
+<a class="tref internalDFN" title="value-object" href="#dfn-value-object">
+<ins class="diff-new">value
+object
+</ins></a>,<ins class="diff-new">
+or
+</ins></li><li><ins class="diff-new">
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+of
+zero
+or
+more
+of
+the
+above
+possibilities
+</ins></li></ul><p><ins class="diff-new">
+See
+</ins><a class="sectionRef sec-ref" href="#sets-and-lists"><ins class="diff-new">
+section
+6.11
+Sets
+and
+Lists
+</ins></a><ins class="diff-new">
+for
+further
+discussion
+on
+sets
+and
+lists.
+</ins></p></section><section class="normative" id="language-maps"><h3><span class="secno"><ins class="diff-new">
+B.5
+</ins></span><ins class="diff-new">
+Language
+Maps
+</ins></h3><p>
+A
+<del class="diff-old">subject
+definition
+</del>
+<dfn title="language-map" id="dfn-language-map">
+<ins class="diff-chg">language
+map
+</ins></dfn><ins class="diff-chg">
+is
+used
+to
+associate
+a
+language
+with
+a
+value
+in
+a
+way
+that
+allows
+easy
+programmatic
+access.
+A
+</ins><a class="tref internalDFN" title="language-map" href="#dfn-language-map"><ins class="diff-chg">
+language
+map
+</ins>
+</a>
+may
+<del class="diff-old">have
+an
+</del>
+<ins class="diff-chg">be
+used
+as
+a
+term
+value
+within
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+if
+the
+term
+is
+defined
+with
+</ins>
+<code>
+<del class="diff-old">@graph
+</del>
+<ins class="diff-chg">@container
+</ins>
+</code>
+<del class="diff-old">property.
+</del>
+<ins class="diff-chg">set
+to
+</ins><code><ins class="diff-chg">
+@language
+</ins></code>.
+The
+<del class="diff-old">value
+</del>
+<ins class="diff-chg">keys
+</ins>
+of
+a
+<del class="diff-old">@graph
+property
+must
+</del>
+<a class="tref internalDFN" title="language-map" href="#dfn-language-map">
+<ins class="diff-chg">language
+map
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+be
+<del class="diff-old">a
+subject
+definition
+</del>
+<a class="tref internalDFN" title="string" href="#dfn-string">
+<ins class="diff-chg">strings
+</ins></a><ins class="diff-chg">
+representing
+[
+</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
+BCP47
+</ins>
+</a>
+</cite>
+<ins class="diff-new">]
+language
+codes
+with
+and
+the
+values
+</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+any
+of
+the
+following
+types:
+</ins></p><ul><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,</li><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-new">
+string
+</ins></a>,
+or
+</li>
+<li>
+an
+<a class="tref internalDFN" title="array" href="#dfn-array">
+array
+</a>
+of
+zero
+or
+more
+<del class="diff-old">subject
+definitions
+.
+</del>
+<ins class="diff-chg">of
+the
+above
+possibilities
+</ins>
+</li>
+<del class="diff-old">A
+JSON
+object
+</del>
+</ul>
+<p>
+<ins class="diff-chg">See
+</ins><a class="sectionRef sec-ref" href="#string-internationalization"><ins class="diff-chg">
+section
+6.9
+String
+Internationalization
+</ins>
+</a>
+<del class="diff-old">containing
+</del>
+<ins class="diff-chg">for
+further
+discussion
+on
+language
+maps.
+</ins></p></section><section class="normative" id="index-maps"><h3><span class="secno"><ins class="diff-chg">
+B.6
+</ins></span><ins class="diff-chg">
+Index
+Maps
+</ins></h3><p><ins class="diff-chg">
+An
+</ins><dfn title="index-map" id="dfn-index-map"><ins class="diff-chg">
+index
+map
+</ins></dfn><ins class="diff-chg">
+allows
+keys
+that
+have
+no
+semantic
+meaning,
+but
+should
+be
+preserved
+regardless,
+to
+be
+used
+in
+JSON-LD
+documents.
+An
+</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
+index
+map
+</ins></a><ins class="diff-chg">
+may
+be
+used
+as
+</ins>
+a
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-new">term
+</ins></a><ins class="diff-new">
+value
+within
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a><ins class="diff-new">
+if
+the
+term
+is
+defined
+with
+</ins>
+<code>
+<del class="diff-old">@set
+</del>
+<ins class="diff-chg">@container
+</ins>
+</code>
+<del class="diff-old">key
+must
+not
+</del>
+<ins class="diff-chg">set
+to
+</ins><code><ins class="diff-chg">
+@index
+</ins></code>.<ins class="diff-chg">
+The
+values
+of
+the
+members
+of
+an
+</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
+index
+map
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+<del class="diff-old">have
+any
+other
+keys.
+</del>
+<ins class="diff-chg">be
+one
+of
+the
+following
+types:
+</ins></p><ul><li><a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+string
+</ins></a>,</li><li><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+number
+</ins></a>,
+</li>
+<li>
+<a class="tref internalDFN" title="true" href="#dfn-true">
+<ins class="diff-new">true
+</ins></a>,</li><li><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-new">
+false
+</ins></a>,</li><li><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>,</li><li><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-new">
+node
+object
+</ins></a>,</li><li><a class="tref internalDFN" title="value-object" href="#dfn-value-object"><ins class="diff-new">
+value
+object
+</ins></a>,</li><li><a class="tref internalDFN" title="list-object" href="#dfn-list-object"><ins class="diff-new">
+list
+object
+</ins></a>,</li><li><a class="tref internalDFN" title="set-object" href="#dfn-set-object"><ins class="diff-new">
+set
+object
+</ins></a>,</li><li><ins class="diff-new">
+an
+</ins><a class="tref internalDFN" title="array" href="#dfn-array"><ins class="diff-new">
+array
+</ins></a><ins class="diff-new">
+of
+zero
+or
+more
+of
+the
+above
+possibilities
+</ins></li></ul><p><ins class="diff-new">
+See
+</ins><a class="sectionRef sec-ref" href="#data-indexing"><ins class="diff-new">
+section
+6.16
+Data
+Indexing
+</ins></a><ins class="diff-new">
+for
+further
+information
+on
+this
+topic.
+</ins></p></section><section class="normative" id="context-definitions"><h3><span class="secno"><ins class="diff-new">
+B.7
+</ins></span><ins class="diff-new">
+Context
+Definitions
+</ins></h3><p>
+A
+<dfn title="context-definition" id="dfn-context-definition">
+<ins class="diff-chg">context
+definition
+</ins></dfn><ins class="diff-chg">
+defines
+a
+</ins><a class="tref internalDFN" title="local-context" href="#dfn-local-context"><ins class="diff-chg">
+local
+context
+</ins></a><ins class="diff-chg">
+in
+a
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a>.</p><p><ins class="diff-chg">
+A
+</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
+context
+definition
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+be
+a
+</ins><a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+JSON
+object
+</a>
+<del class="diff-old">containing
+</del>
+<ins class="diff-chg">whose
+keys
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+either
+be
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+terms
+</ins></a>,<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+IRIs
+</ins></a>,<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+IRIs
+</ins></a>,<ins class="diff-chg">
+or
+the
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keywords
+</ins></a><code><ins class="diff-chg">
+@language
+</ins></code>,<code><ins class="diff-chg">
+@base
+</ins></code>,<ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+@vocab
+</ins></code>.</p><p><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
+context
+definition
+</ins></a><ins class="diff-chg">
+has
+</ins>
+a
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@language
+</ins>
+</code>
+<del class="diff-old">key
+must
+not
+</del>
+<ins class="diff-chg">key,
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+have
+<del class="diff-old">any
+other
+keys.
+The
+</del>
+<ins class="diff-chg">the
+lexical
+form
+described
+in
+[
+</ins><cite><a class="bibref" href="#bib-BCP47"><ins class="diff-chg">
+BCP47
+</ins></a></cite><ins class="diff-chg">
+]
+or
+be
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</p><p><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-chg">
+context
+definition
+</ins></a><ins class="diff-chg">
+has
+a
+</ins><code><ins class="diff-chg">
+@base
+</ins></code><ins class="diff-chg">
+key,
+its
+</ins>
+value
+<del class="diff-old">of
+</del>
+<em class="rfc2119" title="MUST">
+<ins class="diff-chg">MUST
+</ins></em><ins class="diff-chg">
+be
+</ins>
+an
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-new">absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-new">
+null
+</ins></a>.</p><div class="issue atrisk"><div class="issue-title"><span><ins class="diff-new">
+Feature
+at
+Risk
+1
+</ins></span>:<ins class="diff-new">
+@base
+keyword
+</ins></div><div class="atrisk"><p class="atrisk-head"><ins class="diff-new">
+Note:
+This
+feature
+is
+</ins><a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi"><ins class="diff-new">
+&quot;at
+risk&quot;
+</ins></a><ins class="diff-new">
+and
+may
+be
+removed
+from
+this
+specification
+based
+on
+feedback.
+Please
+send
+feedback
+to
+</ins><a href="mailto:public-rdf-comments@w3.org"><ins class="diff-new">
+public-rdf-comments@w3.org
+</ins></a>.<ins class="diff-new">
+For
+the
+current
+status
+see
+</ins><a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk"><ins class="diff-new">
+features
+&quot;at
+risk&quot;
+in
+JSON-LD
+1.0
+</ins></a></p><p><ins class="diff-new">
+This
+feature
+is
+at
+risk
+as
+the
+fact
+that
+a
+document
+may
+have
+multiple
+base
+IRIs
+is
+potentially
+confusing
+for
+developers.
+It
+is
+also
+being
+discussed
+whether
+relative
+IRIs
+are
+allowed
+as
+values
+of
+</ins>
+<code>
+<del class="diff-old">@set
+</del>
+<ins class="diff-chg">@base
+</ins>
+</code>
+or
+<ins class="diff-new">whether
+the
+empty
+string
+should
+be
+used
+to
+explicitly
+specify
+that
+there
+isn't
+a
+base
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>,<ins class="diff-new">
+which
+could
+be
+used
+to
+ensure
+that
+relative
+IRIs
+remain
+relative
+when
+expanding.
+</ins></p></div></div><p><ins class="diff-new">
+If
+the
+</ins><a class="tref internalDFN" title="context-definition" href="#dfn-context-definition"><ins class="diff-new">
+context
+definition
+</ins></a><ins class="diff-new">
+has
+a
+</ins>
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@vocab
+</ins>
+</code>
+<del class="diff-old">key
+can
+</del>
+<ins class="diff-chg">key,
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em>
+be
+a
+<del class="diff-old">string,
+</del>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,
+a
+<del class="diff-old">number,
+</del>
+<a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">
+<ins class="diff-chg">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,
+a
+<del class="diff-old">JSON
+object
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins>
+</a>,
+or
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-new">null
+</ins></a>.</p><p><ins class="diff-new">
+The
+value
+of
+keys
+that
+are
+not
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
+keywords
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+either
+</ins>
+an
+<del class="diff-old">array
+</del>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">
+<ins class="diff-chg">absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>,<a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>,<ins class="diff-chg">
+or
+an
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins></a>.</p><p><ins class="diff-chg">
+An
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins>
+</a>
+<del class="diff-old">containing
+</del>
+<ins class="diff-chg">is
+used
+to
+describe
+the
+mapping
+between
+</ins>
+a
+<del class="diff-old">combination
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a><ins class="diff-chg">
+and
+its
+expanded
+identifier,
+as
+well
+as
+other
+properties
+</ins>
+of
+the
+<del class="diff-old">allowed
+values.
+For
+each
+JSON
+object
+</del>
+<ins class="diff-chg">value
+associated
+with
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins>
+</a>
+<del class="diff-old">that
+contains
+</del>
+<ins class="diff-chg">when
+it
+is
+used
+as
+key
+in
+</ins>
+a
+<del class="diff-old">@value
+key:
+It
+may
+</del>
+<a class="tref internalDFN" title="node-object" href="#dfn-node-object">
+<ins class="diff-chg">node
+object
+</ins></a>.</p><p><ins class="diff-chg">
+An
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+<del class="diff-old">have
+</del>
+<ins class="diff-chg">be
+</ins>
+a
+<a class="tref internalDFN" title="json-object" href="#dfn-json-object">
+<ins class="diff-new">JSON
+object
+</ins></a><ins class="diff-new">
+composed
+of
+zero
+or
+more
+keys
+from
+</ins><code><ins class="diff-new">
+@id
+</ins></code>,<code><ins class="diff-new">
+@reverse
+</ins></code>,<code><ins class="diff-new">
+@type
+</ins></code>,
+<code>
+@language
+</code>
+or
+<code>
+<del class="diff-old">@type
+property
+and
+must
+not
+</del>
+<ins class="diff-chg">@container
+</ins></code>.<ins class="diff-chg">
+An
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins></a><em class="rfc2119" title="SHOULD NOT"><ins class="diff-chg">
+SHOULD
+NOT
+</ins>
+</em>
+<del class="diff-old">have
+</del>
+<ins class="diff-chg">contain
+</ins>
+any
+other
+<del class="diff-old">properties.
+It
+must
+</del>
+<ins class="diff-chg">keys.
+</ins></p><p><ins class="diff-chg">
+If
+an
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins></a><ins class="diff-chg">
+has
+an
+</ins><code><ins class="diff-chg">
+@reverse
+</ins></code><ins class="diff-chg">
+member,
+</ins><code><ins class="diff-chg">
+@id
+</ins></code>,<code><ins class="diff-chg">
+@type
+</ins></code>,<ins class="diff-chg">
+and
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><ins class="diff-chg">
+are
+</ins>
+not
+<ins class="diff-new">allowed.
+If
+an
+</ins><code><ins class="diff-new">
+@container
+</ins></code><ins class="diff-new">
+member
+exists,
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins>
+</em>
+<del class="diff-old">contain
+both
+</del>
+<ins class="diff-chg">be
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a><ins class="diff-chg">
+or
+</ins><code><ins class="diff-chg">
+@index
+</ins></code>.</p><p><ins class="diff-chg">
+If
+</ins>
+the
+<ins class="diff-new">term
+being
+defined
+is
+not
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-new">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+or
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+and
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-new">
+active
+context
+</ins></a><ins class="diff-new">
+does
+not
+have
+an
+</ins>
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@vocab
+</ins>
+</code>
+<del class="diff-old">and
+</del>
+<ins class="diff-chg">mapping,
+the
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins></a><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+include
+the
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@id
+</ins>
+</code>
+<del class="diff-old">keys
+at
+</del>
+<ins class="diff-chg">key.
+</ins></p><p><ins class="diff-chg">
+If
+</ins>
+the
+<del class="diff-old">same
+time.
+The
+value
+of
+</del>
+<a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">
+<ins class="diff-chg">expanded
+term
+definition
+</ins></a><ins class="diff-chg">
+contains
+</ins>
+the
+<code>
+<del class="diff-old">@value
+</del>
+<ins class="diff-chg">@id
+</ins>
+</code>
+<del class="diff-old">key
+must
+</del>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-chg">keyword
+</ins></a>,<ins class="diff-chg">
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+be
+<a class="tref internalDFN" title="null" href="#dfn-null">
+<ins class="diff-new">null
+</ins></a>,<ins class="diff-new">
+an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-new">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>,
+a
+<del class="diff-old">string
+</del>
+<a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">
+<ins class="diff-chg">blank
+node
+identifier
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,
+or
+a
+<del class="diff-old">number.
+The
+value
+of
+</del>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+<ins class="diff-chg">term
+</ins></a>.</p><p><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins></a><ins class="diff-chg">
+contains
+</ins>
+the
+<code>
+<del class="diff-old">@language
+</del>
+<ins class="diff-chg">@type
+</ins>
+</code>
+<del class="diff-old">key
+must
+</del>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-chg">keyword
+</ins></a>,<ins class="diff-chg">
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+be
+<ins class="diff-chg">an
+</ins><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier"><ins class="diff-chg">
+blank
+node
+identifier
+</ins></a>,<ins class="diff-chg">
+a
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+or
+the
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a>,<a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>,
+<ins class="diff-new">or
+the
+one
+of
+the
+</ins><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-new">
+keywords
+</ins></a><code><ins class="diff-new">
+@id
+</ins>
+</code>
+or
+<del class="diff-old">a
+string
+</del>
+<code>
+<ins class="diff-chg">@vocab
+</ins></code>.</p><p><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins></a><ins class="diff-chg">
+contains
+the
+</ins><code><ins class="diff-chg">
+@language
+</ins></code><a class="tref internalDFN" title="keyword" href="#dfn-keyword"><ins class="diff-chg">
+keyword
+</ins></a>,<ins class="diff-chg">
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+have
+the
+lexical
+form
+described
+</ins>
+in
+[
+<cite>
+<a class="bibref" href="#bib-BCP47">
+BCP47
+</a>
+</cite>
+]
+<del class="diff-old">format.
+The
+value
+of
+</del>
+<ins class="diff-chg">or
+be
+</ins><a class="tref internalDFN" title="null" href="#dfn-null"><ins class="diff-chg">
+null
+</ins></a>.</p><p><ins class="diff-chg">
+If
+the
+</ins><a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition"><ins class="diff-chg">
+expanded
+term
+definition
+</ins></a><ins class="diff-chg">
+contains
+the
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@container
+</ins>
+</code>
+<del class="diff-old">must
+</del>
+<a class="tref internalDFN" title="keyword" href="#dfn-keyword">
+<ins class="diff-chg">keyword
+</ins></a>,<ins class="diff-chg">
+its
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins>
+</em>
+be
+<ins class="diff-new">either
+</ins><code><ins class="diff-new">
+@list
+</ins></code>,<code><ins class="diff-new">
+@set
+</ins></code>,<code><ins class="diff-new">
+@language
+</ins></code>,
+<code>
+<ins class="diff-new">@index
+</ins></code>,<ins class="diff-new">
+or
+be
+</ins><a class="tref internalDFN" title="null" href="#dfn-null">
+null
+</a>.
+<ins class="diff-new">If
+the
+value
+is
+</ins><code><ins class="diff-new">
+@language
+</ins>
+</code>,
+<ins class="diff-new">when
+the
+</ins><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-new">
+term
+</ins></a><ins class="diff-new">
+is
+used
+outside
+of
+the
+</ins><code><ins class="diff-new">
+@context
+</ins></code>,<ins class="diff-new">
+the
+associated
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-new">
+MUST
+</ins></em><ins class="diff-new">
+be
+</ins>
+a
+<a class="tref internalDFN" title="language-map" href="#dfn-language-map">
+<ins class="diff-new">language
+map
+</ins></a>.<ins class="diff-new">
+If
+the
+value
+is
+</ins><code><ins class="diff-new">
+@index
+</ins></code>,<ins class="diff-new">
+when
+the
+</ins>
+<a class="tref internalDFN" title="term" href="#dfn-term">
+term
+<del class="diff-old">,
+</del>
+</a>
+<ins class="diff-chg">is
+used
+outside
+of
+the
+</ins><code><ins class="diff-chg">
+@context
+</ins></code>,<ins class="diff-chg">
+the
+associated
+value
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+be
+an
+</ins><a class="tref internalDFN" title="index-map" href="#dfn-index-map"><ins class="diff-chg">
+index
+map
+</ins></a>.</p><p><a class="tref internalDFN" title="term" href="#dfn-term"><ins class="diff-chg">
+Terms
+</ins></a><em class="rfc2119" title="MUST NOT"><ins class="diff-chg">
+MUST
+NOT
+</ins></em><ins class="diff-chg">
+be
+used
+in
+</ins>
+a
+<del class="diff-old">compact
+IRI
+</del>
+<ins class="diff-chg">circular
+manner.
+That
+is,
+the
+definition
+of
+a
+term
+cannot
+depend
+on
+the
+definition
+of
+another
+term
+if
+that
+other
+term
+also
+depends
+on
+the
+first
+term.
+</ins></p><p><ins class="diff-chg">
+See
+</ins><a class="sectionRef sec-ref" href="#the-context"><ins class="diff-chg">
+section
+5.1
+The
+Context
+</ins></a><ins class="diff-chg">
+for
+further
+discussion
+on
+contexts.
+</ins></p></section></section><section class="appendix normative" id="relationship-to-rdf"><h2>
+<del class="diff-old">,
+an
+</del>
+<span class="secno">
+<ins class="diff-chg">C.
+</ins></span><ins class="diff-chg">
+Relationship
+to
+RDF
+</ins></h2><p><ins class="diff-chg">
+The
+RDF
+data
+model,
+as
+outlined
+in
+[
+</ins><cite>
+<del class="diff-old">IRI
+</del>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-chg">RDF11-CONCEPTS
+</ins></a>
+<del class="diff-old">,
+a
+JSON
+object
+,
+or
+</del>
+</cite>
+<ins class="diff-chg">],
+is
+</ins>
+an
+<del class="diff-old">array
+containing
+</del>
+<ins class="diff-chg">abstract
+syntax
+for
+representing
+</ins>
+a
+<del class="diff-old">combination
+</del>
+<ins class="diff-chg">directed
+graph
+of
+information.
+It
+is
+a
+subset
+</ins>
+of
+<a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model">
+<ins class="diff-new">JSON-LD's
+data
+model
+</ins></a><ins class="diff-new">
+with
+a
+few
+additional
+constraints.
+The
+differences
+between
+</ins>
+the
+<del class="diff-old">allowed
+values.
+</del>
+<ins class="diff-chg">two
+data
+models
+are:
+</ins></p><ul><li><ins class="diff-chg">
+In
+JSON-LD
+</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
+graph
+names
+</ins></a><ins class="diff-chg">
+can
+be
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a><ins class="diff-chg">
+whereas
+in
+RDF
+graph
+names
+have
+to
+be
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>.
+</li>
+<li>
+<ins class="diff-chg">In
+JSON-LD
+</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
+properties
+</ins></a><ins class="diff-chg">
+can
+be
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a><ins class="diff-chg">
+whereas
+in
+RDF
+properties
+(predicates)
+have
+to
+be
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>.
+</li>
+<li>
+In
+<ins class="diff-new">JSON-LD
+lists
+are
+part
+of
+</ins>
+the
+<del class="diff-old">body
+</del>
+<ins class="diff-chg">data
+model
+whereas
+in
+RDF
+they
+are
+part
+</ins>
+of
+a
+<ins class="diff-new">vocabulary,
+namely
+[
+</ins><cite><a class="bibref" href="#bib-RDF-SCHEMA"><ins class="diff-new">
+RDF-SCHEMA
+</ins></a></cite><ins class="diff-new">
+].
+</ins></li><li><ins class="diff-new">
+RDF
+values
+are
+either
+typed
+</ins><em><ins class="diff-new">
+literals
+</ins></em><ins class="diff-new">
+(
+</ins><a class="tref internalDFN" title="typed-value" href="#dfn-typed-value"><ins class="diff-new">
+typed
+values
+</ins></a><ins class="diff-new">
+)
+or
+</ins><em><ins class="diff-new">
+language-tagged
+strings
+</ins></em><ins class="diff-new">
+(
+</ins><a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string"><ins class="diff-new">
+language-tagged
+strings
+</ins></a><ins class="diff-new">
+)
+whereas
+</ins>
+JSON-LD
+<del class="diff-old">document,
+</del>
+<ins class="diff-chg">also
+supports
+JSON's
+native
+data
+types,
+i.e.,
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+number
+</ins></a>,<a class="tref internalDFN" title="string" href="#dfn-string"><ins class="diff-chg">
+strings
+</ins></a>,<ins class="diff-chg">
+and
+</ins>
+the
+<del class="diff-old">value
+</del>
+<ins class="diff-chg">boolean
+values
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a>.<ins class="diff-chg">
+The
+JSON-LD
+Processing
+Algorithms
+and
+API
+specification
+[
+</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
+JSON-LD-API
+</ins></a></cite><ins class="diff-chg">
+]
+defines
+the
+conversion
+rules
+between
+JSON's
+native
+data
+types
+and
+RDF's
+counterparts
+to
+allow
+full
+round-tripping.
+</ins></li></ul><p><ins class="diff-chg">
+Summarized
+these
+differences
+mean
+that
+JSON-LD
+is
+capable
+</ins>
+of
+<del class="diff-old">@type
+must
+</del>
+<ins class="diff-chg">serializing
+any
+RDF
+graph
+or
+dataset
+and
+most,
+but
+</ins>
+not
+<ins class="diff-chg">all,
+JSON-LD
+documents
+can
+</ins>
+be
+<del class="diff-old">@id
+.
+This
+</del>
+<ins class="diff-chg">directly
+transformed
+to
+RDF.
+It
+</ins>
+is
+<del class="diff-old">in
+contrast
+</del>
+<ins class="diff-chg">possible
+</ins>
+to
+<del class="diff-old">the
+use
+</del>
+<ins class="diff-chg">work
+around
+this
+restriction,
+when
+converting
+JSON-LD
+to
+RDF,
+by
+converting
+</ins><a class="tref internalDFN" title="blank-node" href="#dfn-blank-node"><ins class="diff-chg">
+blank
+nodes
+</ins></a><ins class="diff-chg">
+used
+as
+</ins><a class="tref internalDFN" title="graph-name" href="#dfn-graph-name"><ins class="diff-chg">
+graph
+names
+</ins></a><ins class="diff-chg">
+or
+</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-chg">
+properties
+</ins></a><ins class="diff-chg">
+to
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a>,<ins class="diff-chg">
+minting
+new
+&quot;Skolem
+IRIs&quot;
+as
+per
+</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization"><ins class="diff-chg">
+Replacing
+Blank
+Nodes
+with
+IRIs
+</ins></a></cite>
+of
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">[
+</ins><cite><a class="bibref" href="#bib-RDF11-CONCEPTS"><ins class="diff-chg">
+RDF11-CONCEPTS
+</ins></a></cite><ins class="diff-chg">
+].
+A
+complete
+description
+of
+the
+algorithms
+to
+convert
+from
+RDF
+to
+JSON-LD
+and
+from
+JSON-LD
+to
+RDF
+is
+included
+</ins>
+in
+the
+<del class="diff-old">@context
+,
+where
+this
+</del>
+<ins class="diff-chg">JSON-LD
+Processing
+Algorithms
+and
+API
+specification
+[
+</ins><cite><a class="bibref" href="#bib-JSON-LD-API"><ins class="diff-chg">
+JSON-LD-API
+</ins></a></cite><ins class="diff-chg">
+].
+</ins></p><p><ins class="diff-chg">
+Even
+though
+JSON-LD
+serializes
+RDF
+datasets,
+it
+can
+also
+be
+used
+as
+a
+RDF
+graph
+source.
+In
+that
+case,
+a
+consumer
+</ins><em class="rfc2119" title="MUST"><ins class="diff-chg">
+MUST
+</ins></em><ins class="diff-chg">
+only
+use
+the
+default
+graph
+and
+ignore
+all
+named
+graphs.
+This
+allows
+servers
+to
+expose
+data
+in,
+e.g.,
+both
+Turtle
+and
+JSON-LD
+using
+content
+negotiation.
+</ins></p><div class="note"><div class="note-title"><span><ins class="diff-chg">
+Note
+</ins></span></div><p class=""><ins class="diff-chg">
+Publishers
+supporting
+both
+dataset
+and
+graph
+syntaxes
+have
+to
+ensure
+that
+the
+primary
+data
+</ins>
+is
+<del class="diff-old">allowed.
+</del>
+<ins class="diff-chg">stored
+in
+the
+default
+graph
+to
+enable
+consumers
+that
+do
+not
+support
+datasets
+to
+process
+the
+information.
+</ins></p>
+</div>
+<section class="informative" id="transformation-from-json-ld-to-rdf">
+<h3>
+<span class="secno">
+<del class="diff-old">B.
+</del>
+<ins class="diff-chg">C.1
+</ins>
+</span>
+<del class="diff-old">Relationship
+</del>
+<ins class="diff-chg">Transformation
+from
+JSON-LD
+</ins>
+to
+<del class="diff-old">other
+</del>
+RDF
+<del class="diff-old">Formats
+</del>
+</h3>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<del class="diff-old">Issue
+6
+</del>
+<p>
+The
+<del class="diff-old">intent
+of
+the
+Working
+Group
+and
+the
+Editors
+</del>
+<ins class="diff-chg">process
+</ins>
+of
+<del class="diff-old">this
+specification
+is
+to
+eventually
+align
+terminology
+used
+in
+this
+</del>
+<ins class="diff-chg">turning
+a
+JSON-LD
+</ins>
+document
+<del class="diff-old">with
+</del>
+<ins class="diff-chg">depends
+on
+executing
+</ins>
+the
+<del class="diff-old">terminology
+used
+</del>
+<ins class="diff-chg">algorithms
+defined
+</ins>
+in
+<del class="diff-old">the
+</del>
+<cite>
+<a href="../json-ld-api/#rdf-conversion-algorithms">
+RDF
+<del class="diff-old">Concepts
+document
+</del>
+<ins class="diff-chg">Conversion
+Algorithms
+</ins></a></cite><ins class="diff-chg">
+in
+the
+JSON-LD
+Processing
+Algorithms
+and
+API
+specification
+</ins>
+[
+<cite>
+<del class="diff-old">RDF-CONCEPTS
+</del>
+<a class="bibref" href="#bib-JSON-LD-API">
+<ins class="diff-chg">JSON-LD-API
+</ins>
+</a>
+</cite>
+<del class="diff-old">]
+to
+</del>
+<ins class="diff-chg">].
+It
+is
+beyond
+</ins>
+the
+<del class="diff-old">extent
+to
+which
+it
+makes
+sense
+</del>
+<ins class="diff-chg">scope
+of
+this
+document
+</ins>
+to
+<del class="diff-old">do
+so.
+In
+general,
+if
+there
+</del>
+<ins class="diff-chg">detail
+these
+algorithms
+any
+further,
+but
+a
+summary
+of
+the
+necessary
+operations
+</ins>
+is
+<del class="diff-old">an
+analogue
+</del>
+<ins class="diff-chg">provided
+</ins>
+to
+<del class="diff-old">terminology
+used
+in
+</del>
+<ins class="diff-chg">illustrate
+the
+process.
+</ins></p><p><ins class="diff-chg">
+The
+procedure
+involves
+the
+following
+steps:
+</ins></p><ol><li><ins class="diff-chg">
+Expand
+the
+JSON-LD
+document,
+removing
+any
+context;
+</ins>
+this
+<del class="diff-old">document
+</del>
+<ins class="diff-chg">ensures
+that
+properties,
+types,
+and
+values
+are
+given
+their
+full
+representation
+as
+</ins><a class="tref internalDFN" title="iri" href="#dfn-iri"><ins class="diff-chg">
+IRIs
+</ins></a><ins class="diff-chg">
+and
+expanded
+values.
+Expansion
+is
+discussed
+further
+</ins>
+in
+<a class="sectionRef sec-ref" href="#expanded-document-form">
+<ins class="diff-new">section
+6.17
+Expanded
+Document
+Form
+</ins></a>.</li><li><ins class="diff-new">
+Flatten
+</ins>
+the
+<del class="diff-old">RDF
+Concepts
+</del>
+document,
+<ins class="diff-new">which
+turns
+</ins>
+the
+<del class="diff-old">preference
+</del>
+<ins class="diff-chg">document
+into
+an
+array
+of
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+objects
+</ins></a>.<ins class="diff-chg">
+Flattening
+</ins>
+is
+<del class="diff-old">to
+use
+the
+terminology
+</del>
+<ins class="diff-chg">discussed
+further
+</ins>
+in
+<del class="diff-old">the
+</del>
+<a class="sectionRef sec-ref" href="#flattened-document-form">
+<ins class="diff-chg">section
+6.19
+Flattened
+Document
+Form
+</ins></a>.</li><li><ins class="diff-chg">
+Turn
+each
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+into
+a
+series
+of
+</ins><a class="tref externalDFN" title="rdf-triples" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">
+RDF
+<del class="diff-old">Concepts
+document.
+</del>
+<ins class="diff-chg">triples
+</ins></a>.</li></ol><p><ins class="diff-chg">
+For
+example,
+consider
+the
+following
+JSON-LD
+document
+in
+compact
+form:
+</ins>
+</p>
+    <div class="example"><div class="example-title"><span>Example 63</span>: Sample JSON-LD document</div><pre class="example">{
+<ins class="diff-new">  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;knows&quot;: [
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;
+    },
+    {
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    }
+  ]
+}
+</ins></pre>
+</div>
+<p>
+<ins class="diff-new">Running
+the
+</ins>
+JSON-LD
+<ins class="diff-new">Expansion
+and
+Flattening
+algorithms
+against
+the
+JSON-LD
+input
+document
+in
+the
+example
+above
+would
+result
+in
+the
+following
+output:
+</ins></p>    <div class="example"><div class="example-title"><span>Example 64</span>: Flattened and expanded form for the previous example</div><pre class="example">[<ins class="diff-new">
+  {
+    &quot;@id&quot;: &quot;_:b0&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Dave Longley&quot;
+  },
+  {
+    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Manu Sporny&quot;
+  },
+  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Markus Lanthaler&quot;,
+    &quot;http://xmlns.com/foaf/0.1/knows&quot;: [
+      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
+      { &quot;@id&quot;: &quot;_:b0&quot; }
+    ]
+  }
+]
+</ins></pre></div><p><ins class="diff-new">
+Transforming
+this
+to
+RDF
+now
+</ins>
+is
+a
+<del class="diff-old">specification
+for
+representing
+Linked
+Data
+in
+JSON.
+A
+common
+way
+</del>
+<ins class="diff-chg">straightforward
+process
+</ins>
+of
+<del class="diff-old">working
+with
+Linked
+Data
+is
+through
+RDF
+,
+the
+Resource
+Description
+Framework.
+</del>
+<ins class="diff-chg">turning
+each
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins></a><ins class="diff-chg">
+into
+one
+or
+more
+</ins>
+RDF
+<ins class="diff-new">triples.
+This
+</ins>
+can
+be
+expressed
+<del class="diff-old">using
+JSON-LD
+by
+associating
+JSON-LD
+concepts
+such
+</del>
+<ins class="diff-chg">in
+Turtle
+</ins>
+as
+<del class="diff-old">@id
+and
+@type
+with
+the
+equivalent
+</del>
+<ins class="diff-chg">follows:
+</ins></p>    <div class="example"><div class="example-title"><span>Example 65</span>: Turtle representation of expanded/flattend document</div><pre class="example">_:b0 &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Dave Longley&quot; .
+<del class="diff-old">IRI
+</del>
+<ins class="diff-chg">&lt;http://manu.sporny.org/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Manu Sporny&quot; .
+</ins>
+<del class="diff-old">s
+in
+RDF.
+Further
+information
+about
+</del>
+<ins class="diff-chg">&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Markus Lanthaler&quot; ;
+&lt;http://xmlns.com/foaf/0.1/knows&gt;
+&lt;http://manu.sporny.org/&gt;,
+_:b0
+.
+</ins></pre></div><p><ins class="diff-chg">
+The
+process
+of
+turning
+</ins>
+RDF
+<del class="diff-old">may
+</del>
+<ins class="diff-chg">into
+JSON-LD
+can
+</ins>
+be
+<del class="diff-old">found
+in
+</del>
+<ins class="diff-chg">thought
+of
+as
+</ins>
+the
+<del class="diff-old">[
+RDF-PRIMER
+</del>
+<ins class="diff-chg">inverse
+of
+this
+last
+step,
+creating
+an
+expanded
+JSON-LD
+document
+closely
+matching
+the
+triples
+from
+RDF,
+using
+a
+single
+</ins><a class="tref internalDFN" title="node-object" href="#dfn-node-object"><ins class="diff-chg">
+node
+object
+</ins>
+</a>
+<ins class="diff-new">for
+all
+triples
+having
+a
+common
+subject,
+and
+a
+single
+</ins><a class="tref internalDFN" title="property" href="#dfn-property"><ins class="diff-new">
+property
+</ins></a><ins class="diff-new">
+for
+those
+triples
+also
+having
+a
+common
+predicate.
+</ins></p></section></section><section class="appendix informative" id="relationship-to-other-linked-data-formats"><h2><span class="secno"><ins class="diff-new">
+D.
+</ins></span><ins class="diff-new">
+Relationship
+to
+Other
+Linked
+Data
+Formats
+</ins></h2><p><em><ins class="diff-new">
+This
+section
+is
+non-normative.
+</ins></em>
+<del class="diff-old">].
+</del>
+</p>
+<p>
+The
+JSON-LD
+<del class="diff-old">markup
+</del>
+examples
+below
+demonstrate
+how
+JSON-LD
+can
+be
+used
+to
+express
+semantic
+data
+marked
+up
+in
+other
+<del class="diff-old">languages
+and
+</del>
+<ins class="diff-chg">linked
+</ins>
+data
+<del class="diff-old">models
+</del>
+<ins class="diff-chg">formats
+</ins>
+such
+as
+<del class="diff-old">RDF,
+</del>
+Turtle,
+RDFa,
+Microformats,
+and
+Microdata.
+These
+sections
+are
+merely
+provided
+as
+evidence
+that
+JSON-LD
+is
+very
+flexible
+in
+what
+it
+can
+express
+across
+different
+<a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">
+Linked
+Data
+</a>
+approaches.
+<del class="diff-old">Further
+information
+on
+transforming
+JSON-LD
+into
+RDF
+are
+detailed
+in
+the
+[
+JSON-LD-API
+].
+</del>
+</p>
+<section class="informative" id="turtle">
+<h3>
+<span class="secno">
+<del class="diff-old">B.1
+</del>
+<ins class="diff-chg">D.1
+</ins>
+</span>
+<del class="diff-old">RDF
+</del>
+<ins class="diff-chg">Turtle
+</ins>
+</h3>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+The
+<del class="diff-old">RDF
+data
+model,
+as
+outlined
+in
+[
+RDF-CONCEPTS
+],
+is
+an
+abstract
+syntax
+for
+representing
+a
+directed
+graph
+of
+information.
+JSON-LD
+is
+capable
+of
+serializing
+any
+RDF
+graph,
+and
+performing
+full
+RDF
+to
+JSON-LD
+to
+RDF
+round-tripping.
+A
+complete
+description
+of
+how
+JSON-LD
+maps
+to
+RDF
+and
+algorithms
+detailing
+how
+one
+can
+convert
+from
+RDF
+to
+JSON-LD
+and
+from
+JSON-LD
+to
+RDF
+are
+included
+in
+the
+JSON-LD
+API
+[
+JSON-LD-API
+]
+specification.
+B.2
+Turtle
+The
+</del>
+following
+are
+examples
+of
+converting
+RDF
+expressed
+in
+<ins class="diff-new">Turtle
+</ins>
+[
+<cite>
+<del class="diff-old">TURTLE-TR
+</del>
+<a class="bibref" href="#bib-TURTLE">
+<ins class="diff-chg">TURTLE
+</ins>
+</a>
+</cite>
+]
+into
+JSON-LD.
+</p>
+<del class="diff-old">B.2.1
+</del>
+<section>
+<h4 id="prefix-definitions">
+Prefix
+definitions
+</h4>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+The
+JSON-LD
+context
+has
+direct
+equivalents
+for
+the
+Turtle
+<code>
+@prefix
+</code>
+declaration:
+</p>
+<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+</del>
+      <div class="example"><div class="example-title"><span>Example 66</span>: A set of statements serialized in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+&lt;http://manu.sporny.org/i/public&gt; a foaf:Person;
+  foaf:name &quot;Manu Sporny&quot;;
+foaf:homepage
+&lt;http://manu.sporny.org/&gt;
+.
+</pre>
+</div>
+<del class="diff-old">{
+</del>
+      <div class="example"><div class="example-title"><span>Example 67</span>: The same set of statements serialized in JSON-LD</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+  },
+  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
+  &quot;foaf:homepage&quot;: { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
+}
+</pre>
+</div>
+<del class="diff-old">Note
+JSON-LD
+has
+no
+equivalent
+for
+the
+Turtle
+@base
+declaration.
+Instead,
+authors
+may
+use
+a
+prefix
+definition
+to
+resolve
+relative
+IRI
+s:
+{
+  &quot;@context&quot;:
+  {
+
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+  },
+  &quot;@id&quot;: ,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
+  &quot;foaf:homepage&quot;: { &quot;@id&quot;: }
+}
+B.2.2
+</del>
+</section>
+<section>
+<h4 id="embedding-1">
+Embedding
+</h4>
+<p>
+Both
+Turtle
+and
+JSON-LD
+allow
+<del class="diff-old">embedding
+of
+objects,
+</del>
+<ins class="diff-chg">embedding,
+</ins>
+although
+Turtle
+only
+allows
+embedding
+of
+<del class="diff-old">objects
+which
+use
+unlabeled
+node
+identifiers.
+</del>
+<a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">
+<ins class="diff-chg">blank
+nodes
+</ins></a>.
+</p>
+<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+</del>
+      <div class="example"><div class="example-title"><span>Example 68</span>: Embedding in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+&lt;http://manu.sporny.org/i/public&gt;
+  a foaf:Person;
+  foaf:name &quot;Manu Sporny&quot;;
+foaf:knows
+[
+a
+foaf:Person;
+foaf:name
+&quot;Gregg
+Kellogg&quot;
+]
+.
+</pre>
+</div>
+<del class="diff-old">{
+</del>
+      <div class="example"><div class="example-title"><span>Example 69</span>: Same embedding example in JSON-LD</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+  },
+  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
+  &quot;foaf:knows&quot;:
+  {
+    &quot;@type&quot;: &quot;foaf:Person&quot;,
+    &quot;foaf:name&quot;: &quot;Gregg Kellogg&quot;
+  }
+}
+</pre>
+</div>
+</section>
+<section>
+<h4 id="conversion-of-native-data-types">
+<ins class="diff-chg">Conversion
+of
+native
+data
+types
+</ins></h4><p><ins class="diff-chg">
+In
+JSON-LD
+numbers
+and
+boolean
+values
+are
+native
+data
+types.
+While
+Turtle
+has
+a
+shorthand
+syntax
+to
+express
+such
+values,
+RDF's
+abstract
+syntax
+requires
+that
+numbers
+and
+boolean
+values
+are
+represented
+as
+typed
+literals.
+Thus,
+to
+allow
+full
+round-tripping,
+the
+JSON-LD
+Processing
+Algorithms
+and
+API
+specification
+[
+</ins><cite>
+<del class="diff-old">B.2.3
+</del>
+<a class="bibref" href="#bib-JSON-LD-API">
+<ins class="diff-chg">JSON-LD-API
+</ins></a></cite><ins class="diff-chg">
+]
+defines
+conversion
+rules
+between
+JSON-LD's
+native
+data
+types
+and
+RDF's
+counterparts.
+</ins><a class="tref internalDFN" title="number" href="#dfn-number"><ins class="diff-chg">
+Numbers
+</ins></a><ins class="diff-chg">
+without
+fractions
+are
+converted
+to
+</ins><code><ins class="diff-chg">
+xsd:integer
+</ins></code><ins class="diff-chg">
+-typed
+literals,
+numbers
+with
+fractions
+to
+</ins><code><ins class="diff-chg">
+xsd:double
+</ins></code><ins class="diff-chg">
+-typed
+literals
+and
+the
+two
+boolean
+values
+</ins><a class="tref internalDFN" title="true" href="#dfn-true"><ins class="diff-chg">
+true
+</ins></a><ins class="diff-chg">
+and
+</ins><a class="tref internalDFN" title="false" href="#dfn-false"><ins class="diff-chg">
+false
+</ins></a><ins class="diff-chg">
+to
+a
+</ins><code><ins class="diff-chg">
+xsd:boolean
+</ins></code><ins class="diff-chg">
+-typed
+literal.
+All
+typed
+literals
+are
+in
+canonical
+lexical
+form.
+</ins></p>      <div class="example"><div class="example-title"><span>Example 70</span>: JSON-LD using native data types for numbers and boolean values</div><pre class="example">{<ins class="diff-chg">
+  &quot;@context&quot;:
+  {
+    &quot;ex&quot;: &quot;http://example.com/vocab#&quot;
+  },
+  &quot;@id&quot;: &quot;http://example.com/&quot;,
+  &quot;ex:numbers&quot;: [ 14, 2.78 ],
+  &quot;ex:booleans&quot;: [ true, false ]
+}
+</ins></pre></div>      <div class="example"><div class="example-title"><span>Example 71</span>: Same example in Turtle using typed literals</div><pre class="example">@prefix ex: &lt;http://example.com/vocab#&gt; .<ins class="diff-chg">
+@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
+&lt;http://example.com/&gt;
+  ex:numbers &quot;14&quot;^^xsd:integer, &quot;2.78E0&quot;^^xsd:double ;
+ex:booleans
+&quot;true&quot;^^xsd:boolean,
+&quot;false&quot;^^xsd:boolean
+.
+</ins></pre></div></section><section><h4 id="lists">
+Lists
+</h4>
+<p>
+Both
+JSON-LD
+and
+Turtle
+can
+represent
+sequential
+lists
+of
+values.
+</p>
+<del class="diff-old">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+</del>
+      <div class="example"><div class="example-title"><span>Example 72</span>: A list of values in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+&lt;http://example.org/people#joebob&gt; a foaf:Person;
+  foaf:name &quot;Joe Bob&quot;;
+foaf:nick
+(
+&quot;joe&quot;
+&quot;bob&quot;
+&quot;jaybee&quot;
+)
+.
+</pre>
+</div>
+<del class="diff-old">{
+</del>
+      <div class="example"><div class="example-title"><span>Example 73</span>: Same example with a list of values in JSON-LD</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+  },
+  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Joe Bob&quot;,
+  &quot;foaf:nick&quot;:
+  {
+    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
+  }
+}
+</pre>
+</div>
+</section>
+</section>
+<section class="informative" id="rdfa">
+<h3>
+<span class="secno">
+<del class="diff-old">B.3
+</del>
+<ins class="diff-chg">D.2
+</ins>
+</span>
+RDFa
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+The
+following
+example
+describes
+three
+people
+with
+their
+respective
+names
+and
+<del class="diff-old">homepages.
+</del>
+<ins class="diff-chg">homepages
+in
+RDFa
+[
+</ins><cite><a class="bibref" href="#bib-RDFA-CORE"><ins class="diff-chg">
+RDFA-CORE
+</ins></a></cite><ins class="diff-chg">
+].
+</ins>
+</p>
+<del class="diff-old">&gt;
+</del>
+    <div class="example"><div class="example-title"><span>Example 74</span>: RDFa fragment that describes three people</div><pre class="example">&lt;div <span class="diff">prefix=&quot;foaf: http://xmlns.com/foaf/0.1/&quot;</span>&gt;
+   &lt;ul&gt;
+      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
+<del class="diff-old">        &lt;a &gt;Bob&lt;/a&gt;
+</del>
+<ins class="diff-chg">        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/bob/&quot; property=&quot;foaf:name&quot;</span>&gt;Bob&lt;/a&gt;
+</ins>
+      &lt;/li&gt;
+      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
+<del class="diff-old">        &lt;a &gt;Eve&lt;/a&gt;
+</del>
+<ins class="diff-chg">        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/eve/&quot; property=&quot;foaf:name&quot;</span>&gt;Eve&lt;/a&gt;
+</ins>
+      &lt;/li&gt;
+      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
+<del class="diff-old">        &lt;a &gt;Manu&lt;/a&gt;
+</del>
+<ins class="diff-chg">        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/manu/&quot; property=&quot;foaf:name&quot;</span>&gt;Manu&lt;/a&gt;
+</ins>
+      &lt;/li&gt;
+   &lt;/ul&gt;
+&lt;/div&gt;
+</pre>
+</div>
+<p>
+An
+example
+JSON-LD
+implementation
+using
+a
+single
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+is
+described
+below.
+</p>
+<del class="diff-old">{
+</del>
+    <div class="example"><div class="example-title"><span>Example 75</span>: Same description in JSON-LD (context shared among node objects)</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+  },
+  &quot;@graph&quot;:
+  [
+    {
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;foaf:homepage&quot;: &quot;http://example.com/bob/&quot;,
+      &quot;foaf:name&quot;: &quot;Bob&quot;
+    },
+    {
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;foaf:homepage&quot;: &quot;http://example.com/eve/&quot;,
+      &quot;foaf:name&quot;: &quot;Eve&quot;
+    },
+    {
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;foaf:homepage&quot;: &quot;http://example.com/manu/&quot;,
+      &quot;foaf:name&quot;: &quot;Manu&quot;
+    }
+  ]
+}
+</pre>
+</div>
+</section>
+<section class="informative" id="microformats">
+<h3>
+<span class="secno">
+<del class="diff-old">B.4
+</del>
+<ins class="diff-chg">D.3
+</ins>
+</span>
+Microformats
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+The
+following
+example
+uses
+a
+simple
+Microformats
+hCard
+example
+to
+express
+how
+<del class="diff-old">the
+Microformat
+is
+</del>
+<ins class="diff-chg">Microformats
+[
+</ins><cite><a class="bibref" href="#bib-MICROFORMATS"><ins class="diff-chg">
+MICROFORMATS
+</ins></a></cite><ins class="diff-chg">
+]
+are
+</ins>
+represented
+in
+JSON-LD.
+</p>
+<del class="diff-old">&lt;div class=&quot;vcard&quot;&gt;
+</del>
+    <div class="example"><div class="example-title"><span>Example 76</span>: HTML fragment with a simple Microformats hCard</div><pre class="example">&lt;div class=&quot;vcard&quot;&gt;
+ &lt;a class=&quot;url fn&quot; href=&quot;http://tantek.com/&quot;&gt;Tantek Çelik&lt;/a&gt;
+&lt;/div&gt;
+</pre>
+</div>
+<p>
+The
+representation
+of
+the
+hCard
+expresses
+the
+Microformat
+terms
+in
+the
+<a class="tref internalDFN" title="context" href="#dfn-context">
+context
+</a>
+and
+uses
+them
+directly
+for
+the
+<code>
+url
+</code>
+and
+<code>
+fn
+</code>
+properties.
+Also
+note
+that
+the
+Microformat
+to
+JSON-LD
+processor
+has
+generated
+the
+proper
+URL
+type
+for
+<code>
+http://tantek.com/
+</code>.
+</p>
+<del class="diff-old">{
+</del>
+    <div class="example"><div class="example-title"><span>Example 77</span>: Same hCard representation in JSON-LD</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;vcard&quot;: &quot;http://microformats.org/profile/hcard#vcard&quot;,
+    &quot;url&quot;:
+    {
+      &quot;@id&quot;: &quot;http://microformats.org/profile/hcard#url&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+    &quot;fn&quot;: &quot;http://microformats.org/profile/hcard#fn&quot;
+  },
+  &quot;@type&quot;: &quot;vcard&quot;,
+  &quot;url&quot;: &quot;http://tantek.com/&quot;,
+  &quot;fn&quot;: &quot;Tantek Çelik&quot;
+}
+</pre>
+</div>
+</section>
+<section class="informative" id="microdata">
+<h3>
+<span class="secno">
+<del class="diff-old">B.5
+</del>
+<ins class="diff-chg">D.4
+</ins>
+</span>
+Microdata
+</h3>
+<p>
+<em>
+<ins class="diff-new">This
+section
+is
+non-normative.
+</ins></em></p>
+<p>
+The
+<del class="diff-old">microdata
+</del>
+<ins class="diff-chg">HTML
+Microdata
+[
+</ins><cite><a class="bibref" href="#bib-MICRODATA"><ins class="diff-chg">
+MICRODATA
+</ins></a></cite><ins class="diff-chg">
+]
+</ins>
+example
+below
+expresses
+book
+information
+as
+a
+<del class="diff-old">microdata
+</del>
+<ins class="diff-chg">Microdata
+</ins>
+Work
+item.
+</p>
+<del class="diff-old">&lt;dl itemscope
+</del>
+    <div class="example"><div class="example-title"><span>Example 78</span>: HTML fragments that describes a book using microdata</div><pre class="example">&lt;dl itemscope
+    itemtype=&quot;http://purl.org/vocab/frbr/core#Work&quot;
+    itemid=&quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;&gt;
+ &lt;dt&gt;Title&lt;/dt&gt;
+ &lt;dd&gt;&lt;cite itemprop=&quot;http://purl.org/dc/terms/title&quot;&gt;Just a Geek&lt;/cite&gt;&lt;/dd&gt;
+ &lt;dt&gt;By&lt;/dt&gt;
+ &lt;dd&gt;&lt;span itemprop=&quot;http://purl.org/dc/terms/creator&quot;&gt;Wil Wheaton&lt;/span&gt;&lt;/dd&gt;
+ &lt;dt&gt;Format&lt;/dt&gt;
+ &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
+     itemscope
+     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
+     itemid=&quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;&gt;
+  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/BOOK&quot;&gt;
+  Print
+ &lt;/dd&gt;
+ &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
+     itemscope
+     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
+     itemid=&quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;&gt;
+  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/EBOOK&quot;&gt;
+  Ebook
+ &lt;/dd&gt;
+&lt;/dl&gt;
+</pre>
+</div>
+<p>
+Note
+that
+the
+JSON-LD
+representation
+of
+the
+Microdata
+information
+stays
+true
+to
+the
+desires
+of
+the
+Microdata
+community
+to
+avoid
+contexts
+and
+instead
+refer
+to
+items
+by
+their
+full
+<a class="tref internalDFN" title="iri" href="#dfn-iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+</p>
+<del class="diff-old">[
+</del>
+    <div class="example"><div class="example-title"><span>Example 79</span>: Same book description in JSON-LD (avoiding contexts)</div><pre class="example">[
+  {
+    &quot;@id&quot;: &quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;,
+    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Work&quot;,
+    &quot;http://purl.org/dc/terms/title&quot;: &quot;Just a Geek&quot;,
+    &quot;http://purl.org/dc/terms/creator&quot;: &quot;Whil Wheaton&quot;,
+    &quot;http://purl.org/vocab/frbr/core#realization&quot;:
+    [
+      &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
+      &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;
+    ]
+  },
+  {
+    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
+    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
+    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/BOOK&quot;
+  },
+  {
+    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;,
+    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
+    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/EBOOK&quot;
+  }
+]
+</pre>
+</div>
+</section>
+</section>
+<section class="appendix normative" id="iana-considerations">
+<h2>
+<span class="secno">
+<del class="diff-old">C.
+</del>
+<ins class="diff-chg">E.
+</ins>
+</span>
+IANA
+Considerations
+</h2>
+<del class="diff-old">This
+section
+is
+non-normative.
+</del>
+<p>
+This
+section
+is
+included
+<del class="diff-old">merely
+</del>
+for
+<del class="diff-old">standards
+</del>
+community
+review
+and
+will
+be
+submitted
+to
+the
+Internet
+Engineering
+Steering
+Group
+<del class="diff-old">if
+</del>
+<ins class="diff-chg">(IESG)
+as
+part
+of
+the
+Last
+Call
+announcement
+for
+</ins>
+this
+<del class="diff-old">specification
+becomes
+a
+W3C
+Recommendation.
+</del>
+<ins class="diff-chg">specification.
+</ins>
+</p>
+<h2 id="application-ld-json">
+application/ld+json
+</h2>
+<dl>
+<dt>
+Type
+name:
+</dt>
+<dd>
+application
+</dd>
+<dt>
+Subtype
+name:
+</dt>
+<dd>
+ld+json
+</dd>
+<dt>
+Required
+parameters:
+</dt>
+<dd>
+None
+</dd>
+<dt>
+Optional
+parameters:
+</dt>
+<dd>
+<dl>
+<dt>
+<code>
+<del class="diff-old">form
+</del>
+<ins class="diff-chg">profile
+</ins>
+</code>
+</dt>
+<dd>
+<del class="diff-old">Determines
+</del>
+<p>
+<ins class="diff-chg">A
+a
+non-empty
+list
+of
+space-separated
+URI-encoded
+URIs
+identifying
+specific
+constraints
+or
+conventions
+that
+apply
+to
+a
+JSON-LD
+document
+according
+[
+</ins><cite><a class="bibref" href="#bib-RFC6906"><ins class="diff-chg">
+RFC6906
+</ins></a></cite><ins class="diff-chg">
+].
+A
+profile
+does
+not
+change
+</ins>
+the
+<del class="diff-old">serialization
+form
+for
+</del>
+<ins class="diff-chg">semantics
+of
+</ins>
+the
+<del class="diff-old">JSON-LD
+document.
+</del>
+<ins class="diff-chg">resource
+representation
+when
+processed
+without
+profile
+knowledge,
+so
+that
+clients
+both
+with
+and
+without
+knowledge
+of
+a
+profiled
+resource
+can
+safely
+use
+the
+same
+representation.
+</ins>
+The
+<del class="diff-old">only
+valid
+value
+at
+</del>
+<code>
+<ins class="diff-chg">profile
+</ins></code><ins class="diff-chg">
+parameter
+may
+be
+used
+by
+clients
+to
+express
+their
+preferences
+in
+</ins>
+the
+<del class="diff-old">moment
+</del>
+<ins class="diff-chg">content
+negotiation
+process.
+It
+</ins>
+is
+<em class="rfc2119" title="RECOMMENDED">
+<ins class="diff-new">RECOMMENDED
+</ins></em><ins class="diff-new">
+that
+profile
+URIs
+are
+dereferenceable
+and
+provide
+useful
+documentation
+at
+that
+URI.
+For
+more
+information
+and
+background
+please
+refer
+to
+[
+</ins><cite><a class="bibref" href="#bib-RFC6906"><ins class="diff-new">
+RFC6906
+</ins></a></cite><ins class="diff-new">
+].
+</ins></p><p><ins class="diff-new">
+This
+specification
+defines
+three
+values
+for
+the
+</ins>
+<code>
+<del class="diff-old">expanded
+.
+If
+no
+form
+is
+specified
+in
+an
+HTTP
+</del>
+<ins class="diff-chg">profile
+</ins></code><ins class="diff-chg">
+parameter.
+To
+</ins>
+request
+<del class="diff-old">header
+to
+an
+HTTP
+server,
+</del>
+<ins class="diff-chg">or
+specify
+Expanded
+JSON-LD
+document
+form,
+</ins>
+the
+<del class="diff-old">server
+may
+</del>
+<ins class="diff-chg">URI
+</ins><code><ins class="diff-chg">
+http://www.w3.org/ns/json-ld#expanded
+</ins></code><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
+SHOULD
+</ins>
+</em>
+<del class="diff-old">choose
+any
+form.
+If
+no
+form
+is
+specified
+in
+an
+HTTP
+response,
+</del>
+<ins class="diff-chg">be
+used.
+To
+request
+or
+specify
+Compacted
+JSON-LD
+document
+form,
+</ins>
+the
+<del class="diff-old">form
+must
+not
+</del>
+<ins class="diff-chg">URI
+</ins><code><ins class="diff-chg">
+http://www.w3.org/ns/json-ld#compacted
+</ins></code><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
+SHOULD
+</ins>
+</em>
+be
+<del class="diff-old">assumed
+</del>
+<ins class="diff-chg">used.
+To
+request
+or
+specify
+Flattened
+JSON-LD
+document
+form,
+the
+URI
+</ins><code><ins class="diff-chg">
+http://www.w3.org/ns/json-ld#flattened
+</ins></code><em class="rfc2119" title="SHOULD"><ins class="diff-chg">
+SHOULD
+</ins></em><ins class="diff-chg">
+be
+used.
+Please
+note
+that,
+according
+[
+</ins><cite><a class="bibref" href="#bib-HTTP11"><ins class="diff-chg">
+HTTP11
+</ins></a></cite><ins class="diff-chg">
+],
+the
+value
+of
+the
+</ins><code><ins class="diff-chg">
+profile
+</ins></code><ins class="diff-chg">
+parameter
+has
+</ins>
+to
+<del class="diff-old">take
+any
+particular
+form.
+</del>
+<ins class="diff-chg">be
+enclosed
+in
+quotes
+(
+</ins><code><ins class="diff-chg">
+&quot;
+</ins></code><ins class="diff-chg">
+)
+because
+it
+contains
+special
+characters
+and,
+if
+multiple
+profiles
+are
+combined,
+whitespace.
+</ins></p><p><ins class="diff-chg">
+When
+processing
+the
+&quot;profile&quot;
+media
+type
+parameter,
+it
+is
+important
+to
+apply
+URI-decoding
+before
+processing
+the
+URI
+(such
+as
+comparing
+it
+to
+known
+profiles).
+</ins></p>
+</dd>
+</dl>
+</dd>
+<dt>
+Encoding
+considerations:
+</dt>
+<dd>
+<del class="diff-old">The
+same
+as
+the
+application/json
+MIME
+media
+type.
+</del>
+<ins class="diff-chg">See
+RFC
+6839,
+section
+3.1.
+</ins>
+</dd>
+<dt>
+Security
+considerations:
+</dt>
+<dd>
+Since
+JSON-LD
+is
+intended
+to
+be
+a
+pure
+data
+exchange
+format
+for
+directed
+graphs,
+the
+serialization
+<del class="diff-old">should
+not
+</del>
+<em class="rfc2119" title="SHOULD NOT">
+<ins class="diff-chg">SHOULD
+NOT
+</ins>
+</em>
+be
+passed
+through
+a
+code
+execution
+mechanism
+such
+as
+JavaScript's
+<code>
+eval()
+</code>
+<del class="diff-old">function.
+</del>
+<ins class="diff-chg">function
+to
+be
+parsed.
+</ins><br /><ins class="diff-chg">
+JSON-LD
+contexts
+that
+are
+loaded
+from
+the
+Web
+over
+non-secure
+connections,
+such
+as
+HTTP,
+run
+the
+risk
+of
+modifying
+the
+JSON-LD
+</ins><a class="tref internalDFN" title="active-context" href="#dfn-active-context"><ins class="diff-chg">
+active
+context
+</ins></a><ins class="diff-chg">
+in
+a
+way
+that
+could
+compromise
+security.
+</ins>
+It
+is
+<del class="diff-old">recommended
+</del>
+<ins class="diff-chg">advised
+</ins>
+that
+<ins class="diff-new">any
+application
+that
+depends
+on
+</ins>
+a
+<del class="diff-old">conforming
+parser
+does
+not
+attempt
+</del>
+<ins class="diff-chg">remote
+context
+for
+mission
+critical
+purposes
+vet
+and
+cache
+the
+remote
+context
+before
+allowing
+the
+system
+</ins>
+to
+<del class="diff-old">directly
+evaluate
+</del>
+<ins class="diff-chg">use
+it.
+</ins><br /><ins class="diff-chg">
+Given
+that
+JSON-LD
+allows
+</ins>
+the
+<ins class="diff-new">substitution
+of
+long
+IRIs
+with
+short
+terms,
+</ins>
+JSON-LD
+<del class="diff-old">serialization
+and
+instead
+purely
+parse
+</del>
+<ins class="diff-chg">documents
+may
+expand
+considerably
+when
+processed
+and,
+in
+</ins>
+the
+<del class="diff-old">input
+into
+a
+language-native
+</del>
+<ins class="diff-chg">worst
+case,
+the
+resulting
+</ins>
+data
+<del class="diff-old">structure.
+</del>
+<ins class="diff-chg">might
+consume
+all
+of
+the
+recipient's
+resources.
+Applications
+should
+treat
+any
+data
+with
+due
+skepticism.
+</ins>
+</dd>
+<dt>
+Interoperability
+considerations:
+</dt>
+<dd>
+Not
+Applicable
+</dd>
+<dt>
+Published
+specification:
+</dt>
+<dd>
+<del class="diff-old">The
+JSON-LD
+specification.
+</del>
+<ins class="diff-chg">http://www.w3.org/TR/json-ld
+</ins>
+</dd>
+<dt>
+Applications
+that
+use
+this
+media
+type:
+</dt>
+<dd>
+Any
+programming
+environment
+that
+requires
+the
+exchange
+of
+directed
+graphs.
+Implementations
+of
+JSON-LD
+have
+been
+created
+for
+JavaScript,
+Python,
+Ruby,
+<del class="diff-old">PHP
+</del>
+<ins class="diff-chg">PHP,
+</ins>
+and
+C++.
+</dd>
+<dt>
+Additional
+information:
+</dt>
+<dd>
+<dl>
+<dt>
+Magic
+number(s):
+</dt>
+<dd>
+Not
+Applicable
+</dd>
+<dt>
+File
+extension(s):
+</dt>
+<dd>.jsonld
+</dd>
+<dt>
+Macintosh
+file
+type
+code(s):
+</dt>
+<dd>
+TEXT
+</dd>
+</dl>
+</dd>
+<dt>
+Person
+&amp;
+email
+address
+to
+contact
+for
+further
+information:
+</dt>
+<dd>
+Manu
+Sporny
+&lt;msporny@digitalbazaar.com&gt;
+</dd>
+<dt>
+Intended
+usage:
+</dt>
+<dd>
+Common
+</dd>
+<dt>
+Restrictions
+on
+usage:
+</dt>
+<dd>
+None
+</dd>
+<dt>
+Author(s):
+</dt>
+<dd>
+Manu
+Sporny,
+<ins class="diff-new">Dave
+Longley,
+</ins>
+Gregg
+Kellogg,
+Markus
+Lanthaler,
+<del class="diff-old">Dave
+Longley
+</del>
+<ins class="diff-chg">Niklas
+Lindström
+</ins>
+</dd>
+<dt>
+Change
+controller:
+</dt>
+<dd>
+<abbr title="World Wide Web Consortium">
+W3C
+</abbr>
+</dd>
+</dl>
+<p>
+Fragment
+identifiers
+used
+with
+<a href="#application-ld-json">
+application/ld+json
+</a>
+<del class="diff-old">resources
+may
+identify
+a
+node
+in
+the
+linked
+data
+graph
+expressed
+in
+the
+resource.
+This
+idiom,
+which
+is
+also
+used
+</del>
+<ins class="diff-chg">are
+treated
+as
+</ins>
+in
+RDF
+<ins class="diff-new">syntaxes,
+as
+per
+</ins><cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-fragID"><ins class="diff-new">
+RDF
+1.1
+Concepts
+and
+Abstract
+Syntax
+</ins></a></cite>
+[
+<cite>
+<del class="diff-old">RDF-CONCEPTS
+</del>
+<a class="bibref" href="#bib-RDF11-CONCEPTS">
+<ins class="diff-chg">RDF11-CONCEPTS
+</ins>
+</a>
+</cite>
+<del class="diff-old">],
+gives
+a
+simple
+way
+to
+&quot;mint&quot;
+new,
+document-local
+IRIs
+to
+label
+nodes
+and
+therefore
+contributes
+considerably
+to
+the
+expressive
+power
+of
+JSON-LD.
+</del>
+<ins class="diff-chg">].
+</ins>
+</p>
+</section>
+<section class="appendix informative" id="acknowledgements">
+<h2>
+<span class="secno">
+<del class="diff-old">D.
+</del>
+<ins class="diff-chg">F.
+</ins>
+</span>
+Acknowledgements
+</h2>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+The
+<del class="diff-old">editors
+</del>
+<ins class="diff-chg">authors
+</ins>
+would
+like
+to
+<del class="diff-old">thank
+</del>
+<ins class="diff-chg">extend
+a
+deep
+appreciation
+and
+the
+most
+sincere
+thanks
+to
+</ins>
+Mark
+Birbeck,
+who
+<del class="diff-old">provided
+</del>
+<ins class="diff-chg">contributed
+foundational
+concepts
+to
+JSON-LD
+via
+his
+work
+on
+RDFj.
+JSON-LD
+uses
+</ins>
+a
+<del class="diff-old">great
+deal
+</del>
+<ins class="diff-chg">number
+</ins>
+of
+<ins class="diff-new">core
+concepts
+introduced
+in
+RDFj,
+such
+as
+</ins>
+the
+<del class="diff-old">initial
+push
+behind
+</del>
+<ins class="diff-chg">context
+as
+a
+mechanism
+to
+provide
+an
+environment
+for
+interpreting
+JSON
+data.
+Mark
+had
+also
+been
+very
+involved
+in
+</ins>
+the
+<del class="diff-old">JSON-LD
+</del>
+work
+<del class="diff-old">via
+his
+</del>
+<ins class="diff-chg">on
+RDFa
+as
+well.
+RDFj
+built
+upon
+that
+work.
+JSON-LD
+exists
+because
+of
+the
+</ins>
+work
+<ins class="diff-new">and
+ideas
+he
+started
+nearly
+a
+decade
+ago
+in
+2004.
+</ins></p><p><ins class="diff-new">
+A
+large
+amount
+of
+thanks
+goes
+out
+to
+the
+JSON-LD
+Community
+Group
+participants
+who
+worked
+through
+many
+of
+the
+technical
+issues
+</ins>
+on
+<del class="diff-old">RDFj,
+Dave
+</del>
+<ins class="diff-chg">the
+mailing
+list
+and
+the
+weekly
+telecons
+-
+of
+special
+mention
+are
+François
+Daoust,
+Stéphane
+Corlosquet,
+Lin
+Clark,
+and
+Zdenko
+'Denny'
+Vrandečić.
+</ins></p><p><ins class="diff-chg">
+The
+work
+of
+David
+I.
+</ins>
+Lehn
+and
+Mike
+Johnson
+<del class="diff-old">who
+reviewed,
+provided
+feedback,
+</del>
+<ins class="diff-chg">are
+appreciated
+for
+reviewing,
+</ins>
+and
+<del class="diff-old">performed
+</del>
+<ins class="diff-chg">performing
+</ins>
+several
+<ins class="diff-new">early
+</ins>
+implementations
+of
+the
+<del class="diff-old">specification,
+and
+</del>
+<ins class="diff-chg">specification.
+Thanks
+also
+to
+</ins>
+Ian
+<del class="diff-old">Davis,
+who
+created
+</del>
+<ins class="diff-chg">Davis
+for
+this
+work
+on
+</ins>
+RDF/JSON.
+</p>
+<p>
+Thanks
+<del class="diff-old">also
+</del>
+to
+<del class="diff-old">Nathan
+Rixham,
+Bradley
+P.
+Allen,
+Kingsley
+Idehen,
+Glenn
+McDonald,
+</del>
+<ins class="diff-chg">the
+following
+individuals,
+in
+order
+of
+their
+first
+name,
+for
+their
+input
+on
+the
+specification:
+Adrian
+Walker,
+</ins>
+Alexandre
+Passant,
+<ins class="diff-new">Andy
+Seaborne,
+Ben
+Adida,
+Blaine
+Cook,
+Bradley
+Allen,
+Brian
+Peterson,
+Bryan
+Thompson,
+Conal
+Tuohy,
+Dan
+Brickley,
+</ins>
+Danny
+Ayers,
+<del class="diff-old">Ted
+Thibodeau
+Jr.,
+Olivier
+Grisel,
+Josh
+Mandel,
+Eric
+Prud'hommeaux,
+</del>
+<ins class="diff-chg">Daniel
+Leja,
+Dave
+Reynolds,
+David
+I.
+Lehn,
+</ins>
+David
+Wood,
+<ins class="diff-new">Dean
+Landolt,
+Ed
+Summers,
+elf
+Pavlik,
+Eric
+Prud'hommeaux,
+Erik
+Wilde,
+Fabian
+Christ,
+Jon
+A.
+Frost,
+Gavin
+Carothers,
+Glenn
+McDonald,
+</ins>
+Guus
+Schreiber,
+<ins class="diff-new">Henri
+Bergius,
+Jose
+María
+Alvarez
+Rodríguez,
+Ivan
+Herman,
+Jack
+Moffitt,
+Josh
+Mandel,
+KANZAKI
+Masahide,
+Kingsley
+Idehen,
+Kuno
+Woudt,
+Larry
+Garfield,
+Mark
+Baker,
+Mark
+MacGillivray,
+Marko
+Rodriguez,
+Melvin
+Carvalho,
+Nathan
+Rixham,
+Olivier
+Grisel,
+Paolo
+Ciccarese,
+</ins>
+Pat
+Hayes,
+<ins class="diff-new">Patrick
+Logan,
+Paul
+Kuykendall,
+Pelle
+Braendgaard,
+Peter
+Williams,
+Pierre-Antoine
+Champin,
+Richard
+Cyganiak,
+Roy
+T.
+Fielding,
+</ins>
+Sandro
+Hawke,
+<ins class="diff-new">Srecko
+Joksimovic,
+Stephane
+Fellah,
+Steve
+Harris,
+Ted
+Thibodeau
+Jr.,
+Thomas
+Steiner,
+Tim
+Bray,
+Tom
+Morris,
+Tristan
+King,
+Sergio
+Fernández,
+Werner
+Wilms,
+</ins>
+and
+<del class="diff-old">Richard
+Cyganiak
+for
+their
+input
+on
+the
+specification.
+</del>
+<ins class="diff-chg">William
+Waites.
+</ins>
+</p>
+</section>
+<section id="references" class="appendix" typeof="bibo:Chapter" resource="#references" rel="bibo:chapter">
+<h2>
+<span class="secno">
+<del class="diff-old">E.
+</del>
+<ins class="diff-chg">G.
+</ins>
+</span>
+References
+</h2>
+<section id="normative-references" typeof="bibo:Chapter" resource="#normative-references" rel="bibo:chapter">
+<h3>
+<span class="secno">
+<del class="diff-old">E.1
+</del>
+<ins class="diff-chg">G.1
+</ins>
+</span>
+Normative
+references
+</h3>
+<dl class="bibliography" about="">
+<dt id="bib-BCP47">
+[BCP47]
+</dt>
+<dd rel="dcterms:requires">
+A.
+Phillips;
+M.
+Davis.
+<a href="http://tools.ietf.org/html/bcp47">
+<cite>
+Tags
+for
+Identifying
+Languages
+</cite>
+</a>.
+September
+2009.
+IETF
+Best
+Current
+Practice.
+URL:
+<a href="http://tools.ietf.org/html/bcp47">
+http://tools.ietf.org/html/bcp47
+</a>
+</dd>
+<del class="diff-old">[JSON-LD-API]
+</del>
+<dt id="bib-RFC2119">
+<ins class="diff-chg">[RFC2119]
+</ins>
+</dt>
+<dd rel="dcterms:requires">
+<ins class="diff-chg">S.
+Bradner.
+</ins><a href="http://www.ietf.org/rfc/rfc2119.txt">
+<cite>
+<del class="diff-old">The
+JSON-LD
+API
+1.0
+Manu
+Sporny,
+Gregg
+Kellogg,
+Dave
+Longley,
+Markus
+Lanthaler,
+Editors.
+World
+Wide
+Web
+Consortium
+(work
+</del>
+<ins class="diff-chg">Key
+words
+for
+use
+</ins>
+in
+<del class="diff-old">progress).
+24
+May
+2012.
+Editor's
+Draft.
+This
+edition
+of
+the
+JSON-LD
+Syntax
+specification
+is
+http://json-ld.org/spec/ED/json-ld-api/20120524/.
+The
+latest
+edition
+of
+the
+JSON-LD
+Syntax
+is
+available
+at
+http://json-ld.org/spec/latest/json-ld-api/
+[RDF-CONCEPTS]
+</del>
+<ins class="diff-chg">RFCs
+to
+Indicate
+Requirement
+Levels.
+</ins></cite>
+<del class="diff-old">RDF
+1.1
+Concepts
+and
+Abstract
+Syntax
+</del>
+</a>
+<del class="diff-old">Richard
+Cyganiak,
+David
+Wood,
+Editors.
+World
+Wide
+Web
+Consortium
+(work
+in
+progress).
+30
+May
+2012.
+Editor's
+Draft.
+This
+edition
+of
+the
+JSON-LD
+Syntax
+specification
+is
+http://www.w3.org/TR/2011/WD-rdf11-concepts-20110830/.
+The
+latest
+edition
+of
+the
+JSON-LD
+Syntax
+</del>
+<ins class="diff-chg">March
+1997.
+Internet
+RFC
+2119.
+URL:
+</ins><a href="http://www.ietf.org/rfc/rfc2119.txt"><ins class="diff-chg">
+http://www.ietf.org/rfc/rfc2119.txt
+</ins>
+</a>
+<del class="diff-old">is
+available
+at
+http://www.w3.org/TR/rdf11-concepts/
+</del>
+</dd>
+<dt id="bib-RFC3987">
+[RFC3987]
+</dt>
+<dd rel="dcterms:requires">
+M.
+Dürst;
+M.
+Suignard.
+<a href="http://www.ietf.org/rfc/rfc3987.txt">
+<cite>
+Internationalized
+Resource
+Identifiers
+<del class="diff-old">(IRIs).
+</del>
+<ins class="diff-chg">(IRIs)
+(RFC
+3987)
+</ins>
+</cite>
+</a>.
+January
+2005.
+<del class="diff-old">Internet
+RFC
+3987.
+</del>
+<ins class="diff-chg">RFC.
+</ins>
+URL:
+<a href="http://www.ietf.org/rfc/rfc3987.txt">
+http://www.ietf.org/rfc/rfc3987.txt
+</a>
+</dd>
+<dt id="bib-RFC4627">
+[RFC4627]
+</dt>
+<dd rel="dcterms:requires">
+D.
+Crockford.
+<a href="http://www.ietf.org/rfc/rfc4627.txt">
+<cite>
+The
+application/json
+Media
+Type
+for
+JavaScript
+Object
+Notation
+(JSON)
+<ins class="diff-new">(RFC
+4627)
+</ins>
+</cite>
+</a>.
+July
+2006.
+<del class="diff-old">Internet
+RFC
+4627.
+</del>
+<ins class="diff-chg">RFC.
+</ins>
+URL:
+<a href="http://www.ietf.org/rfc/rfc4627.txt">
+http://www.ietf.org/rfc/rfc4627.txt
+</a>
+</dd>
+<dt id="bib-RFC5988">
+[RFC5988]
+</dt>
+<dd rel="dcterms:requires">
+<ins class="diff-chg">M.
+Nottingham.
+</ins>
+<cite>
+<a href="http://www.ietf.org/rfc/rfc5988.txt">
+Web
+Linking
+</a>.
+</cite>
+<del class="diff-old">M.
+Nottingham.
+Editor.
+</del>
+October
+2010.
+<del class="diff-old">IETF
+Standard.
+</del>
+<ins class="diff-chg">Internet
+RFC
+5988.
+</ins>
+URL:
+<del class="diff-old">http://tools.ietf.org/rfc/rfc5988.txt
+</del>
+<a href="http://www.ietf.org/rfc/rfc5988.txt">
+<ins class="diff-chg">http://www.ietf.org/rfc/rfc5988.txt
+</ins>
+</a>
+</dd>
+</dl>
+</section>
+<section id="informative-references" typeof="bibo:Chapter" resource="#informative-references" rel="bibo:chapter">
+<h3>
+<span class="secno">
+<del class="diff-old">E.2
+</del>
+<ins class="diff-chg">G.2
+</ins>
+</span>
+Informative
+references
+</h3>
+<dl class="bibliography" about="">
+<del class="diff-old">[RDF-PRIMER]
+</del>
+<dt id="bib-HTTP11">
+<ins class="diff-chg">[HTTP11]
+</ins>
+</dt>
+<del class="diff-old">Frank
+Manola;
+Eric
+Miller.
+</del>
+<dd rel="dcterms:references">
+<ins class="diff-chg">R.
+Fielding
+et
+al.
+</ins><a href="http://www.ietf.org/rfc/rfc2616.txt">
+<cite>
+<del class="diff-old">RDF
+Primer.
+</del>
+<ins class="diff-chg">Hypertext
+Transfer
+Protocol
+-
+HTTP/1.1
+</ins>
+</cite>
+</a>.
+<ins class="diff-new">June
+1999.
+RFC
+2616.
+URL:
+</ins><a href="http://www.ietf.org/rfc/rfc2616.txt"><ins class="diff-new">
+http://www.ietf.org/rfc/rfc2616.txt
+</ins>
+</a>
+</dd>
+<dt id="bib-JSON-LD-API">
+<ins class="diff-new">[JSON-LD-API]
+</ins></dt><dd rel="dcterms:references"><ins class="diff-new">
+Markus
+Lanthaler,
+Gregg
+Kellogg,
+Manu
+Sporny,
+Editors.
+</ins><cite><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/"><ins class="diff-new">
+JSON-LD
+1.0
+Processing
+Algorithms
+and
+API
+</ins></a>.</cite><ins class="diff-new">
+W3C
+Working
+Draft
+(work
+in
+progress).
+URL:
+</ins><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/"><ins class="diff-new">
+http://www.w3.org/TR/2013/WD-json-ld-api-20130411/
+</ins></a>.<ins class="diff-new">
+The
+latest
+edition
+is
+available
+at
+</ins><a href="http://www.w3.org/TR/json-ld-api/"><ins class="diff-new">
+http://www.w3.org/TR/json-ld-api/
+</ins></a></dd><dt id="bib-JSON-LD-TESTS"><ins class="diff-new">
+[JSON-LD-TESTS]
+</ins></dt><dd rel="dcterms:references"><cite><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-new">
+JSON-LD
+1.0
+Test
+Suite
+</ins></a></cite>.<ins class="diff-new">
+W3C
+Test
+Suite
+(work
+in
+progress).
+URL:
+</ins><a href="http://www.w3.org/2013/json-ld-tests/"><ins class="diff-new">
+http://www.w3.org/2013/json-ld-tests/
+</ins></a></dd><dt id="bib-MICRODATA"><ins class="diff-new">
+[MICRODATA]
+</ins></dt><dd rel="dcterms:references"><ins class="diff-new">
+Ian
+Hickson,
+Editor.
+</ins><cite><a href="http://www.w3.org/TR/2012/WD-microdata-20121025/"><ins class="diff-new">
+HTML
+Microdata
+</ins></a>.</cite><ins class="diff-new">
+25
+October
+2012.
+W3C
+Working
+Draft
+(work
+in
+progress).
+URL:
+</ins><a href="http://www.w3.org/TR/2012/WD-microdata-20121025/"><ins class="diff-new">
+http://www.w3.org/TR/2012/WD-microdata-20121025/
+</ins></a>.<ins class="diff-new">
+The
+latest
+edition
+is
+available
+at
+</ins><a href="http://www.w3.org/TR/microdata/"><ins class="diff-new">
+http://www.w3.org/TR/microdata/
+</ins></a></dd><dt id="bib-MICROFORMATS"><ins class="diff-new">
+[MICROFORMATS]
+</ins></dt><dd rel="dcterms:references"><a href="http://microformats.org"><cite><ins class="diff-new">
+Microformats
+</ins></cite></a>.<ins class="diff-new">
+URL:
+</ins><a href="http://microformats.org"><ins class="diff-new">
+http://microformats.org
+</ins></a></dd><dt id="bib-RDF-SCHEMA"><ins class="diff-new">
+[RDF-SCHEMA]
+</ins></dt><dd rel="dcterms:references"><ins class="diff-new">
+Dan
+Brickley;
+Ramanathan
+V.
+Guha.
+</ins><a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210"><cite><ins class="diff-new">
+RDF
+Vocabulary
+Description
+Language
+1.0:
+RDF
+Schema
+</ins></cite></a>.
+10
+February
+2004.
+W3C
+Recommendation.
+URL:
+<del class="diff-old">http://www.w3.org/TR/2004/REC-rdf-primer-20040210/
+</del>
+<a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210">
+<ins class="diff-chg">http://www.w3.org/TR/2004/REC-rdf-schema-20040210
+</ins></a></dd><dt id="bib-RDF11-CONCEPTS"><ins class="diff-chg">
+[RDF11-CONCEPTS]
+</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
+Richard
+Cyganiak,
+David
+Wood,
+Editors.
+</ins><cite><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/"><ins class="diff-chg">
+RDF
+1.1
+Concepts
+and
+Abstract
+Syntax.
+</ins></a></cite><ins class="diff-chg">
+15
+January
+2013.
+W3C
+Working
+Draft
+(work
+in
+progress).
+URL:
+</ins><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/"><ins class="diff-chg">
+http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/
+</ins></a>.<ins class="diff-chg">
+The
+latest
+edition
+is
+available
+at
+</ins><a href="http://www.w3.org/TR/rdf11-concepts/"><ins class="diff-chg">
+http://www.w3.org/TR/rdf11-concepts/
+</ins>
+</a>
+</dd>
+<dt id="bib-RDFA-CORE">
+[RDFA-CORE]
+</dt>
+<dd rel="dcterms:references">
+Shane
+<del class="diff-old">McCarron;
+</del>
+<ins class="diff-chg">McCarron
+</ins>
+et
+al.
+<a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/">
+<cite>
+RDFa
+Core
+1.1:
+Syntax
+and
+processing
+rules
+for
+embedding
+RDF
+through
+<del class="diff-old">attributes.
+</del>
+<ins class="diff-chg">attributes
+</ins>
+</cite>
+</a>.
+7
+June
+2012.
+W3C
+Recommendation.
+URL:
+<del class="diff-old">http://www.w3.org/TR/rdfa-core/
+</del>
+<a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/">
+<ins class="diff-chg">http://www.w3.org/TR/2012/REC-rdfa-core-20120607/
+</ins>
+</a>
+</dd>
+<del class="diff-old">[TURTLE-TR]
+</del>
+<dt id="bib-RFC3986">
+<ins class="diff-chg">[RFC3986]
+</ins>
+</dt>
+<dd rel="dcterms:references">
+<ins class="diff-chg">T.
+Berners-Lee;
+R.
+Fielding;
+L.
+Masinter.
+</ins><a href="http://www.ietf.org/rfc/rfc3986.txt"><cite><ins class="diff-chg">
+Uniform
+Resource
+Identifier
+(URI):
+Generic
+Syntax
+(RFC
+3986)
+</ins></cite></a>.<ins class="diff-chg">
+January
+2005.
+RFC.
+URL:
+</ins><a href="http://www.ietf.org/rfc/rfc3986.txt"><ins class="diff-chg">
+http://www.ietf.org/rfc/rfc3986.txt
+</ins></a></dd><dt id="bib-RFC6906"><ins class="diff-chg">
+[RFC6906]
+</ins></dt><dd rel="dcterms:references"><ins class="diff-chg">
+Erik
+Wilde.
+</ins><cite><a href="http://www.ietf.org/rfc/rfc6906.txt"><ins class="diff-chg">
+The
+'profile'
+Link
+Relation
+Type
+</ins></a>.</cite><ins class="diff-chg">
+March
+2013.
+Internet
+RFC
+6906.
+URL:
+</ins><a href="http://www.ietf.org/rfc/rfc6906.txt"><ins class="diff-chg">
+http://www.ietf.org/rfc/rfc6906.txt
+</ins></a></dd><dt id="bib-TURTLE"><ins class="diff-chg">
+[TURTLE]
+</ins></dt><dd rel="dcterms:references">
+Eric
+Prud'hommeaux,
+Gavin
+<del class="diff-old">Carothers.
+</del>
+<ins class="diff-chg">Carothers,
+Editors.
+</ins>
+<cite>
+<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
+Turtle:
+Terse
+RDF
+Triple
+Language.
+</a>
+</cite>
+<del class="diff-old">09
+August
+2011.
+</del>
+<ins class="diff-chg">19
+February
+2013.
+</ins>
+W3C
+<del class="diff-old">Working
+Draft.
+</del>
+<ins class="diff-chg">Candidate
+Recommendation
+(work
+in
+progress).
+</ins>
+URL:
+<del class="diff-old">http://www.w3.org/TR/2011/WD-turtle-20110809/
+</del>
+<a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">
+<ins class="diff-chg">http://www.w3.org/TR/2013/CR-turtle-20130219/
+</ins></a>.<ins class="diff-chg">
+The
+latest
+edition
+is
+available
+at
+</ins><a href="http://www.w3.org/TR/turtle/"><ins class="diff-chg">
+http://www.w3.org/TR/turtle/
+</ins>
+</a>
+</dd>
+</dl>
+</section>
+</section>
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spec/WD/json-ld/20130411/index.html	Tue Apr 09 11:49:05 2013 -0400
@@ -0,0 +1,3620 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML+RDFa 1.1//EN' 'http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd'>
+<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" typeof="bibo:Document">
+<head>
+<title>JSON-LD 1.0</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<style type="text/css">
+  .diff { font-weight:bold; color:#0a3; }
+  table, thead, tr, td { padding: 5px; border-width: 1px; border-spacing: 0px; border-style: solid; border-collapse: collapse; }
+  .atrisk-head { font-style: italic; }
+</style>
+<style type="text/css">
+/* --- INLINES --- */
+em.rfc2119 {
+    text-transform:     lowercase;
+    font-variant:       small-caps;
+    font-style:         normal;
+    color:              #900;
+}
+
+h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
+h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
+    border: none;
+}
+
+dfn {
+    font-weight:    bold;
+}
+
+a.internalDFN {
+    color:  inherit;
+    border-bottom:  1px solid #99c;
+    text-decoration:    none;
+}
+
+a.externalDFN {
+    color:  inherit;
+    border-bottom:  1px dotted #ccc;
+    text-decoration:    none;
+}
+
+a.bibref {
+    text-decoration:    none;
+}
+
+cite .bibref {
+    font-style: normal;
+}
+
+code {
+    color:  #ff4500;
+}
+
+
+/* --- --- */
+ol.algorithm { counter-reset:numsection; list-style-type: none; }
+ol.algorithm li { margin: 0.5em 0; }
+ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
+
+/* --- TOC --- */
+.toc a, .tof a {
+    text-decoration:    none;
+}
+
+a .secno, a .figno {
+    color:  #000;
+}
+
+ul.tof, ol.tof {
+    list-style: none outside none;
+}
+
+.caption {
+    margin-top: 0.5em;
+    font-style:   italic;
+}
+
+/* --- TABLE --- */
+table.simple {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    border-bottom:  3px solid #005a9c;
+}
+
+.simple th {
+    background: #005a9c;
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+}
+
+.simple th[scope="row"] {
+    background: inherit;
+    color:  inherit;
+    border-top: 1px solid #ddd;
+}
+
+.simple td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+    background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd > p:first-child {
+    margin-top: 0;
+}
+
+.section dd > p:last-child {
+    margin-bottom: 0;
+}
+
+.section dd {
+    margin-bottom:  1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+    margin-bottom:  0;
+}
+</style><style type="text/css">/* --- EXAMPLES --- */
+div.example-title {
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.example-title span {
+    text-transform: uppercase;
+}
+aside.example, div.example, div.illegal-example {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+div.illegal-example { color: red }
+div.illegal-example p { color: black }
+aside.example, div.example {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+    border-color: #e0cb52;
+    background: #fcfaee;
+}
+
+aside.example div.example {
+    border-left-width: .1em;
+    border-color: #999;
+    background: #fff;
+}
+aside.example div.example div.example-title {
+    color: #999;
+}
+</style><style type="text/css">/* --- ISSUES/NOTES --- */
+div.issue-title, div.note-title {
+    padding-right:  1em;
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.issue-title { color: #e05252; }
+div.note-title { color: #52e052; }
+div.issue-title span, div.note-title span {
+    text-transform: uppercase;
+}
+div.note, div.issue {
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+.note > p:first-child, .issue > p:first-child { margin-top: 0 }
+.issue, .note {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+}
+div.issue, div.note {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+span.note, span.issue { padding: .1em .5em .15em; }
+
+.issue {
+    border-color: #e05252;
+    background: #fbe9e9;
+}
+.note {
+    border-color: #52e052;
+    background: #e9fbe9;
+}
+
+
+</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
+</head>
+
+<body><div class="head">
+  <p>
+
+      <a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" /></a>
+
+  </p>
+  <h1 class="title" id="title">JSON-LD 1.0</h1>
+
+    <h2 id="subtitle">A JSON-based Serialization for Linked Data</h2>
+
+  <h2 id="w3c-last-call-working-draft-11-april-2013"><abbr title="World Wide Web Consortium">W3C</abbr> Last Call Working Draft 11 April 2013</h2>
+  <dl>
+
+      <dt>This version:</dt>
+      <dd><a href="http://www.w3.org/TR/2013/WD-json-ld-20130411/">http://www.w3.org/TR/2013/WD-json-ld-20130411/</a></dd>
+      <dt>Latest published version:</dt>
+      <dd><a href="http://www.w3.org/TR/json-ld/">http://www.w3.org/TR/json-ld/</a></dd>
+
+
+      <dt>Latest editor's draft:</dt>
+      <dd><a href="http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html">http://dvcs.w3.org/hg/json-ld/raw-file/default/spec/latest/json-ld/index.html</a></dd>
+
+
+
+
+
+      <dt>Previous version:</dt>
+      <dd><a href="http://www.w3.org/TR/2012/WD-json-ld-syntax-20120712/">http://www.w3.org/TR/2012/WD-json-ld-syntax-20120712/</a></dd>
+
+
+    <dt>Editors:</dt>
+    <dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://manu.sporny.org/">Manu Sporny</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
+</dd>
+<dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">Gregg Kellogg</a>, <a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">Kellogg Associates</a></span>
+</dd>
+<dd rel="bibo:editor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>, <a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">Graz University of Technology</a></span>
+</dd>
+
+
+      <dt>Authors:</dt>
+      <dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Manu Sporny" href="http://digitalbazaar.com/">Manu Sporny</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
+</dd>
+<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Dave Longley" href="http://digitalbazaar.com/">Dave Longley</a>, <a rel="foaf:workplaceHomepage" href="http://digitalbazaar.com/">Digital Bazaar</a></span>
+</dd>
+<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Gregg Kellogg" href="http://greggkellogg.net/">Gregg Kellogg</a>, <a rel="foaf:workplaceHomepage" href="http://kellogg-assoc.com/">Kellogg Associates</a></span>
+</dd>
+<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Markus Lanthaler" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>, <a rel="foaf:workplaceHomepage" href="http://www.tugraz.at/">Graz University of Technology</a></span>
+</dd>
+<dd rel="dcterms:contributor"><span typeof="foaf:Person"><a rel="foaf:homepage" property="foaf:name" content="Niklas Lindström" href="http://neverspace.net/">Niklas Lindström</a></span>
+</dd>
+
+
+  </dl>
+
+
+    <p>
+
+        This document is also available in this non-normative format:
+
+      <a rel="alternate" href="diff-20120712.html">diff to previous version</a>
+    </p>
+
+
+
+
+      <p class="copyright">
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©
+        2010-2013
+
+        <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup>
+        (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,
+        <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
+        <a href="http://www.keio.ac.jp/">Keio</a>, <a href="http://ev.buaa.edu.cn/">Beihang</a>), All Rights Reserved.
+        <abbr title="World Wide Web Consortium">W3C</abbr> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and
+        <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.
+      </p>
+
+
+  <hr />
+</div>
+<div id="abstract" class="introductory section" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:chapter"><h2>Abstract</h2>
+  <p>JSON has proven to be a highly useful object serialization and messaging
+    format. This specification defines JSON-LD, a JSON-based format to serialize
+    Linked Data. The syntax is designed to not disturb already deployed systems
+    running on JSON, but provide a smooth upgrade path from JSON to JSON-LD.
+    It is primarily intended to be a way to use Linked Data in Web-based
+    programming environments, to build interoperable Web services, and to
+    store Linked Data in JSON-based storage engines.</p>
+</div><div id="sotd" class="introductory section" typeof="bibo:Chapter" resource="#sotd" rel="bibo:chapter"><h2>Status of This Document</h2>
+
+
+
+        <p>
+          <em>This section describes the status of this document at the time of its publication. Other
+          documents may supersede this document. A list of current <abbr title="World Wide Web Consortium">W3C</abbr> publications and the latest revision
+          of this technical report can be found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports
+          index</a> at http://www.w3.org/TR/.</em>
+        </p>
+
+  <p>This document has been under development for over 25 months in the
+    JSON for Linking Data Community Group. The document has recently been
+    transferred to the RDF Working Group for review, improvement, and publication.
+    The specification has undergone significant development, review, and changes
+    during the course of the last 25 months. There are several independent
+    <a href="http://json-ld.org/#impl">interoperable implementations</a> of
+    this specification and a fairly complete test suite [<cite><a class="bibref" href="#bib-JSON-LD-TESTS">JSON-LD-TESTS</a></cite>].</p>
+
+        <p>
+          This document was published by the <a href="http://www.w3.org/2011/rdf-wg/">RDF Working Group</a> as a Last Call Working Draft.
+
+            This document is intended to become a <abbr title="World Wide Web Consortium">W3C</abbr> Recommendation.
+
+
+          If you wish to make comments regarding this document, please send them to
+          <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>
+          (<a href="mailto:public-rdf-comments-request@w3.org?subject=subscribe">subscribe</a>,
+          <a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">archives</a>).
+
+          The Last Call period ends 11 May 2013.
+
+
+        All comments are welcome.
+
+
+          </p>
+
+
+  <div style="padding: 1em; margin: 1em; border: 1px solid red;">
+    <p>The Working Group welcomes reports of implementations, sent to the
+      comments address. If we gather sufficient evidence of interoperable
+      implementations, the group may request to skip Call for Implementations
+      (Candidate Recommendation) drafts and have the next round of
+      publications be Proposed Recommendations.</p>
+  </div>
+
+
+          <p>
+            Publication as a Last Call Working Draft does not imply endorsement by the <abbr title="World Wide Web Consortium">W3C</abbr> Membership.
+            This is a draft document and may be updated, replaced or obsoleted by other documents at
+            any time. It is inappropriate to cite this document as other than work in progress.
+          </p>
+
+
+          <p>
+            This is a Last Call Working Draft and thus the Working Group has determined that this document has satisfied the
+            relevant technical requirements and is sufficiently stable to advance through the Technical Recommendation process.
+          </p>
+
+        <p>
+
+            This document was produced by a group operating under the
+            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+
+
+
+
+              <abbr title="World Wide Web Consortium">W3C</abbr> maintains a <a href="http://www.w3.org/2004/01/pp-impl/46168/status" rel="disclosure">public list of any patent disclosures</a>
+
+            made in connection with the deliverables of the group; that page also includes instructions for
+            disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains
+            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the
+            information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
+            6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+
+
+        </p>
+
+
+
+
+</div><div class="section" id="toc"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#how-to-read-this-document" class="tocxref"><span class="secno">1.1 </span>How to Read this Document</a></li></ul></li><li class="tocline"><a href="#design-goals-and-rationale" class="tocxref"><span class="secno">2. </span>Design Goals and Rationale</a></li><li class="tocline"><a href="#terminology" class="tocxref"><span class="secno">3. </span>Terminology</a><ul class="toc"><li class="tocline"><a href="#general-terminology" class="tocxref"><span class="secno">3.1 </span>General Terminology</a></li><li class="tocline"><a href="#syntax-tokens-and-keywords" class="tocxref"><span class="secno">3.2 </span>Syntax Tokens and Keywords</a></li></ul></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">4. </span>Conformance</a></li><li class="tocline"><a href="#basic-concepts" class="tocxref"><span class="secno">5. </span>Basic Concepts</a><ul class="toc"><li class="tocline"><a href="#the-context" class="tocxref"><span class="secno">5.1 </span>The Context</a></li><li class="tocline"><a href="#iris" class="tocxref"><span class="secno">5.2 </span>IRIs</a></li><li class="tocline"><a href="#node-identifiers" class="tocxref"><span class="secno">5.3 </span>Node Identifiers</a></li><li class="tocline"><a href="#specifying-the-type" class="tocxref"><span class="secno">5.4 </span>Specifying the Type</a></li></ul></li><li class="tocline"><a href="#advanced-concepts" class="tocxref"><span class="secno">6. </span>Advanced Concepts</a><ul class="toc"><li class="tocline"><a href="#base-iri" class="tocxref"><span class="secno">6.1 </span>Base <abbr title="Internationalized Resource Identifier">IRI</abbr></a></li><li class="tocline"><a href="#default-vocabulary" class="tocxref"><span class="secno">6.2 </span>Default Vocabulary</a></li><li class="tocline"><a href="#compact-iris" class="tocxref"><span class="secno">6.3 </span>Compact IRIs</a></li><li class="tocline"><a href="#typed-values" class="tocxref"><span class="secno">6.4 </span>Typed Values</a></li><li class="tocline"><a href="#type-coercion" class="tocxref"><span class="secno">6.5 </span>Type Coercion</a></li><li class="tocline"><a href="#embedding" class="tocxref"><span class="secno">6.6 </span>Embedding</a></li><li class="tocline"><a href="#advanced-context-usage" class="tocxref"><span class="secno">6.7 </span>Advanced Context Usage</a></li><li class="tocline"><a href="#interpreting-json-as-json-ld" class="tocxref"><span class="secno">6.8 </span>Interpreting JSON as JSON-LD</a></li><li class="tocline"><a href="#string-internationalization" class="tocxref"><span class="secno">6.9 </span>String Internationalization</a></li><li class="tocline"><a href="#iri-expansion-within-a-context" class="tocxref"><span class="secno">6.10 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion within a Context</a></li><li class="tocline"><a href="#sets-and-lists" class="tocxref"><span class="secno">6.11 </span>Sets and Lists</a></li><li class="tocline"><a href="#reverse-properties" class="tocxref"><span class="secno">6.12 </span>Reverse Properties</a></li><li class="tocline"><a href="#named-graphs" class="tocxref"><span class="secno">6.13 </span>Named Graphs</a></li><li class="tocline"><a href="#identifying-blank-nodes" class="tocxref"><span class="secno">6.14 </span>Identifying Blank Nodes</a></li><li class="tocline"><a href="#aliasing-keywords" class="tocxref"><span class="secno">6.15 </span>Aliasing Keywords</a></li><li class="tocline"><a href="#data-indexing" class="tocxref"><span class="secno">6.16 </span>Data Indexing</a></li><li class="tocline"><a href="#expanded-document-form" class="tocxref"><span class="secno">6.17 </span>Expanded Document Form</a></li><li class="tocline"><a href="#compact-document-form" class="tocxref"><span class="secno">6.18 </span>Compact Document Form</a></li><li class="tocline"><a href="#flattened-document-form" class="tocxref"><span class="secno">6.19 </span>Flattened Document Form</a></li><li class="tocline"><a href="#embedding-json-ld-in-html-documents" class="tocxref"><span class="secno">6.20 </span>Embedding JSON-LD in HTML Documents</a></li></ul></li><li class="tocline"><a href="#data-model" class="tocxref"><span class="secno">A. </span>Data Model</a></li><li class="tocline"><a href="#json-ld-grammar" class="tocxref"><span class="secno">B. </span>JSON-LD Grammar</a><ul class="toc"><li class="tocline"><a href="#terms" class="tocxref"><span class="secno">B.1 </span>Terms</a></li><li class="tocline"><a href="#node-objects" class="tocxref"><span class="secno">B.2 </span>Node Objects</a></li><li class="tocline"><a href="#value-objects" class="tocxref"><span class="secno">B.3 </span>Value Objects</a></li><li class="tocline"><a href="#lists-and-sets" class="tocxref"><span class="secno">B.4 </span>Lists and Sets</a></li><li class="tocline"><a href="#language-maps" class="tocxref"><span class="secno">B.5 </span>Language Maps</a></li><li class="tocline"><a href="#index-maps" class="tocxref"><span class="secno">B.6 </span>Index Maps</a></li><li class="tocline"><a href="#context-definitions" class="tocxref"><span class="secno">B.7 </span>Context Definitions</a></li></ul></li><li class="tocline"><a href="#relationship-to-rdf" class="tocxref"><span class="secno">C. </span>Relationship to RDF</a><ul class="toc"><li class="tocline"><a href="#transformation-from-json-ld-to-rdf" class="tocxref"><span class="secno">C.1 </span>Transformation from JSON-LD to RDF</a></li></ul></li><li class="tocline"><a href="#relationship-to-other-linked-data-formats" class="tocxref"><span class="secno">D. </span>Relationship to Other Linked Data Formats</a><ul class="toc"><li class="tocline"><a href="#turtle" class="tocxref"><span class="secno">D.1 </span>Turtle</a></li><li class="tocline"><a href="#rdfa" class="tocxref"><span class="secno">D.2 </span>RDFa</a></li><li class="tocline"><a href="#microformats" class="tocxref"><span class="secno">D.3 </span>Microformats</a></li><li class="tocline"><a href="#microdata" class="tocxref"><span class="secno">D.4 </span>Microdata</a></li></ul></li><li class="tocline"><a href="#iana-considerations" class="tocxref"><span class="secno">E. </span>IANA Considerations</a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">F. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">G. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">G.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">G.2 </span>Informative references</a></li></ul></li></ul></div>
+
+
+
+<div class="informative section" id="introduction">
+
+<!--OddPage-->
+<h2><span class="secno">1. </span>Introduction</h2><p><em>This section is non-normative.</em></p>
+
+  <p><dfn title="linked-data" id="dfn-linked-data">Linked Data</dfn> is a technique for creating a network
+    of inter-connected data across different documents and Web sites. In general,
+    Linked Data has four properties: 1) it uses <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
+    to name things; 2) it uses HTTP <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
+    for those names; 3) the name <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, when dereferenced,
+    provide more information about the thing; and 4) the data expresses links
+    to data on other Web sites. These properties allow data published on the Web
+    to work much like Web pages do today. One can start at one piece of Linked Data,
+    and follow the links to other pieces of data that are hosted on different
+    sites across the Web.</p>
+
+  <p>JSON-LD is a lightweight syntax to serialize <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> in
+    JSON [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]. Its design allows existing JSON to be transformed to
+    Linked Data with minimal changes. JSON-LD is primarily intended to be a
+    way to use Linked Data in Web-based programming environments, to build
+    interoperable Web services, and to store Linked Data in JSON-based storage engines. Since
+    JSON-LD is 100% compatible with JSON, the large number of JSON parsers and libraries
+    available today can be reused. In addition to all the features JSON provides,
+    JSON-LD introduces:</p>
+
+  <ul>
+    <li>a universal identifier mechanism for <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a>
+      via the use of <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,</li>
+    <li>a way to disambiguate keys shared among different JSON documents by mapping
+      them to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> via a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>,</li>
+    <li>a mechanism in which a value in a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> may refer
+      to a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> on a different site on the Web,</li>
+    <li>the ability to annotate <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> with their language,</li>
+    <li>a way to associate datatypes with values such as dates and times,</li>
+    <li>and a facility to express one or more directed graphs, such as a social
+      network, in a single document.</li>
+  </ul>
+
+  <p>Developers that require any of the facilities listed above or need to serialize
+    an RDF graph or dataset [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>] in a JSON-based syntax will find
+    JSON-LD of interest. The syntax is designed to not disturb already deployed
+    systems running on JSON, but provide a smooth upgrade path from JSON to
+    JSON-LD. Since the shape of such data varies wildly, JSON-LD features mechanisms
+    to reshape documents into a deterministic structure which simplifies their
+    processing.</p>
+
+  <div class="informative section" id="how-to-read-this-document">
+    <h3><span class="secno">1.1 </span>How to Read this Document</h3><p><em>This section is non-normative.</em></p>
+
+    <p>This document is a detailed specification for a serialization of Linked
+      Data in JSON. The document is primarily intended for the following audiences:</p>
+
+    <ul>
+      <li>Software developers who want to encode Linked Data in a variety of
+        programming languages that can use JSON.</li>
+      <li>Software developers who want to convert existing JSON to JSON-LD.</li>
+      <li>Software developers who want to understand the design decisions and
+        language syntax for JSON-LD.</li>
+      <li>Software developers who want to implement processors and APIs for
+        JSON-LD.</li>
+    </ul>
+
+    <p>A companion document, the JSON-LD Processing Algorithms and API specification
+      [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>], specifies how to work with JSON-LD at a higher level by
+      providing a standard library interface for common JSON-LD operations.</p>
+
+    <p>To understand the basics in this specification you must first be familiar with
+      JSON, which is detailed in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>].</p>
+  </div>
+</div>
+
+<div class="informative section" id="design-goals-and-rationale">
+
+<!--OddPage-->
+<h2><span class="secno">2. </span>Design Goals and Rationale</h2><p><em>This section is non-normative.</em></p>
+
+  <p>JSON-LD satisfies the following design goals:</p>
+
+  <dl>
+   <dt>Simplicity</dt>
+   <dd>No extra processors or software libraries should be necessary to use JSON-LD
+     in its most basic form. The language will provide developers with a very easy
+     learning curve. Developers only need to know JSON and two
+     <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> (<code>@context</code>
+     and <code>@id</code>) to use the basic functionality in JSON-LD.</dd>
+   <dt>Compatibility</dt>
+   <dd>A JSON-LD document must be 100% compatible with JSON. This ensures that
+    all of the standard JSON libraries work seamlessly with JSON-LD documents.</dd>
+   <dt>Expressiveness</dt>
+   <dd>The syntax must be able to serialize directed graphs. This ensures that almost
+    every real world data model can be expressed.</dd>
+   <dt>Terseness</dt>
+   <dd>The JSON-LD syntax must be very terse and human readable, requiring as
+    little effort as possible from the developer.</dd>
+   <dt>Zero Edits, most of the time</dt>
+   <dd>JSON-LD must make the transition to JSON-LD as simple as possible. In many cases,
+     zero edits to the JSON document and the addition of one line to the HTTP response
+     should suffice (see <a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld">section 6.8 Interpreting JSON as JSON-LD</a>).
+     This allows organizations that have
+     already deployed large JSON-based infrastructure to use JSON-LD's features
+     in a way that is not disruptive to their day-to-day operations and is
+     transparent to their current customers. However, there are times where
+     mapping JSON to a graph representation is more complex than a simple one-line
+     change. In these instances, rather than extending JSON-LD to support an
+     esoteric use case, we chose not to support the use case. While Zero Edits is
+     a design goal, it is not always possible without adding great complexity
+     to the language. We should focus on simplicity when possible.</dd>
+  </dl>
+</div>
+
+<div class="normative section" id="terminology">
+
+<!--OddPage-->
+<h2><span class="secno">3. </span>Terminology</h2>
+
+  <div class="normative section" id="general-terminology">
+    <h3><span class="secno">3.1 </span>General Terminology</h3>
+
+    <p>This document uses the following terms as defined in JSON [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>]. Refer
+      to the <em>JSON Grammar</em> section in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>] for formal definitions.</p>
+
+    <dl>
+      <dt><dfn title="json-object" id="dfn-json-object">JSON object</dfn></dt><dd>
+        An object structure is represented as a pair of curly brackets surrounding
+        zero or more key-value pairs. A key is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.
+        A single colon comes after each key, separating the key from the value.
+        A single comma separates a value from a following key. In contrast to JSON,
+        in JSON-LD the keys in an object must be unique.</dd>
+      <dt><dfn title="array" id="dfn-array">array</dfn></dt>
+      <dd>An array structure is represented as square brackets surrounding zero
+        or more values. Values are separated by commas.
+        In JSON, an array is an <em>ordered</em> sequence of zero or more values.
+        While JSON-LD uses the same array representation as JSON,
+        the collection is <em>unordered</em> by default. While order is
+        preserved in regular JSON arrays, it is not in regular JSON-LD arrays
+        unless specifically defined (see <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a>).</dd>
+      <dt><dfn title="string" id="dfn-string">string</dfn></dt><dd>
+        A string is a sequence of zero or more Unicode characters,
+        wrapped in double quotes, using backslash escapes (if necessary).</dd>
+      <dt><dfn title="number" id="dfn-number">number</dfn></dt>
+      <dd>A number is similar to that used in most programming languages, except
+        that the octal and hexadecimal formats are not used and leading zeros
+        are not allowed.</dd>
+      <dt><dfn title="true" id="dfn-true">true</dfn> and <dfn title="false" id="dfn-false">false</dfn></dt><dd>
+        Values that are used to express one of two possible boolean states.</dd>
+      <dt><dfn title="null" id="dfn-null">null</dfn></dt>
+      <dd>The <a class="tref internalDFN" title="null" href="#dfn-null">null</a> value, which is typically used to clear or forget
+        data. For example, A key-value pair in the
+        <code>@context</code> where the value is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> explicitly
+        decouples a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>'s association with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.
+        A key-value pair in the body of a JSON-LD document whose
+        value is <a class="tref internalDFN" title="null" href="#dfn-null">null</a> has the same meaning as if the key-value pair
+        was not defined. If <code>@value</code>, <code>@list</code>, or
+        <code>@set</code> is set to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in expanded form, then
+        the entire <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is ignored.</dd>
+    </dl>
+  </div>
+
+  <div class="normative section" id="syntax-tokens-and-keywords">
+    <h3><span class="secno">3.2 </span>Syntax Tokens and Keywords</h3>
+
+    <p>JSON-LD specifies a number of syntax tokens and <dfn title="keyword" id="dfn-keyword">keywords</dfn>
+    that are a core part of the language:</p>
+
+    <dl>
+      <dt><code>@context</code></dt>
+      <dd>Used to define the short-hand names that are used throughout a JSON-LD
+        document. These short-hand names are called <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> and help
+        developers to express specific identifiers in a compact manner. The
+        <code>@context</code> keyword is described in detail in
+        <a class="sectionRef sec-ref" href="#the-context">section 5.1 The Context</a>.</dd>
+      <dt><code>@id</code></dt>
+      <dd>Used to uniquely identify <em>things</em> that are being described in the document.
+        This keyword is described in <a class="sectionRef sec-ref" href="#node-identifiers">section 5.3 Node Identifiers</a>.</dd>
+      <dt><code>@value</code></dt>
+      <dd>Used to specify the data that is associated with a particular
+        <a class="tref internalDFN" title="property" href="#dfn-property">property</a> in the graph. This keyword is described in
+        <a class="sectionRef sec-ref" href="#string-internationalization">section 6.9 String Internationalization</a> and
+        <a class="sectionRef sec-ref" href="#typed-values">section 6.4 Typed Values</a>.</dd>
+      <dt><code>@language</code></dt>
+      <dd>Used to specify the natural (human) language for a particular value or the default
+        language of a JSON-LD document. This keyword is described in
+        <a class="sectionRef sec-ref" href="#string-internationalization">section 6.9 String Internationalization</a>.</dd>
+      <dt><code>@type</code></dt>
+      <dd>Used to set the data type of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> or
+        <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>. This keyword is described in
+        <a class="sectionRef sec-ref" href="#typed-values">section 6.4 Typed Values</a>.</dd>
+      <dt><code>@container</code></dt>
+      <dd>Used to set the default container type for a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.
+        This keyword is described in <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a>.</dd>
+      <dt><code>@list</code></dt>
+      <dd>Used to express an ordered set of data.
+        This keyword is described in <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a>.</dd>
+      <dt><code>@set</code></dt>
+      <dd>Used to express an unordered set of data and to ensure that values are always
+         represented as arrays. This keyword is described in
+         <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a>.</dd>
+      <dt><code>@reverse</code></dt>
+      <dd>Used to express reverse properties. This keyword is described in
+        <a class="sectionRef sec-ref" href="#reverse-properties">section 6.12 Reverse Properties</a>.</dd>
+      <dt><code>@index</code></dt>
+      <dd>Used to specify that a container is used to index information and
+        that processing should continue deeper into a JSON data structure.
+        This keyword is described in <a class="sectionRef sec-ref" href="#data-indexing">section 6.16 Data Indexing</a>.</dd>
+      <dt><code>@base</code></dt>
+      <dd>Used to set the base <abbr title="Internationalized Resource Identifier">IRI</abbr> against which <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative IRIs</a>
+        are resolved. This keyword is described in <a class="sectionRef sec-ref" href="#base-iri">section 6.1 Base IRI</a>.</dd>
+      <dt><code>@vocab</code></dt>
+      <dd>Used to expand properties and values in <code>@type</code> with a common prefix
+        <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. This keyword is described in <a class="sectionRef sec-ref" href="#default-vocabulary">section 6.2 Default Vocabulary</a>.</dd>
+      <dt><code>@graph</code></dt><dd>Used to explicitly label a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>.
+        This keyword is described in <a class="sectionRef sec-ref" href="#named-graphs">section 6.13 Named Graphs</a>.</dd>
+      <dt><code>:</code></dt>
+      <dd>The separator for JSON keys and values that use
+        <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>.</dd>
+    </dl>
+
+    <p>All keys, <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>, and values in JSON-LD are case-sensitive.</p>
+  </div>
+</div>
+
+<div class="normative section" id="conformance">
+
+<!--OddPage-->
+<h2><span class="secno">4. </span>Conformance</h2>
+
+  <p>This specification describes the conformance criteria for JSON-LD documents.
+    This criteria is relevant to authors and authoring tool implementers. As well
+    as sections marked as non-normative, all authoring guidelines, diagrams, examples,
+    and notes in this specification are non-normative. Everything else in this
+    specification is normative.</p>
+
+  <p>A <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> complies with this specification if it follows
+    the normative statements in appendix <a href="#json-ld-grammar" class="sec-ref"><span class="secno">B.</span> <span class="sec-title">JSON-LD Grammar</span></a>. JSON documents
+    can be interpreted as JSON-LD by following the normative statements in
+    <a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld">section 6.8 Interpreting JSON as JSON-LD</a>. For convenience, normative
+    statements for documents are often phrased as statements on the properties of the document.</p>
+
+  <p>The key words <em class="rfc2119" title="MUST">MUST</em>, <em class="rfc2119" title="MUST NOT">MUST NOT</em>, <em class="rfc2119" title="REQUIRED">REQUIRED</em>, <em class="rfc2119" title="SHALL">SHALL</em>, <em class="rfc2119" title="SHALL NOT">SHALL NOT</em>, <em class="rfc2119" title="SHOULD">SHOULD</em>, <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em>,
+    <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em>, <em class="rfc2119" title="NOT RECOMMENDED">NOT RECOMMENDED</em>, <em class="rfc2119" title="MAY">MAY</em>, and <em class="rfc2119" title="OPTIONAL">OPTIONAL</em> in this specification have the
+    meaning defined in [<cite><a class="bibref" href="#bib-RFC2119">RFC2119</a></cite>].</p>
+</div>
+
+<div class="informative section" id="basic-concepts">
+
+<!--OddPage-->
+<h2><span class="secno">5. </span>Basic Concepts</h2><p><em>This section is non-normative.</em></p>
+
+  <p>JSON [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>] is a lightweight, language-independent data-interchange format.
+    It is easy to parse and easy to generate. However, it is difficult to integrate JSON
+    from different sources as the data has just local meaning. Furthermore, JSON has no
+    built-in support for hyperlinks - a fundamental building block on the Web. Let's look
+    at an example that we will be using for the rest of this section:</p>
+
+  <div class="example"><div class="example-title"><span>Example 1</span>: Sample JSON document</div><pre class="example">{
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
+}</pre></div>
+
+  <p>It's obvious to humans that the data is about a person whose name is &quot;Manu Sporny&quot;
+    and that the <code>homepage</code> property contains the URL of that person's homepage.
+    A machine doesn't have such an intuitive understanding and sometimes,
+    even for humans, it is difficult to resolve ambiguities in such representations. This problem
+    can be solved by using unambiguous identifiers to denote the different concepts instead of
+    tokens such as &quot;name&quot;, &quot;homepage&quot;, etc.</p>
+
+  <p><a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a>, and the Web in general, uses <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
+    (Internationalized Resource Identifiers as described in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>]) for unambiguous
+    identification. The idea is to assign <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> to something that may
+    be of use to other developers and that it is useful to give them an unambiguous identifier.
+    That is, it is useful for <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> to expand to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
+    so that developers don't accidentally step on each other's terms. Furthermore, developers and
+    machines are able to use this <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> (by using a web browser, for instance) to go to
+    the term and get a definition of what the term means.</p>
+
+  <p>Leveraging the well-known <a href="http://schema.org/">schema.org vocabulary</a>,
+    the example above could be unambiguously expressed as follows:</p>
+
+  <div class="example"><div class="example-title"><span>Example 2</span>: Sample JSON-LD document using full IRIs instead of terms</div><pre class="example">{
+  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
+  &quot;<span class="diff">http://schema.org/url</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/&quot; <span class="diff">}</span>,
+  &quot;<span class="diff">http://schema.org/image</span>&quot;: <span class="diff">{ &quot;@id&quot;: </span>&quot;http://manu.sporny.org/images/manu.png&quot; <span class="diff">}</span>
+}</pre></div>
+
+  <p>In the example above, every property is unambiguously identified by an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> and all values
+    representing <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> are explicitly marked as such by the
+    <code>@id</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. While this is a valid JSON-LD
+    document that is very specific about its data, the document is also overly verbose and difficult
+    to work with for human developers. To address this issue, JSON-LD introduces the notion
+    of a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> as described in the next section.</p>
+
+  <div class="informative section" id="the-context">
+    <h3><span class="secno">5.1 </span>The Context</h3><p><em>This section is non-normative.</em></p>
+
+    <p>Simply speaking, a <dfn title="context" id="dfn-context">context</dfn> is used to map <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> to
+      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>. <a class="tref internalDFN" title="term" href="#dfn-term">Terms</a> are case sensitive
+      and any valid <a class="tref internalDFN" title="string" href="#dfn-string">string</a> that is not a reserved JSON-LD <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>
+      can be used as a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</p>
+
+    <p>For the sample document in the previous section, a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> would
+      look something like this:</p>
+
+    <div class="example"><div class="example-title"><span>Example 3</span>: Context for the sample document in the previous section</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+  {
+    &quot;name&quot;: &quot;http://schema.org/name&quot;,
+    &quot;image&quot;: {
+      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  }</span>
+}</pre></div>
+
+    <p>As the <a class="tref internalDFN" title="context" href="#dfn-context">context</a> above shows, the value of a <dfn title="term-definition" id="dfn-term-definition">term definition</dfn> can
+      either be a simple string, mapping the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+      or a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.</p>
+
+    <p>When a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is
+      associated with a term, it is called an <dfn title="expanded-term-definition" id="dfn-expanded-term-definition">expanded term definition</dfn>.
+      The example above specifies that the values of <code>image</code> and
+      <code>homepage</code> terms are <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.
+      They also allow terms to be used for <a href="#data-indexing">index maps</a>
+      and to specify whether <a class="tref internalDFN" title="array" href="#dfn-array">array</a> values are to be
+      interpreted as <a href="#sets-and-lists">sets or lists</a>.
+      <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">Expanded term definitions</a> may
+      be defined using <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute</a> or
+      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> as keys, which is
+      mainly used to associate type or language information with an
+      <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute</a> or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
+
+    <p><a class="tref internalDFN" title="context" href="#dfn-context">Contexts</a> can either be directly embedded
+      into the document or be referenced. Assuming the context document in the previous
+      example can be retrieved at <code>http://json-ld.org/contexts/person.jsonld</code>,
+      it can be referenced by adding a single line and allows a JSON-LD document to
+      be expressed much more concisely as shown in the example below:</p>
+
+    <div class="example"><div class="example-title"><span>Example 4</span>: Referencing a JSON-LD context</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,</span>
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
+}</pre></div>
+
+    <p>The referenced context not only specifies how the terms map to
+      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> in the Schema.org vocabulary but also specifies that
+      the values of the <code>homepage</code> and <code>image</code> property
+      can be interpreted as an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> (<code>&quot;@type&quot;: &quot;@id&quot;</code>,
+      see <a class="sectionRef sec-ref" href="#iris">section 5.2 IRIs</a> for more details). This information allows developers
+      to re-use each other's data without having to agree to how their data will interoperate
+      on a site-by-site basis. External JSON-LD context documents may contain extra
+      information located outside of the <code>@context</code> key, such as
+      documentation about the <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> declared in the
+      document. Information contained outside of the <code>@context</code> value
+      is ignored when the document is used as an external JSON-LD context document.</p>
+
+    <p>JSON documents can be transformed to JSON-LD without having to be modified by
+      referencing a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> via an HTTP Link Header
+      as described in <a class="sectionRef sec-ref" href="#interpreting-json-as-json-ld">section 6.8 Interpreting JSON as JSON-LD</a>. It is also
+      possible to apply a custom context using the JSON-LD API [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>].</p>
+
+    <p>In <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD documents</a>
+      <a class="tref internalDFN" title="context" href="#dfn-context">contexts</a> may also be specified in-line.
+      This has the advantage that documents can be processed even in the
+      absence of a connection to the Web.</p>
+
+    <div class="example"><div class="example-title"><span>Example 5</span>: In-line context definition</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+  {
+    &quot;name&quot;: &quot;http://schema.org/name&quot;,
+    &quot;image&quot;: {
+      &quot;@id&quot;: &quot;http://schema.org/image&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://schema.org/url&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },</span>
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  &quot;image&quot;: &quot;http://manu.sporny.org/images/manu.png&quot;
+}</pre></div>
+  </div>
+
+<div class="informative section" id="iris">
+  <h3><span class="secno">5.2 </span>IRIs</h3><p><em>This section is non-normative.</em></p>
+
+  <p><a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> (Internationalized Resource Identifiers
+    [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>]) are fundamental to <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> as that is how most
+    <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> and <a class="tref internalDFN" title="property" href="#dfn-property">properties</a>
+    are identified. In JSON-LD, IRIs may be represented as an
+    <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. An
+    <dfn title="absolute-iri" id="dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn> is defined in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>] as containing a
+    <em>scheme</em> along with <em>path</em> and optional <em>query</em> and
+    <em>fragment</em> segments. A <dfn title="relative-iri" id="dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn> is an <abbr title="Internationalized Resource Identifier">IRI</abbr>
+    that is relative to some other <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.
+    In JSON-LD all <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative IRIs</a> are resolved
+    relative to the <dfn title="base-iri" id="dfn-base-iri">base <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn> associated with the document.</p>
+
+  <p>A <a class="tref internalDFN" title="string" href="#dfn-string">string</a> is interpreted as an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> when it is the
+    value of an <code>@id</code> member:</p>
+
+  <div class="example"><div class="example-title"><span>Example 6</span>: Values of @id are interpreted as IRI</div><pre class="example">{
+...
+  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;http://example.com/&quot; }
+...
+}</pre></div>
+
+  <p>Values that are interpreted as <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, can also be
+    expressed as <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative IRIs</a>. For example,
+    assuming that the following document is located at
+    <code>http://example.com/about/</code>, the <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+    <code>../</code> would expand to <code>http://example.com/</code> (for more
+    information on where  <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative IRIs</a> can be
+    used, please refer to appendix <a href="#json-ld-grammar" class="sec-ref"><span class="secno">B.</span> <span class="sec-title">JSON-LD Grammar</span></a>).</p>
+
+  <div class="example"><div class="example-title"><span>Example 7</span>: IRIs can be relative</div><pre class="example">{
+...
+  &quot;homepage&quot;: { &quot;<span class="diff">@id</span>&quot;: &quot;../&quot; }
+...
+}</pre></div>
+
+  <p><a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">Absolute IRIs</a> can be expressed directly
+    in the key position like so:</p>
+
+  <div class="example"><div class="example-title"><span>Example 8</span>: IRI as a key</div><pre class="example">{
+...
+  &quot;<span class="diff">http://schema.org/name</span>&quot;: &quot;Manu Sporny&quot;,
+...
+}</pre></div>
+
+  <p>In the example above, the key <code>http://schema.org/name</code>
+    is interpreted as an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> because it contains a colon
+    (<code>:</code>) and it is neither a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> nor a
+    <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</p>
+
+  <p>Term-to-<abbr title="Internationalized Resource Identifier">IRI</abbr> expansion occurs if the key matches a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> defined
+    within the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>:</p>
+
+  <div class="example"><div class="example-title"><span>Example 9</span>: Term expansion from context definition</div><pre class="example">{
+  &quot;<span class="diff">@context</span>&quot;:
+  {
+    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">http://schema.org/name</span>&quot;
+  },
+  &quot;<span class="diff">name</span>&quot;: &quot;Manu Sporny&quot;,
+  &quot;status&quot;: &quot;trollin'&quot;
+}</pre></div>
+
+  <p>JSON keys that do not expand to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, such as <code>status</code>
+    in the example above, are not Linked Data and thus ignored when processed.</p>
+
+  <p>If type <a class="tref internalDFN" title="coercion" href="#dfn-coercion">coercion</a> rules are specified in the <code>@context</code> for
+    a particular <a class="tref internalDFN" title="term" href="#dfn-term">term</a> or property <abbr title="Internationalized Resource Identifier">IRI</abbr>, an <abbr title="Internationalized Resource Identifier">IRI</abbr> is generated:</p>
+
+  <div class="example"><div class="example-title"><span>Example 10</span>: Type coercion</div><pre class="example">{<span class="diff">
+  &quot;@context&quot;:
+  {
+    ...
+    &quot;homepage&quot;:
+    {
+      &quot;@id&quot;: &quot;http://schema.org/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+    ...
+  }</span>
+...
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+...
+}</pre></div>
+
+  <p>In the example above, even though the value <code>http://manu.sporny.org/</code>
+    is expressed as a JSON <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, the type <a class="tref internalDFN" title="coercion" href="#dfn-coercion">coercion</a>
+    rules will transform the value into an <abbr title="Internationalized Resource Identifier">IRI</abbr> when generating the
+    <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>. See <a class="sectionRef sec-ref" href="#type-coercion">section 6.5 Type Coercion</a> for more
+    details about this feature.</p>
+
+  <p>In summary, <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> can be expressed in a variety of
+    different ways in JSON-LD:</p>
+
+  <ol>
+    <li><a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> keys that have a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> mapping in
+      the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> expand to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+      (only applies outside of the <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a>).</li>
+    <li>An <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is generated for the <a class="tref internalDFN" title="string" href="#dfn-string">string</a> value specified using
+      <code>@id</code> or <code>@type</code>.</li>
+    <li>An <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> is generated for the <a class="tref internalDFN" title="string" href="#dfn-string">string</a> value of any key for which there
+      are <a class="tref internalDFN" title="coercion" href="#dfn-coercion">coercion</a> rules that contain a <code>@type</code> key that is
+      set to a value of <code>@id</code> or <code>@vocab</code>.</li>
+  </ol>
+</div>
+
+<div class="informative section" id="node-identifiers">
+  <h3><span class="secno">5.3 </span>Node Identifiers</h3><p><em>This section is non-normative.</em></p>
+
+  <p>To be able to externally reference <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>
+    in a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">graph</a>, it is important that
+    <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> have an identifier. <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
+    are a fundamental concept of <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a>, for
+    <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> to be truly linked, dereferencing the
+    identifier should result in a representation of that <a class="tref internalDFN" title="node" href="#dfn-node">node</a>.
+    This may allow an application to retrieve further information about a
+    <a class="tref internalDFN" title="node" href="#dfn-node">node</a>.</p>
+
+  <p>In JSON-LD, a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> is identified using the <code>@id</code>
+    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>:</p>
+
+  <div class="example"><div class="example-title"><span>Example 11</span>: Identifying a node</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    ...
+    &quot;name&quot;: &quot;http://schema.org/name&quot;
+  },
+  <span class="diff">&quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;</span>,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  ...
+}</pre></div>
+
+  <p>The example above contains a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> identified by the <abbr title="Internationalized Resource Identifier">IRI</abbr>
+    <code>http://me.markus-lanthaler.com/</code>.</p>
+</div>
+
+<div class="informative section" id="specifying-the-type">
+<h3><span class="secno">5.4 </span>Specifying the Type</h3><p><em>This section is non-normative.</em></p>
+
+<p>The type of a particular node can be specified using the <code>@type</code>
+  <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. In <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a>, types are uniquely
+  identified with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
+
+<div class="example"><div class="example-title"><span>Example 12</span>: Specifying the type for a node</div><pre class="example">{
+...
+  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+  &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">http://schema.org/Restaurant</span>&quot;,
+...
+}</pre></div>
+
+<p>A node can be assigned more than one type by using an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>:</p>
+
+<div class="example"><div class="example-title"><span>Example 13</span>: Specifying multiple types for a node</div><pre class="example">{
+...
+  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+  &quot;<span class="diff">@type</span>&quot;: <span class="diff">[ &quot;http://schema.org/Restaurant&quot;, &quot;http://schema.org/Brewery&quot; ],</span>
+...
+}</pre></div>
+
+<p>The value of a <code>@type</code> key may also be a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> defined in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>:</p>
+<div class="example"><div class="example-title"><span>Example 14</span>: Using a term to specify the type</div><pre class="example">{
+  &quot;@context&quot;: {
+    ...
+    <span class="diff">&quot;Restaurant&quot;: &quot;http://schema.org/Restaurant&quot;, </span>
+    <span class="diff">&quot;Brewery&quot;: &quot;http://schema.org/Brewery&quot;</span>
+  }
+  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+  <span class="diff">&quot;@type&quot;: [ &quot;Restaurant&quot;, &quot;Brewery&quot; ]</span>,
+  ...
+}</pre></div>
+</div>
+</div>
+
+<div class="normative section" id="advanced-concepts">
+
+<!--OddPage-->
+<h2><span class="secno">6. </span>Advanced Concepts</h2>
+
+<p>JSON-LD has a number of features that provide functionality above and beyond
+  the core functionality described above. The following section describes this
+  advanced functionality in more detail.</p>
+
+<div class="informative section" id="base-iri">
+  <h3><span class="secno">6.1 </span>Base <abbr title="Internationalized Resource Identifier">IRI</abbr></h3><p><em>This section is non-normative.</em></p>
+
+  <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 1</span>: @base keyword</div><div class="atrisk">
+    <p class="atrisk-head">Note: This feature is
+      <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
+      be removed from this specification based on feedback. Please send feedback to
+      <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
+      For the current status see
+      <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
+    <p>Support for the <code>@base</code> keyword might be removed from JSON-LD 1.0 if
+      implementation experience reveals that the fact that a document may have multiple
+      base IRIs is confusing for developers. It is also being discussed whether relative
+      IRIs are allowed as values of <code>@base</code> or whether the empty string should
+      be used to explicitly specify that there isn't a base <abbr title="Internationalized Resource Identifier">IRI</abbr>, which could be used to
+      ensure that relative IRIs remain relative when expanding.</p>
+  </div></div>
+
+  <p>JSON-LD allows <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>s to be specified in a relative form which is
+    resolved against the document base according
+    <cite><a href="http://tools.ietf.org/html/rfc3986#section-5.1">section 5.1 Establishing a Base URI</a></cite>
+    of [<cite><a class="bibref" href="#bib-RFC3986">RFC3986</a></cite>]. The base <abbr title="Internationalized Resource Identifier">IRI</abbr> may be explicitly set with a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>
+    using the <code>@base</code> keyword.</p>
+
+  <p>For example, if a JSON-LD document was retrieved from <code>http://example.com/document.jsonld</code>,
+    relative IRIs would resolve against that <abbr title="Internationalized Resource Identifier">IRI</abbr>:</p>
+
+  <div class="example"><div class="example-title"><span>Example 15</span>: Use a relative IRI as node identifier</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;label&quot;: &quot;http://www.w3.org/2000/01/rdf-schema#label&quot;
+  },
+  <span class="diff">&quot;@id&quot;: &quot;&quot;</span>,
+  &quot;label&quot;: &quot;Just a simple document&quot;
+}</pre></div>
+
+  <p>This document uses an empty <code>@id</code>, which resolves to the document base.
+    However, if the document is moved to a different location, the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> would change.
+    To prevent this without having to use an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>
+    may define a <code>@base</code> mapping, to overwrite the base <abbr title="Internationalized Resource Identifier">IRI</abbr> for the document.</p>
+
+  <div class="example"><div class="example-title"><span>Example 16</span>: Setting the document base in a document</div><pre class="example">{
+  &quot;@context&quot;: {
+    <span class="diff">&quot;@base&quot;: &quot;http://example.com/document.jsonld&quot;</span>
+  },
+  &quot;@id&quot;: &quot;&quot;,
+  &quot;label&quot;: &quot;Just a simple document&quot;
+}</pre></div>
+</div>
+
+<div class="informative section" id="default-vocabulary">
+  <h3><span class="secno">6.2 </span>Default Vocabulary</h3><p><em>This section is non-normative.</em></p>
+
+  <p>At times, all properties and types may come from the same vocabulary. JSON-LD's
+    <code>@vocab</code> keyword allows an author to set a common prefix to be used
+    for all properties and types that do not match a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> and are neither
+    a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> nor an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> (i.e., they do
+    not contain a colon).</p>
+
+  <div class="example"><div class="example-title"><span>Example 17</span>: Using a common vocabulary prefix</div><pre class="example">{
+  &quot;@context&quot;: {
+    <span class="diff">&quot;@vocab&quot;: &quot;http://schema.org/&quot;</span>
+  }
+  &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+  &quot;@type&quot;: <span class="diff">&quot;Restaurant&quot;</span>,
+  <span class="diff">&quot;name&quot;</span>: &quot;Brew Eats&quot;
+  ...
+}</pre></div>
+
+  <p>If <code>@vocab</code> is used but certain keys in an
+    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">object</a> should not be expanded using
+    the vocabulary <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> can be explicitly set
+    to <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>. For instance, in the
+    example below the <code>databaseId</code> member would not expand to an
+    <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
+
+  <div class="example"><div class="example-title"><span>Example 18</span>: Using the null keyword to ignore data</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+     &quot;@vocab&quot;: &quot;http://schema.org/&quot;,
+     <span class="diff">&quot;databaseId&quot;: null</span>
+  },
+    &quot;@id&quot;: &quot;http://example.org/places#BrewEats&quot;,
+    &quot;@type&quot;: &quot;Restaurant&quot;,
+    &quot;name&quot;: &quot;Brew Eats&quot;,
+    <span class="diff">&quot;databaseId&quot;</span>: &quot;23987520&quot;
+}</pre></div>
+</div>
+
+<div class="informative section" id="compact-iris">
+  <h3><span class="secno">6.3 </span>Compact IRIs</h3><p><em>This section is non-normative.</em></p>
+
+  <p>A <dfn title="compact-iri" id="dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></dfn> is a way of expressing an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+    using a <em>prefix</em> and <em>suffix</em> separated by a colon (<code>:</code>).
+    The <dfn title="prefix" id="dfn-prefix">prefix</dfn> is a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> taken from the
+    <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and is a short string identifying a
+    particular <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> in a JSON-LD document. For example, the
+    prefix <code>foaf</code> may be used as a short hand for the
+    Friend-of-a-Friend vocabulary, which is identified using the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+    <code>http://xmlns.com/foaf/0.1/</code>. A developer may append
+    any of the FOAF vocabulary terms to the end of the prefix to specify a short-hand
+    version of the <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> for the vocabulary term. For example,
+    <code>foaf:name</code> would be expanded to the <abbr title="Internationalized Resource Identifier">IRI</abbr>
+    <code>http://xmlns.com/foaf/0.1/name</code>.</p>
+
+  <div class="example"><div class="example-title"><span>Example 19</span>: Prefix expansion</div><pre class="example">{
+  &quot;<span class="diff">@context</span>&quot;:
+  {
+    &quot;<span class="diff">foaf</span>&quot;: &quot;<span class="diff">http://xmlns.com/foaf/0.1/</span>&quot;
+...
+  },
+  &quot;@type&quot;: &quot;<span class="diff">foaf:Person</span>&quot;
+  &quot;<span class="diff">foaf:name</span>&quot;: &quot;Dave Longley&quot;,
+...
+}</pre></div>
+
+  <p>In the example above, <code>foaf:name</code> expands to the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+    <code>http://xmlns.com/foaf/0.1/name</code> and <code>foaf:Person</code> expands
+    to <code>http://xmlns.com/foaf/0.1/Person</code>.</p>
+
+  <p><a class="tref internalDFN" title="prefix" href="#dfn-prefix">Prefixes</a> are expanded when the form of the value
+    is a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> represented as a <code>prefix:suffix</code>
+    combination, the <em>prefix</em> matches a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> defined within the
+    <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, and the <em>suffix</em> does not begin with two
+    slashes (<code>//</code>). The <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> is expanded by
+    concatenating the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> mapped to the <em>prefix</em> to the (possibly empty)
+    <em>suffix</em>. If the <em>prefix</em> is not defined in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>,
+    or the suffix begins with two slashes (such as in <code>http://example.com</code>),
+    the value is interpreted as <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> instead. If the prefix is an
+    underscore (<code>_</code>), the value is interpreted as <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>
+    instead.</p>
+
+
+  <p>It's also possible to use compact IRIs within the context as shown in the
+    following example:</p>
+
+  <div class="example"><div class="example-title"><span>Example 20</span>: Using vocabularies</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
+    <span class="diff">&quot;foaf:homepage&quot;</span>: { &quot;@type&quot;: &quot;@id&quot; },
+    &quot;picture&quot;: { &quot;@id&quot;: <span class="diff">&quot;foaf:depiction&quot;</span>, &quot;@type&quot;: &quot;@id&quot; }
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;foaf:homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
+  &quot;picture&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
+}</pre></div>
+</div>
+
+<div class="informative section" id="typed-values">
+<h3><span class="secno">6.4 </span>Typed Values</h3><p><em>This section is non-normative.</em></p>
+
+<p>
+  A value with an associated type, also known as a
+  <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>, is indicated by associating a value with
+  an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> which indicates the value's type. Typed values may be
+  expressed in JSON-LD in three ways:
+</p>
+
+<ol>
+  <li>By utilizing the <code>@type</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> when defining
+    a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> within a <code>@context</code> section.</li>
+  <li>By utilizing a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>.</li>
+  <li>By using a native JSON type such as <a class="tref internalDFN" title="number" href="#dfn-number">number</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>, or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>.</li>
+</ol>
+
+<p>The first example uses the <code>@type</code> keyword to associate a
+type with a particular <a class="tref internalDFN" title="term" href="#dfn-term">term</a> in the <code>@context</code>:</p>
+
+<div class="example"><div class="example-title"><span>Example 21</span>: Expanded term definition with type coercion</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+  {
+    &quot;modified&quot;:
+    {
+      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;,
+      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
+    }
+  },</span>
+...
+  &quot;@id&quot;: &quot;http://example.com/docs/1&quot;,
+  &quot;modified&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
+...
+}</pre></div>
+
+<p>The <em>modified</em> key's value above is automatically type coerced to a
+  <em>dateTime</em> value because of the information specified in the
+  <code>@context</code>. A JSON-LD processor will interpret the example above
+  as follows:</p>
+
+<table class="example">
+<thead>
+  <tr><th>Subject</th>
+  <th>Property</th>
+  <th>Value</th>
+  <th>Value Type</th>
+</tr></thead>
+<tbody>
+<tr>
+  <td>http://example.com/docs/1</td>
+  <td>http://purl.org/dc/terms/modified</td>
+  <td>2010-05-29T14:17:39+02:00</td>
+  <td>http://www.w3.org/2001/XMLSchema#dateTime</td>
+</tr>
+</tbody>
+</table>
+
+<p>The second example uses the expanded form of setting the type information
+in the body of a JSON-LD document:</p>
+
+<div class="example"><div class="example-title"><span>Example 22</span>: Expanded value with type</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;modified&quot;:
+    {
+      &quot;@id&quot;: &quot;http://purl.org/dc/terms/modified&quot;
+    }
+  },
+...
+  &quot;modified&quot;:
+  <span class="diff">{
+    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
+    &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;
+  }</span>
+...
+}</pre></div>
+
+<p>Both examples above would generate the value
+  <code>2010-05-29T14:17:39+02:00</code> with the type
+  <code>http://www.w3.org/2001/XMLSchema#dateTime</code>. Note that it is
+  also possible to use a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> or a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> to
+  express the value of a type.</p>
+
+<p>The <code>@type</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> is also used to associate a type
+  with a <a class="tref internalDFN" title="node" href="#dfn-node">node</a>. The concept of a <a class="tref internalDFN" title="node-type" href="#dfn-node-type">node type</a> and
+  a <a class="tref internalDFN" title="value-type" href="#dfn-value-type">value type</a> are different.</p>
+
+<p>Generally speaking, a <dfn title="node-type" id="dfn-node-type">node type</dfn> specifies the type of thing
+  that is being described, like a person, place, event, or web page. A
+  <dfn title="value-type" id="dfn-value-type">value type</dfn> specifies the data type of a particular value, such
+  as an integer, a floating point number, or a date.</p>
+
+<div class="example"><div class="example-title"><span>Example 23</span>: Example demonstrating the context-sensitivity for @type</div><pre class="example">{
+...
+  &quot;@id&quot;: &quot;http://example.org/posts#TripToWestVirginia&quot;,
+  <span class="diff">&quot;@type&quot;: &quot;http://schema.org/BlogPosting&quot;</span>,   &lt;- This is a node type
+  &quot;modified&quot;:
+  {
+    &quot;@value&quot;: &quot;2010-05-29T14:17:39+02:00&quot;,
+    <span class="diff">&quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#dateTime&quot;</span> &lt;- This is a value type
+  }
+...
+}</pre></div>
+
+<p>The first use of <code>@type</code> associates a <a class="tref internalDFN" title="node-type" href="#dfn-node-type">node type</a>
+  (<code>http://schema.org/BlogPosting</code>) with the <a class="tref internalDFN" title="node" href="#dfn-node">node</a>,
+  which is expressed using the <code>@id</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>.
+  The second use of <code>@type</code> associates a <a class="tref internalDFN" title="value-type" href="#dfn-value-type">value type</a>
+  (<code>http://www.w3.org/2001/XMLSchema#dateTime</code>) with the
+  value expressed using the <code>@value</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. As a
+  general rule, when <code>@value</code> and <code>@type</code> are used in
+  the same <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>, the <code>@type</code>
+  <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> is expressing a <a class="tref internalDFN" title="value-type" href="#dfn-value-type">value type</a>.
+  Otherwise, the <code>@type</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> is expressing a
+  <a class="tref internalDFN" title="node-type" href="#dfn-node-type">node type</a>. The example above expresses the following data:</p>
+
+<table class="example">
+<thead>
+  <tr><th>Subject</th>
+  <th>Property</th>
+  <th>Value</th>
+  <th>Value Type</th>
+</tr></thead>
+<tbody>
+<tr>
+  <td>http://example.org/posts#TripToWestVirginia</td>
+  <td>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</td>
+  <td>http://schema.org/BlogPosting</td>
+  <td style="text-align:center;">-</td>
+</tr>
+<tr>
+  <td>http://example.org/posts#TripToWestVirginia</td>
+  <td>http://purl.org/dc/terms/modified</td>
+  <td>2010-05-29T14:17:39+02:00</td>
+  <td>http://www.w3.org/2001/XMLSchema#dateTime</td>
+</tr>
+</tbody>
+</table>
+
+</div>
+
+<div class="informative section" id="type-coercion">
+<h3><span class="secno">6.5 </span>Type Coercion</h3><p><em>This section is non-normative.</em></p>
+
+<p>JSON-LD supports the coercion of values to particular data types.
+Type <dfn title="coercion" id="dfn-coercion">coercion</dfn> allows someone deploying JSON-LD to coerce the incoming or
+outgoing values to the proper data type based on a mapping of data type <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> to
+<a class="tref internalDFN" title="term" href="#dfn-term">terms</a>. Using type coercion, value representation is preserved without requiring
+the data type to be specified with each piece of data.</p>
+
+<p>Type coercion is specified within an <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a>
+  using the <code>@type</code> key. The value of this key expands to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.
+  Alternatively, the <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <code>@id</code> or <code>@vocab</code> may be used
+  as value to indicate that within the body of a JSON-LD document, a <a class="tref internalDFN" title="string" href="#dfn-string">string</a> value of a
+  <a class="tref internalDFN" title="term" href="#dfn-term">term</a> coerced to <code>@id</code> or <code>@vocab</code> is to be interpreted as an
+  <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. The difference between <code>@id</code> and <code>@vocab</code> is how values are expanded
+  to <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>. <code>@vocab</code> first tries to expand the value
+  by interpreting it as <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. If no matching <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is found in the
+  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, it tries to expand it as <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+  if there's a colon in the value; otherwise, it will expand the value using the
+  <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context's</a> vocabulary mapping, if present, or by interpreting it
+  as <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Values coerced to <code>@id</code> in contrast are expanded as
+  <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> if a colon is present; otherwise, they are interpreted
+  as <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
+
+<p><a class="tref internalDFN" title="term" href="#dfn-term">Terms</a> or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a> used as the value of a
+  <code>@type</code> key may be defined within the same context. This means that one may specify a
+  <a class="tref internalDFN" title="term" href="#dfn-term">term</a> like <code>xsd</code> and then use <code>xsd:integer</code> within the same
+  context definition.</p>
+
+<p>The example below demonstrates how a JSON-LD author can coerce values to
+<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed values</a> and <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.</p>
+
+<div class="example"><div class="example-title"><span>Example 24</span>: Expanded term definition with types</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;age&quot;:
+    <span class="diff">{
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    }</span>,
+    &quot;homepage&quot;:
+    <span class="diff">{
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }</span>
+  },
+  &quot;@id&quot;: &quot;http://example.com/people#john&quot;,
+  &quot;name&quot;: &quot;John Smith&quot;,
+  &quot;age&quot;: <span class="diff">&quot;41&quot;</span>,
+  &quot;homepage&quot;:
+  <span class="diff">[
+    &quot;http://personal.example.org/&quot;,
+    &quot;http://work.example.com/jsmith/&quot;
+  ]</span>
+}</pre></div>
+
+<p>The example shown above would generate the following data.</p>
+
+<table class="example">
+<thead>
+  <tr><th>Subject</th>
+  <th>Property</th>
+  <th>Value</th>
+  <th>Value Type</th>
+</tr></thead>
+<tbody>
+<tr>
+  <td>http://example.com/people#john</td>
+  <td>http://xmlns.com/foaf/0.1/name</td>
+  <td>John Smith</td>
+  <td> </td>
+</tr>
+<tr>
+  <td>http://example.com/people#john</td>
+  <td>http://xmlns.com/foaf/0.1/age</td>
+  <td>41</td>
+  <td>http://www.w3.org/2001/XMLSchema#integer</td>
+</tr>
+<tr>
+  <td rowspan="2">http://example.com/people#john</td>
+  <td rowspan="2">http://xmlns.com/foaf/0.1/homepage</td>
+  <td>http://personal.example.org/</td>
+  <td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a></td>
+</tr>
+<tr>
+  <td>http://work.example.com/jsmith/</td>
+  <td><a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a></td>
+</tr>
+</tbody>
+</table>
+
+<p>Terms may also be defined using <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>
+  or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>. This allows coercion rules
+  to be applied to keys which are not represented as a simple <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.
+  For example:</p>
+
+<div class="example"><div class="example-title"><span>Example 25</span>: Term definitions using compact and absolute IRIs</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
+    &quot;<span class="diff">foaf:age</span>&quot;:
+    {
+      <span class="diff">&quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;</span>,
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    },
+    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
+    {
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;foaf:name&quot;: &quot;John Smith&quot;,
+  &quot;<span class="diff">foaf:age</span>&quot;: &quot;41&quot;,
+  &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
+  [
+    &quot;http://personal.example.org/&quot;,
+    &quot;http://work.example.com/jsmith/&quot;
+  ]
+}</pre></div>
+
+<p>In this case the <code>@id</code> definition in the term definition is optional.
+  If it does exist, the <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> representing
+  the term will always be expanded to <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> defined by the <code>@id</code>
+  key—regardless of whether a prefix is defined or not.</p>
+
+<p>Type coercion is always performed using the unexpanded value of the key. In the
+  example above, that means that type coercion is done looking for <code>foaf:age</code>
+  in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> and not for the corresponding, expanded
+  <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> <code>http://xmlns.com/foaf/0.1/age</code>.</p>
+
+<div class="note"><div class="note-title"><span>Note</span></div><p class="">Keys in the context are treated as <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> for the purpose of
+  expansion and value coercion. At times, this may result in multiple representations for the same expanded <abbr title="Internationalized Resource Identifier">IRI</abbr>.
+  For example, one could specify that <code>dog</code> and <code>cat</code> both expanded to <code>http://example.com/vocab#animal</code>.
+  Doing this could be useful for establishing different type coercion or language specification rules. It also allows a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> (or even an
+  absolute <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>) to be defined as something else entirely. For example, one could specify that
+  the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> <code>http://example.org/zoo</code> should expand to
+  <code>http://example.org/river</code>, but this usage is discouraged because it would lead to a
+  great deal of confusion among developers attempting to understand the JSON-LD document.</p></div>
+
+
+</div>
+
+<div class="informative section" id="embedding">
+  <h3><span class="secno">6.6 </span>Embedding</h3><p><em>This section is non-normative.</em></p>
+
+  <p><dfn title="embedding" id="dfn-embedding">Embedding</dfn> is a JSON-LD feature that allows an author to
+    use <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> as
+    <a class="tref internalDFN" title="property" href="#dfn-property">property</a> values. This is a commonly used mechanism for
+    creating a parent-child relationship between two <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>.</p>
+
+  <p>The example shows two nodes related by a property from the first node:</p>
+
+  <div class="example"><div class="example-title"><span>Example 26</span>: Embedding a node object as property value of another node object</div><pre class="example">{
+...
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;<span class="diff">knows</span>&quot;:
+  {
+    &quot;<span class="diff">@type</span>&quot;: &quot;<span class="diff">Person</span>&quot;,
+    &quot;<span class="diff">name</span>&quot;: &quot;<span class="diff">Gregg Kellogg</span>&quot;,
+  }
+...
+}</pre></div>
+
+  <p>
+    A <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>, like the one used above, may be used in
+    any value position in the body of a JSON-LD document.</p>
+</div>
+
+<div class="informative section" id="advanced-context-usage">
+  <h3><span class="secno">6.7 </span>Advanced Context Usage</h3><p><em>This section is non-normative.</em></p>
+
+  <p>Section <a href="#the-context" class="sec-ref"><span class="secno">5.1</span> <span class="sec-title">The Context</span></a> introduced the basics of what makes
+  JSON-LD work. This section expands on the basic principles of the
+  <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and demonstrates how more advanced use cases can
+  be achieved using JSON-LD. </p>
+
+  <p>In general, contexts may be used at any time a
+    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is defined. The only time that one cannot
+    express a context is inside a context definition itself. For example, a
+    <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> may use more than one context at different
+    points in a document:</p>
+
+  <div class="example"><div class="example-title"><span>Example 27</span>: Using multiple contexts</div><pre class="example">[
+  {
+    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/person.jsonld&quot;,</span>
+    &quot;name&quot;: &quot;Manu Sporny&quot;,
+    &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+    &quot;depiction&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;
+  },
+  {
+    <span class="diff">&quot;@context&quot;: &quot;http://example.org/contexts/place.jsonld&quot;,</span>
+    &quot;name&quot;: &quot;The Empire State Building&quot;,
+    &quot;description&quot;: &quot;The Empire State Building is a 102-story landmark in New York City.&quot;,
+    &quot;geo&quot;: {
+      &quot;latitude&quot;: &quot;40.75&quot;,
+      &quot;longitude&quot;: &quot;73.98&quot;
+    }
+  }
+]</pre></div>
+
+  <p>Duplicate context <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> are overridden using a
+    most-recently-defined-wins mechanism.</p>
+
+  <div class="example"><div class="example-title"><span>Example 28</span>: Scoped contexts within node objects</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+  {
+    &quot;name&quot;: &quot;http://example.com/person#name,
+    &quot;details&quot;: &quot;http://example.com/person#details&quot;
+  }&quot;</span>,
+  &quot;<span class="diff">name</span>&quot;: &quot;Markus Lanthaler&quot;,
+  ...
+  &quot;details&quot;:
+  {
+    <span class="diff">&quot;@context&quot;:
+    {
+      &quot;name&quot;: &quot;http://example.com/organization#name&quot;
+    }</span>,
+    &quot;<span class="diff">name</span>&quot;: &quot;Graz University of Technology&quot;
+  }
+}</pre></div>
+
+  <p>In the example above, the <code>name</code> <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is overridden
+    in the more deeply nested <code>details</code> structure. Note that this is
+    rarely a good authoring practice and is typically used when working with
+    legacy applications that depend on a specific structure of the
+    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. If a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is redefined within a
+    context, all previous rules associated with the previous definition are
+    removed. If a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is redefined to <code>null</code>,
+    the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is effectively removed from the list of
+    <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> defined in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>.</p>
+
+  <p>Multiple contexts may be combined using an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>, which is processed
+    in order. The set of contexts defined within a specific <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> are
+    referred to as <dfn title="local-context" id="dfn-local-context">local contexts</dfn>. The
+    <dfn title="active-context" id="dfn-active-context">active context</dfn> refers to the accumulation of
+    <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local contexts</a> that are in scope at a
+    specific point within the document. Setting a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a>
+    to <code>null</code> effectively resets the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>
+    to an empty context. The following example specifies an external context
+    and then layers an embedded context on top of the external context:</p>
+
+  <div class="example"><div class="example-title"><span>Example 29</span>: Combining external and local contexts</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;: [
+    &quot;http://json-ld.org/contexts/person.jsonld&quot;,
+    {
+      &quot;pic&quot;: &quot;http://xmlns.com/foaf/0.1/depiction&quot;
+    }
+  ],</span>
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;,
+  <span class="diff">&quot;pic&quot;: &quot;http://twitter.com/account/profile_image/manusporny&quot;</span>
+}</pre></div>
+
+  <div class="note"><div class="note-title"><span>Note</span></div><p class="">When possible, the <a class="tref internalDFN" title="context" href="#dfn-context">context</a> definition should be put
+    at the top of a JSON-LD document. This makes the document easier to read and
+    might make streaming parsers more efficient. Documents that do not have the
+    <a class="tref internalDFN" title="context" href="#dfn-context">context</a> at the top are still conformant JSON-LD.</p></div>
+
+  <div class="note"><div class="note-title"><span>Note</span></div><p class="">To avoid forward-compatibility issues, <a class="tref internalDFN" title="term" href="#dfn-term">terms</a>
+    starting with an <code>@</code> character are to be avoided as they
+    might be used as <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> in future versions
+    of JSON-LD. Terms starting with an <code>@</code> character that are not
+    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">JSON-LD 1.0 keywords</a> are treated as any other term, i.e.,
+    they are ignored unless mapped to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. Furthermore, the use of
+    empty <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> (<code>&quot;&quot;</code>) is not allowed as
+    not all programming languages are able to handle empty JSON keys.</p></div>
+</div>
+
+<div class="normative section" id="interpreting-json-as-json-ld">
+  <h3><span class="secno">6.8 </span>Interpreting JSON as JSON-LD</h3>
+
+  <p>Ordinary JSON documents can be interpreted as JSON-LD by referencing a JSON-LD
+    <a class="tref internalDFN" title="context" href="#dfn-context">context</a> document in an HTTP Link Header. Doing so allows JSON to
+    be unambiguously machine-readable without requiring developers to drastically
+    change their documents and provides an upgrade path for existing infrastructure
+    without breaking existing clients that rely on the <code>application/json</code>
+    media type.</p>
+
+  <p>In order to use an external context with an ordinary JSON document, an author
+    <em class="rfc2119" title="MUST">MUST</em> specify an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> to a valid <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> in
+    an HTTP Link Header [<cite><a class="bibref" href="#bib-RFC5988">RFC5988</a></cite>] using the <code>http://www.w3.org/ns/json-ld#context</code>
+    link relation. The referenced document <em class="rfc2119" title="MUST">MUST</em> have a top-level <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>.
+    The <code>@context</code> subtree within that object is added to the top-level
+    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> of the referencing document. If an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+    is at the top-level of the referencing document and its items are
+    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON objects</a>, the <code>@context</code>
+    subtree is added to all <a class="tref internalDFN" title="array" href="#dfn-array">array</a> items. All extra information located outside
+    of the <code>@context</code> subtree in the referenced document <em class="rfc2119" title="MUST">MUST</em> be
+    discarded. Effectively this means that the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> is
+    initialized with the referenced external <a class="tref internalDFN" title="context" href="#dfn-context">context</a>.</p>
+
+  <p>The following example demonstrates the use of an external context with an
+    ordinary JSON document:</p>
+
+  <div class="example"><div class="example-title"><span>Example 30</span>: Referencing a JSON-LD context from a JSON document via an HTTP Link Header</div><pre class="example">GET /ordinary-json-document.json HTTP/1.1
+Host: example.com
+Accept: application/ld+json,application/json,*/*;q=0.1
+
+====================================
+
+HTTP/1.0 200 OK
+...
+Content-Type: <span class="diff">application/json</span>
+<span class="diff">Link: &lt;http://json-ld.org/contexts/person.jsonld&gt;; rel=&quot;http://www.w3.org/ns/json-ld#context&quot;; type=&quot;application/ld+json&quot;</span>
+
+{
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;homepage&quot;: &quot;http://www.markus-lanthaler.com/&quot;,
+  &quot;image&quot;: &quot;http://twitter.com/account/profile_image/markuslanthaler&quot;
+}</pre></div>
+
+  <p>Please note that <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD documents</a>
+    served with the <code>application/ld+json</code>
+    media type <em class="rfc2119" title="MUST">MUST</em> have all context information, including references to external
+    contexts, within the body of the document. Contexts linked via a
+    <code>http://www.w3.org/ns/json-ld#context</code> HTTP Link Header <em class="rfc2119" title="MUST">MUST</em> be
+    ignored for such documents.</p>
+</div>
+
+<div class="informative section" id="string-internationalization">
+  <h3><span class="secno">6.9 </span>String Internationalization</h3><p><em>This section is non-normative.</em></p>
+
+  <p>At times, it is important to annotate a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>
+    with its language. In JSON-LD this is possible in a variety of ways.
+    First, it is possible to define a default language for a JSON-LD document
+    by setting the <code>@language</code> key in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>:</p>
+
+  <div class="example"><div class="example-title"><span>Example 31</span>: Setting the default language of a JSON-LD document</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+  {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+  }</span>,
+  &quot;name&quot;: <span class="diff">&quot;花澄&quot;</span>,
+  &quot;occupation&quot;: <span class="diff">&quot;科学者&quot;</span>
+}</pre></div>
+
+  <p>The example above would associate the <code>ja</code> language
+    code with the two <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> <em>花澄</em> and <em>科学者</em>.
+    Languages codes are defined in [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>]. The default language applies to all
+    <a class="tref internalDFN" title="string" href="#dfn-string">string</a> values that are not <a href="#type-coercion">type coerced</a>.</p>
+
+  <p>To clear the default language for a subtree, <code>@language</code> can
+    be set to <code>null</code> in a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> as follows:</p>
+
+  <div class="example"><div class="example-title"><span>Example 32</span>: Clearing default language</div><pre class="example">{
+  &quot;@context&quot;: {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+  },
+  &quot;name&quot;: &quot;花澄&quot;,
+  &quot;details&quot;: {
+<span class="diff">    &quot;@context&quot;: {
+      &quot;@language&quot;: null
+    }</span>,
+    &quot;occupation&quot;: &quot;Ninja&quot;
+  }
+}</pre></div>
+
+  <p>Second, it is possible to associate a language with a specific <a class="tref internalDFN" title="term" href="#dfn-term">term</a>
+    using an <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a>:</p>
+
+  <div class="example"><div class="example-title"><span>Example 33</span>: Expanded term definition with language</div><pre class="example">{
+  &quot;@context&quot;: {
+    ...
+    &quot;ex&quot;: &quot;http://example.com/vocab/&quot;,
+    &quot;@language&quot;: &quot;ja&quot;,
+    &quot;name&quot;: { &quot;@id&quot;: &quot;ex:name&quot;, <span class="diff">&quot;@language&quot;: null</span> },
+    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot; },
+    &quot;occupation_en&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;en&quot;</span> },
+    &quot;occupation_cs&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@language&quot;: &quot;cs&quot;</span> }
+  },
+  <span class="diff">&quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
+  &quot;occupation&quot;: &quot;忍者&quot;,
+  &quot;occupation_en&quot;: &quot;Ninja&quot;,
+  &quot;occupation_cs&quot;: &quot;Nindža&quot;,</span>
+  ...
+}</pre></div>
+
+  <p>The example above would associate <em>忍者</em> with the specified default
+    language code <code>ja</code>, <em>Ninja</em> with the language code
+    <code>en</code>, and <em>Nindža</em> with the language code <code>cs</code>.
+    The value of <code>name</code>, <em>Yagyū Muneyoshi</em> wouldn't be
+    associated with any language code since <code>@language</code> was reset to
+    <a class="tref internalDFN" title="null" href="#dfn-null">null</a> in the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a>.</p>
+
+  <div class="note"><div class="note-title"><span>Note</span></div><p class="">Language associations are only applied to plain
+    <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>. <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">Typed values</a>
+    or values that are subject to <a href="#type-coercion">type coercion</a>
+    are not language tagged.</p></div>
+
+  <p>Just as in the example above, systems often need to express the value of a
+    property in multiple languages. Typically, such systems also try to ensure that
+    developers have a programmatically easy way to navigate the data structures for
+    the language-specific data. In this case, <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language maps</a>
+    may be utilized.</p>
+
+  <div class="example"><div class="example-title"><span>Example 34</span>: Language map expressing a property in three languages</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    ...
+    &quot;occupation&quot;: { &quot;@id&quot;: &quot;ex:occupation&quot;, <span class="diff">&quot;@container&quot;: &quot;@language&quot;</span> }
+  },
+  &quot;name&quot;: &quot;Yagyū Muneyoshi&quot;,
+  &quot;occupation&quot;:
+  <span class="diff">{
+    &quot;ja&quot;: &quot;忍者&quot;,
+    &quot;en&quot;: &quot;Ninja&quot;,
+    &quot;cs&quot;: &quot;Nindža&quot;
+  }</span>
+  ...
+}</pre></div>
+
+  <p>The example above expresses exactly the same information as the previous
+    example but consolidates all values in a single property. To access the
+    value in a specific language in a programming language supporting dot-notation
+    accessors for object properties, a developer may use the
+    <code>property.language</code> pattern. For example, to access the occupation
+    in English, a developer would use the following code snippet:
+    <code>obj.occupation.en</code>.</p>
+
+  <p>Third, it is possible to override the default language by using a
+    <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>:</p>
+
+  <div class="example"><div class="example-title"><span>Example 35</span>: Overriding default language using an expanded value</div><pre class="example">{
+  &quot;@context&quot;: {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+  },
+  &quot;name&quot;: &quot;花澄&quot;,
+  &quot;occupation&quot;: <span class="diff">{
+    &quot;@value&quot;: &quot;Scientist&quot;,
+    &quot;@language&quot;: &quot;en&quot;
+  }</span>
+}</pre></div>
+
+  <p>This makes it possible to specify a plain string by omitting the
+    <code>@language</code> tag or setting it to <code>null</code> when expressing
+    it using a <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>:</p>
+
+  <div class="example"><div class="example-title"><span>Example 36</span>: Removing language information using an expanded value</div><pre class="example">{
+  &quot;@context&quot;: {
+    ...
+    &quot;@language&quot;: &quot;ja&quot;
+  },
+  &quot;name&quot;: <span class="diff">{
+    &quot;@value&quot;: &quot;Frank&quot;
+  }</span>,
+  &quot;occupation&quot;: {
+    &quot;@value&quot;: &quot;Ninja&quot;,
+    &quot;@language&quot;: &quot;en&quot;
+  },
+  &quot;speciality&quot;: &quot;手裏剣&quot;
+}</pre></div>
+
+</div>
+
+<div class="informative section" id="iri-expansion-within-a-context">
+  <h3><span class="secno">6.10 </span><abbr title="Internationalized Resource Identifier">IRI</abbr> Expansion within a Context</h3><p><em>This section is non-normative.</em></p>
+  <p>In general, normal <abbr title="Internationalized Resource Identifier">IRI</abbr> expansion rules apply
+    anywhere an <abbr title="Internationalized Resource Identifier">IRI</abbr> is expected (see <a class="sectionRef sec-ref" href="#iris">section 5.2 IRIs</a>). Within
+    a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> definition, this can mean that terms defined
+    within the context may also be used within that context as long as
+    there are no circular dependencies. For example, it is common to use
+    the <code>xsd</code> namespace when defining <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>s:</p>
+
+<div class="example"><div class="example-title"><span>Example 37</span>: IRI expansion within a context</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    <span class="diff">&quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;</span>,
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;age&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/age&quot;,
+      &quot;@type&quot;: <span class="diff">&quot;xsd:integer&quot;</span>
+    },
+    &quot;homepage&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  ...
+}</pre></div>
+
+<p>In this example, the <code>xsd</code> <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is defined
+  and used as a <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> for the <code>@type</code> coercion
+  of the <code>age</code> property.</p>
+
+<p><a class="tref internalDFN" title="term" href="#dfn-term">Terms</a> may also be used when defining the <abbr title="Internationalized Resource Identifier">IRI</abbr> of another
+<a class="tref internalDFN" title="term" href="#dfn-term">term</a>:</p>
+
+<div class="example"><div class="example-title"><span>Example 38</span>: Using a term to define the IRI of another term within a context</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    &quot;name&quot;: <span class="diff">&quot;foaf:name&quot;</span>,
+    &quot;age&quot;:
+    {
+      &quot;@id&quot;: <span class="diff">&quot;foaf:age&quot;</span>,
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    },
+    &quot;homepage&quot;:
+    {
+      &quot;@id&quot;: <span class="diff">&quot;foaf:homepage&quot;</span>,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  ...
+}</pre></div>
+
+<p><a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">Compact IRIs</a>
+  and <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> may be used on the left-hand side of a
+  <a class="tref internalDFN" title="term" href="#dfn-term">term</a> definition.</p>
+
+<div class="example"><div class="example-title"><span>Example 39</span>: Using a compact IRI as a term</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    <span class="diff">&quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;</span>,
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    &quot;name&quot;: &quot;foaf:name&quot;,
+    &quot;<span class="diff">foaf:age</span>&quot;:
+    {
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    },
+    &quot;<span class="diff">foaf:homepage</span>&quot;:
+    <span class="diff">{
+      &quot;@type&quot;: &quot;@id&quot;
+    }</span>
+  },
+  ...
+}</pre></div>
+
+<p>
+In this example, the <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> form is used in two different
+ways.
+In the first approach, <code>foaf:age</code> declares both the
+<a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> for the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> (using short-form) as well as the
+<code>@type</code> associated with the <a class="tref internalDFN" title="term" href="#dfn-term">term</a>. In the second
+approach, only the <code>@type</code> associated with the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is
+specified. The full <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> for
+<code>foaf:homepage</code> is determined by looking up the <code>foaf</code>
+<a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> in the
+<a class="tref internalDFN" title="context" href="#dfn-context">context</a>.
+</p>
+
+<p>
+<a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">Absolute IRIs</a> may also be used in the key position in a <a class="tref internalDFN" title="context" href="#dfn-context">context</a>:
+</p>
+
+<div class="example"><div class="example-title"><span>Example 40</span>: Associating context definitions with absolute IRIs</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;,
+    &quot;xsd&quot;: &quot;http://www.w3.org/2001/XMLSchema#&quot;,
+    &quot;name&quot;: &quot;foaf:name&quot;,
+    &quot;foaf:age&quot;:
+    {
+      &quot;@id&quot;: &quot;foaf:age&quot;,
+      &quot;@type&quot;: &quot;xsd:integer&quot;
+    },
+    &quot;<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>&quot;:
+    {
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  ...
+}</pre></div>
+
+<p>In order for the <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> to match above, the <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+  needs to be used in the <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a>. Also note that <code>foaf:homepage</code>
+  will not use the <code>{ &quot;@type&quot;: &quot;@id&quot; }</code> declaration because
+  <code>foaf:homepage</code> is not the same as <code>http://xmlns.com/foaf/0.1/homepage</code>.
+  That is, <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> are looked up in a <a class="tref internalDFN" title="context" href="#dfn-context">context</a> using
+  direct string comparison before the <a class="tref internalDFN" title="prefix" href="#dfn-prefix">prefix</a> lookup mechanism is applied.</p>
+
+<div class="note"><div class="note-title"><span>Note</span></div><p class="">While it is possible to define a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or
+  an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> to expand to some other unrelated <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+  (for example, <code>foaf:name</code> expanding to
+  <code>http://example.org/unrelated#species</code>), such usage is strongly
+  discouraged.</p></div>
+
+<p>The only exception for using terms in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is that
+  circular definitions are not allowed. That is,
+  a definition of <em>term1</em> cannot depend on the
+  definition of <em>term2</em> if <em>term2</em> also depends on
+  <em>term1</em>. For example, the following <a class="tref internalDFN" title="context" href="#dfn-context">context</a> definition
+  is illegal:</p>
+<div class="example"><div class="example-title"><span>Example 41</span>: Illegal circular definition of terms within a context</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    <span class="diff">&quot;term1&quot;: &quot;term2:foo&quot;,
+    &quot;term2&quot;: &quot;term1:bar&quot;</span>
+  },
+  ...
+}</pre></div>
+</div>
+
+<div class="informative section" id="sets-and-lists">
+<h3><span class="secno">6.11 </span>Sets and Lists</h3><p><em>This section is non-normative.</em></p>
+
+<p>A JSON-LD author can express multiple values in a compact way by using
+  <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a>. Since graphs do not describe ordering for links
+  between nodes, arrays in JSON-LD do not provide an ordering of the
+  contained elements by default. This is exactly the opposite from regular JSON
+  arrays, which are ordered by default. For example, consider the following
+  simple document:</p>
+
+<div class="example"><div class="example-title"><span>Example 42</span>: Multiple values with no inherent order</div><pre class="example">{
+...
+  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
+  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;JB&quot; ]</span>,
+...
+}</pre></div>
+
+<p>The example shown above would result in the following data being generated,
+  each relating the node to an individual value, with no inherent order:</p>
+
+<table class="example">
+<thead>
+  <tr><th>Subject</th>
+  <th>Property</th>
+  <th>Value</th>
+</tr></thead>
+<tbody>
+<tr>
+  <td>http://example.org/people#joebob</td>
+  <td>http://xmlns.com/foaf/0.1/nick</td>
+  <td>joe</td>
+</tr>
+<tr>
+  <td>http://example.org/people#joebob</td>
+  <td>http://xmlns.com/foaf/0.1/nick</td>
+  <td>bob</td>
+</tr>
+<tr>
+  <td>http://example.org/people#joebob</td>
+  <td>http://xmlns.com/foaf/0.1/nick</td>
+  <td>JB</td>
+</tr>
+</tbody>
+</table>
+
+<p>Multiple values may also be expressed using the expanded form:</p>
+
+<div class="example"><div class="example-title"><span>Example 43</span>: Using an expanded form to set multiple values</div><pre class="example">{
+  &quot;@id&quot;: &quot;http://example.org/articles/8&quot;,
+  &quot;dc:title&quot;: <span class="diff">
+  [
+    {
+      &quot;@value&quot;: &quot;Das Kapital&quot;,
+      &quot;@language&quot;: &quot;de&quot;
+    },
+    {
+      &quot;@value&quot;: &quot;Capital&quot;,
+      &quot;@language&quot;: &quot;en&quot;
+    }
+  ]</span>
+}</pre></div>
+
+<p>The example shown above would generate the following data, again with
+  no inherent order:</p>
+
+<table class="example">
+<thead>
+  <tr><th>Subject</th>
+  <th>Property</th>
+  <th>Value</th>
+  <th>Language</th>
+</tr></thead>
+<tbody>
+<tr>
+  <td>http://example.org/articles/8</td>
+  <td>http://purl.org/dc/terms/title</td>
+  <td>Das Kapital</td>
+  <td>de</td>
+</tr>
+<tr>
+  <td>http://example.org/articles/8</td>
+  <td>http://purl.org/dc/terms/title</td>
+  <td>Capital</td>
+  <td>en</td>
+</tr>
+</tbody>
+</table>
+
+<p>As the notion of ordered collections is rather important in data
+  modeling, it is useful to have specific language support. In JSON-LD,
+  a list may be represented using the <code>@list</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> as follows:</p>
+<div class="example"><div class="example-title"><span>Example 44</span>: An ordered collection of values in JSON-LD</div><pre class="example">{
+...
+  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
+  &quot;foaf:nick&quot;:
+  <span class="diff">{
+    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
+  }</span>,
+...
+}</pre></div>
+
+<p>This describes the use of this <a class="tref internalDFN" title="array" href="#dfn-array">array</a> as being ordered,
+  and order is maintained when processing a document. If every use of a given multi-valued
+  property is a list, this may be abbreviated by setting <code>@container</code>
+  to <code>@list</code> in the <a class="tref internalDFN" title="context" href="#dfn-context">context</a>:</p>
+<div class="example"><div class="example-title"><span>Example 45</span>: Specifying that a collection is ordered in the context</div><pre class="example">{
+  <span class="diff">&quot;@context&quot;:
+  {
+    ...
+    &quot;nick&quot;:
+    {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/nick&quot;,
+      &quot;@container&quot;: &quot;@list&quot;
+    }
+  }</span>,
+...
+  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
+  &quot;nick&quot;: <span class="diff">[ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]</span>,
+...
+}</pre></div>
+
+<div class="note"><div class="note-title"><span>Note</span></div><p class="">List of lists are not allowed in this version of JSON-LD.
+  This decision was made due to the extreme amount of added complexity when
+  processing lists of lists.</p></div>
+
+<p>While <code>@list</code> is used to describe <em>ordered lists</em>,
+  the <code>@set</code> keyword is used to describe <em>unordered sets</em>.
+  The use of <code>@set</code> in the body of a JSON-LD document
+  is optimized away when processing the document, as it is just syntactic
+  sugar. However, <code>@set</code> is helpful when used within the context
+  of a document.
+  Values of terms associated with a <code>@set</code> or <code>@list</code> container
+  are always represented in the form of an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>,
+  even if there is just a single value that would otherwise be optimized to
+  a non-array form in compact form (see
+  <a class="sectionRef sec-ref" href="#compact-document-form">section 6.18 Compact Document Form</a>). This makes post-processing of
+  JSON-LD documents easier as the data is always in array form, even if the
+  array only contains a single value.</p>
+
+</div>
+
+<div class="informative section" id="reverse-properties">
+  <h3><span class="secno">6.12 </span>Reverse Properties</h3><p><em>This section is non-normative.</em></p>
+
+  <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 2</span>: Reverse properties</div><div class="atrisk">
+    <p class="atrisk-head">Note: This feature is
+      <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
+      be removed from this specification based on feedback. Please send feedback to
+      <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
+      For the current status see
+      <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
+    <p>Reverse properties might be removed from JSON-LD 1.0 if implementation
+      experience reveals problems with supporting this feature.</p>
+  </div></div>
+
+  <p>JSON-LD serializes directed <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">graphs</a>. That means that
+    every <a class="tref internalDFN" title="property" href="#dfn-property">property</a> points from a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> to another <a class="tref internalDFN" title="node" href="#dfn-node">node</a>
+    or <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">value</a>. However, in some cases, it is desirable
+    to serialize in the reverse direction. Consider for example the case where a person
+    and its children should be described in a document. If the used vocabulary does not
+    provide a <em>children</em> <a class="tref internalDFN" title="property" href="#dfn-property">property</a> but just a <em>parent</em>
+    <a class="tref internalDFN" title="property" href="#dfn-property">property</a>, every <a class="tref internalDFN" title="node" href="#dfn-node">node</a> representing a child would have to
+    be expressed with a <a class="tref internalDFN" title="property" href="#dfn-property">property</a> pointing to the parent as in the following
+    example.</p>
+
+  <div class="example"><div class="example-title"><span>Example 46</span>: A document with children linking to their parent</div><pre class="example">[
+  {
+    <span class="diff">&quot;@id&quot;: &quot;#homer&quot;</span>,
+    &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;
+  },
+  {
+    &quot;@id&quot;: &quot;#bart&quot;,
+    &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;,
+    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span>
+  },
+  {
+    &quot;@id&quot;: &quot;#lisa&quot;,
+    &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;,
+    <span class="diff">&quot;http://example.com/vocab#parent&quot;: { &quot;@id&quot;: &quot;#homer&quot; }</span>
+  }
+]</pre></div>
+
+  <p>Expressing such data is much simpler by using JSON-LD's <code>@reverse</code>
+    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>:</p>
+
+  <div class="example"><div class="example-title"><span>Example 47</span>: A person and its children using a reverse property</div><pre class="example">{
+  &quot;@id&quot;: &quot;#homer&quot;,
+  &quot;http://example.com/vocab#name&quot;: &quot;Homer&quot;,
+  <span class="diff">&quot;@reverse&quot;</span>: {
+    <span class="diff">&quot;http://example.com/vocab#parent&quot;</span>: [
+      {
+        &quot;@id&quot;: &quot;#bart&quot;,
+        &quot;http://example.com/vocab#name&quot;: &quot;Bart&quot;
+      },
+      {
+        &quot;@id&quot;: &quot;#lisa&quot;,
+        &quot;http://example.com/vocab#name&quot;: &quot;Lisa&quot;
+      }
+    ]
+  }
+}</pre></div>
+
+  <p>The <code>@reverse</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> can also be used in
+    <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definitions</a>
+    to create reverse properties as shown in the following example:</p>
+
+
+  <div class="example"><div class="example-title"><span>Example 48</span>: Using @reverse to define reverse properties</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://example.com/vocab#name&quot;,
+    <span class="diff">&quot;children&quot;: { &quot;@reverse&quot;: &quot;http://example.com/vocab#parent&quot; }</span>
+  },
+  &quot;@id&quot;: &quot;#homer&quot;,
+  &quot;name&quot;: &quot;Homer&quot;,
+  <span class="diff">&quot;children&quot;</span>: [
+    {
+      &quot;@id&quot;: &quot;#bart&quot;,
+      &quot;name&quot;: &quot;Bart&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;#lisa&quot;,
+      &quot;name&quot;: &quot;Lisa&quot;
+    }
+  ]
+}</pre></div>
+</div>
+
+
+<div class="informative section" id="named-graphs">
+  <h3><span class="secno">6.13 </span>Named Graphs</h3><p><em>This section is non-normative.</em></p>
+
+  <p>At times, it is necessary to make statements about a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>
+    itself, rather than just a single <a class="tref internalDFN" title="node" href="#dfn-node">node</a>. This can be done by
+    grouping a set of <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> using the <code>@graph</code>
+    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. A developer may also name data expressed using the
+    <code>@graph</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> by pairing it with an
+    <code>@id</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> as shown in the following example:</p>
+
+  <div class="example"><div class="example-title"><span>Example 49</span>: Identifying and making statements about a graph</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;generatedAt&quot;: {
+      &quot;@id&quot;: &quot;http://www.w3.org/ns/prov#generatedAtTime&quot;,
+      &quot;@type&quot;: &quot;http://www.w3.org/2001/XMLSchema#date&quot;
+    },
+    &quot;Person&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  <span class="diff">&quot;@id&quot;: &quot;http://example.org/graphs/73&quot;,
+  &quot;generatedAt&quot;: &quot;2012-04-09&quot;,
+  &quot;@graph&quot;:</span>
+  [
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+      &quot;@type&quot;: &quot;Person&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;,
+      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+      &quot;@type&quot;: &quot;Person&quot;,
+      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
+      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
+    }
+  ]
+}</pre></div>
+
+  <p>The example above expresses a <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graph</a> that is identified
+    by the <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> <code>http://example.org/graphs/73</code>. That
+    graph is composed of the statements about Manu and Gregg. Metadata about
+    the graph itself is expressed via the <code>generatedAt</code> property,
+    which specifies when the graph was generated. An alternative view of the
+    information above is represented in table form below:</p>
+
+  <table class="example">
+  <thead>
+    <tr><th>Graph</th>
+    <th>Subject</th>
+    <th>Property</th>
+    <th>Value</th>
+    <th>Value Type</th>
+  </tr></thead>
+  <tbody>
+  <tr>
+    <td> </td>
+    <td>http://example.org/graphs/73</td>
+    <td>http://www.w3.org/ns/prov#generatedAtTime</td>
+    <td>2012-04-09</td>
+    <td>http://www.w3.org/2001/XMLSchema#date</td>
+  </tr>
+  <tr>
+    <td>http://example.org/graphs/73</td>
+    <td>http://manu.sporny.org/i/public</td>
+    <td>http://www.w3.org/2001/XMLSchema#type</td>
+    <td>http://xmlns.com/foaf/0.1/Person</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>http://example.org/graphs/73</td>
+    <td>http://manu.sporny.org/i/public</td>
+    <td>http://xmlns.com/foaf/0.1/name</td>
+    <td>Manu Sporny</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>http://example.org/graphs/73</td>
+    <td>http://manu.sporny.org/i/public</td>
+    <td>http://xmlns.com/foaf/0.1/knows</td>
+    <td>http://greggkellogg.net/foaf#me</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>http://example.org/graphs/73</td>
+    <td>http://greggkellogg.net/foaf#me</td>
+    <td>http://www.w3.org/2001/XMLSchema#type</td>
+    <td>http://xmlns.com/foaf/0.1/Person</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>http://example.org/graphs/73</td>
+    <td>http://greggkellogg.net/foaf#me</td>
+    <td>http://xmlns.com/foaf/0.1/name</td>
+    <td>Gregg Kellogg</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>http://example.org/graphs/73</td>
+    <td>http://greggkellogg.net/foaf#me</td>
+    <td>http://xmlns.com/foaf/0.1/knows</td>
+    <td>http://manu.sporny.org/i/public</td>
+    <td></td>
+  </tr>
+  </tbody>
+  </table>
+
+  <p>When a JSON-LD document's top-level structure is an
+    <a class="tref internalDFN" title="json-object" href="#dfn-json-object">object</a> that contains no other
+    <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> than <code>@graph</code> and
+    optionally <code>@context</code> (properties that are not mapped to an
+    <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> are ignored),
+    <code>@graph</code> is considered to express the otherwise implicit
+    <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a>. This mechanism can be useful when a number
+    of <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> exist at the document's top level that
+    share the same <a class="tref internalDFN" title="context" href="#dfn-context">context</a>, which is, e.g., the case when a
+    document is <a href="#flattened-document-form">flattened</a>. The
+    <code>@graph</code> keyword collects such nodes in an <a class="tref internalDFN" title="array" href="#dfn-array">array</a>
+    and allows the use of a shared context.</p>
+
+  <div class="example"><div class="example-title"><span>Example 50</span>: Using @graph to explicitly express the default graph</div><pre class="example">{
+  &quot;@context&quot;: ...,
+  &quot;<span class="diff">@graph</span>&quot;:
+  [
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;,
+      &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;name&quot;: &quot;Gregg Kellogg&quot;,
+      &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
+    }
+  ]
+}</pre></div>
+
+  <p>In this case, embedding doesn't work as each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>
+    references the other. This is equivalent to using multiple
+    <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> in array and defining
+    the <code>@context</code> within each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>:</p>
+
+  <div class="example"><div class="example-title"><span>Example 51</span>: Context needs to be duplicated if @graph is not used</div><pre class="example">[
+  {
+    <span class="diff">&quot;@context&quot;: ...,</span>
+    &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+    &quot;@type&quot;: &quot;foaf:Person&quot;,
+    &quot;name&quot;: &quot;Manu Sporny&quot;,
+    &quot;knows&quot;: &quot;http://greggkellogg.net/foaf#me&quot;
+  },
+  {
+    <span class="diff">&quot;@context&quot;: ...,</span>
+    &quot;@id&quot;: &quot;http://greggkellogg.net/foaf#me&quot;,
+    &quot;@type&quot;: &quot;foaf:Person&quot;,
+    &quot;name&quot;: &quot;Gregg Kellogg&quot;,
+    &quot;knows&quot;: &quot;http://manu.sporny.org/i/public&quot;
+  }
+]</pre></div>
+
+</div>
+
+<div class="informative section" id="identifying-blank-nodes">
+  <h3><span class="secno">6.14 </span>Identifying Blank Nodes</h3><p><em>This section is non-normative.</em></p>
+
+  <p>At times, it becomes necessary to be able to express information without
+    being able to uniquely identify the <a class="tref internalDFN" title="node" href="#dfn-node">node</a> with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.
+    This type of node is called a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>. JSON-LD does not require
+    all nodes to be identified using <code>@id</code>. However, some graph topologies
+    may require identifiers to be serializable. Graphs containing loops, e.g., cannot
+    be serialized using embedding alone, <code>@id</code> must be used to connect the nodes.
+    In these situations, one can use <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>,
+    which look like <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> using an underscore (<code>_</code>)
+    as scheme. This allows one to reference the node locally within the document, but
+    makes it impossible to reference the node from an external document. The
+    <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> is scoped  to the document in which it is used.</p>
+
+  <div class="example"><div class="example-title"><span>Example 52</span>: Specifying a local blank node identifier</div><pre class="example">{
+   ...
+   &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot;,
+   &quot;name&quot;: &quot;Secret Agent 1&quot;,
+   &quot;knows&quot;:
+     {
+       &quot;name&quot;: &quot;Secret Agent 2&quot;,
+       &quot;knows&quot;: { &quot;@id&quot;: &quot;<span class="diff">_:n1</span>&quot; }
+     }
+}</pre></div>
+
+  <p>The example above contains information about to secrete agents that cannot be identified
+    with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>. While expressing that <em>agent 1</em> knows <em>agent 2</em> is possible
+    without using <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>, it is
+    necessary assign <em>agent 1</em> an identifier so that it can be referenced from
+    <em>agent 2</em>.</p>
+  <p>It is worth nothing that blank node identifiers may be relabeled during processing.
+    If a developer finds that they refer to the <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> more than once,
+    they should consider naming the node using a dereferenceable <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> so that
+    it can also be referenced from other documents.</p>
+</div>
+
+<div class="informative section" id="aliasing-keywords">
+  <h3><span class="secno">6.15 </span>Aliasing Keywords</h3><p><em>This section is non-normative.</em></p>
+
+  <p>Each of the JSON-LD <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>,
+    except for <code>@context</code>, may be aliased to application-specific
+    keywords. This feature allows legacy JSON content to be utilized
+    by JSON-LD by re-using JSON keys that already exist in legacy documents.
+    This feature also allows developers to design domain-specific implementations
+    using only the JSON-LD <a class="tref internalDFN" title="context" href="#dfn-context">context</a>.</p>
+
+  <div class="example"><div class="example-title"><span>Example 53</span>: Aliasing keywords</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+     <span class="diff">&quot;url&quot;: &quot;@id&quot;</span>,
+     <span class="diff">&quot;a&quot;: &quot;@type&quot;</span>,
+     &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;
+  },
+  &quot;<span class="diff">url</span>&quot;: &quot;http://example.com/about#gregg&quot;,
+  &quot;<span class="diff">a</span>&quot;: &quot;http://xmlns.com/foaf/0.1/Person&quot;,
+  &quot;name&quot;: &quot;Gregg Kellogg&quot;
+}</pre></div>
+
+  <p>In the example above, the <code>@id</code> and <code>@type</code>
+    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> have been given the aliases
+    <strong>url</strong> and <strong>a</strong>, respectively.</p>
+
+  <p>Since keywords cannot be redefined, they can also not be aliased to
+    other keywords.</p>
+</div>
+
+<div class="informative section" id="data-indexing">
+  <h3><span class="secno">6.16 </span>Data Indexing</h3><p><em>This section is non-normative.</em></p>
+
+  <p>Databases are typically used to make access to
+    data more efficient. Developers often extend this sort of functionality into
+    their application data to deliver similar performance gains. Often this
+    data does not have any meaning from a Linked Data standpoint, but is
+    still useful for an application.</p>
+
+  <p>JSON-LD introduces the notion of <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index maps</a>
+    that can be used to structure data into a form that is
+    more efficient to access. The data indexing feature allows an author to
+    structure data using a simple key-value map where the keys do not map
+    to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>. This enables direct access to data
+    instead of having to scan an array in search of a specific item.
+    In JSON-LD such data can be specified by associating the
+    <code>@index</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> with a
+    <code>@container</code> declaration in the context:</p>
+
+  <div class="example"><div class="example-title"><span>Example 54</span>: Indexing data in JSON-LD</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+     &quot;schema&quot;: &quot;http://schema.org/&quot;,
+     &quot;name&quot;: &quot;schema:name&quot;,
+     &quot;body&quot;: &quot;schema:articleBody&quot;,
+     &quot;words&quot;: &quot;schema:wordCount&quot;,
+     &quot;post&quot;: {
+       &quot;@id&quot;: &quot;schema:blogPost&quot;,
+       <span class="diff">&quot;@container&quot;: &quot;@index&quot;</span>
+     }
+  },
+  &quot;@id&quot;: &quot;http://example.com/&quot;,
+  &quot;@type&quot;: &quot;schema:Blog&quot;,
+  &quot;name&quot;: &quot;World Financial News&quot;,
+  <span class="diff">&quot;post&quot;: {
+     &quot;en&quot;: {
+       &quot;@id&quot;: &quot;http://example.com/posts/1/en&quot;,
+       &quot;body&quot;: &quot;World commodities were up today with heavy trading of crude oil...&quot;,
+       &quot;words&quot;: 1539
+     },
+     &quot;de&quot;: {
+       &quot;@id&quot;: &quot;http://example.com/posts/1/de&quot;,
+       &quot;body&quot;: &quot;Die Werte an Warenbörsen stiegen im Sog eines starken Handels von Rohöl...&quot;,
+       &quot;words&quot;: 1204
+     }</span>
+  }
+}</pre></div>
+
+  <p>In the example above, the <strong>blogPost</strong> <a class="tref internalDFN" title="term" href="#dfn-term">term</a> has
+    been marked as an <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a>. The <strong>en</strong>,
+    <strong>de</strong>, and <strong>ja</strong> keys will be ignored
+    semantically, but preserved syntactically, by the JSON-LD Processor.
+    This allows a developer to access the German version
+    of the <strong>blogPost</strong> using the following code snippet:
+    <code>obj.blogPost.de</code>.</p>
+
+  <p>The interpretation of the data above is expressed in
+    the table below. Note how the index keys do not appear in the Linked Data
+    below, but would continue to exist if the document were compacted or
+    expanded (see <a class="sectionRef sec-ref" href="#compact-document-form">section 6.18 Compact Document Form</a> and
+    <a class="sectionRef sec-ref" href="#expanded-document-form">section 6.17 Expanded Document Form</a>) using a JSON-LD processor:</p>
+
+  <table class="example">
+    <thead>
+      <tr><th>Subject</th>
+      <th>Property</th>
+      <th>Value</th>
+    </tr></thead>
+    <tbody>
+      <tr>
+        <td>http://example.com/</td>
+        <td>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</td>
+        <td>http://schema.org/Blog</td>
+      </tr>
+      <tr>
+        <td>http://example.com/</td>
+        <td>http://schema.org/name</td>
+        <td>World Financial News</td>
+      </tr>
+      <tr>
+        <td>http://example.com/</td>
+        <td>http://schema.org/blogPost</td>
+        <td>http://example.com/posts/1/en</td>
+      </tr>
+      <tr>
+        <td>http://example.com/</td>
+        <td>http://schema.org/blogPost</td>
+        <td>http://example.com/posts/1/de</td>
+      </tr>
+      <tr>
+        <td>http://example.com/posts/1/en</td>
+        <td>http://schema.org/articleBody</td>
+        <td>World commodities were up today with heavy trading of crude oil...</td>
+      </tr>
+      <tr>
+        <td>http://example.com/posts/1/en</td>
+        <td>http://schema.org/wordCount</td>
+        <td>1539</td>
+      </tr>
+      <tr>
+        <td>http://example.com/posts/1/de</td>
+        <td>http://schema.org/articleBody</td>
+        <td>Die Werte an Warenbörsen stiegen im Sog eines starken Handels von Rohöl...</td>
+      </tr>
+      <tr>
+        <td>http://example.com/posts/1/de</td>
+        <td>http://schema.org/wordCount</td>
+        <td>1204</td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<div class="informative section" id="expanded-document-form">
+  <h3><span class="secno">6.17 </span>Expanded Document Form</h3><p><em>This section is non-normative.</em></p>
+
+  <p>The JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>]
+    defines a method for <em>expanding</em> a JSON-LD document.
+    Expansion is the process of taking a JSON-LD document and applying a
+    <code>@context</code> such that all IRIs, types, and values
+    are expanded so that the <code>@context</code> is no longer necessary.</p>
+
+  <p>For example, assume the following JSON-LD input document:</p>
+
+  <div class="example"><div class="example-title"><span>Example 55</span>: Sample JSON-LD document</div><pre class="example">{
+   &quot;@context&quot;:
+   {
+      &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+      &quot;homepage&quot;: {
+        &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+        &quot;@type&quot;: &quot;@id&quot;
+      }
+   },
+   &quot;name&quot;: &quot;Manu Sporny&quot;,
+   &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+}</pre></div>
+
+  <p>Running the JSON-LD Expansion algorithm against the JSON-LD input document
+    provided above would result in the following output:</p>
+
+  <div class="example"><div class="example-title"><span>Example 56</span>: Expanded form for the previous example</div><pre class="example">[
+  {
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [
+      { &quot;@value&quot;: &quot;Manu Sporny&quot; }
+    ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
+    ]
+  }
+]</pre></div>
+</div>
+
+<div class="informative section" id="compact-document-form">
+  <h3><span class="secno">6.18 </span>Compact Document Form</h3><p><em>This section is non-normative.</em></p>
+
+  <p>The JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>] defines
+    a method for <em>compacting</em> a JSON-LD document. Compaction is the process
+    of applying a developer-supplied context to shorten <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>
+    to <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> or <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>
+    and JSON-LD values expressed in expanded form to simple values such as
+    <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> or <a class="tref internalDFN" title="number" href="#dfn-number">numbers</a>.
+    Often this makes it simpler to work with document as the data is expressed in
+    application-specific terms. Compacted documents are also typically easier to read
+    for humans.</p>
+
+  <p>For example, assume the following JSON-LD input document:</p>
+
+  <div class="example"><div class="example-title"><span>Example 57</span>: Sample expanded JSON-LD document</div><pre class="example">[
+  {
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: [ &quot;Manu Sporny&quot; ],
+    &quot;http://xmlns.com/foaf/0.1/homepage&quot;: [
+      {
+       &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;
+      }
+    ]
+  }
+]</pre></div>
+
+  <p>Additionally, assume the following developer-supplied JSON-LD context:</p>
+
+  <div class="example"><div class="example-title"><span>Example 58</span>: Sample context</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  }
+}</pre></div>
+
+  <p>Running the JSON-LD Compaction algorithm given the context supplied above
+    against the JSON-LD input document provided above would result in the following
+    output:</p>
+
+  <div class="example"><div class="example-title"><span>Example 59</span>: Compact form of the sample document once sample context has been applied</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;homepage&quot;: {
+      &quot;@id&quot;: &quot;http://xmlns.com/foaf/0.1/homepage&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    }
+  },
+  &quot;name&quot;: &quot;Manu Sporny&quot;,
+  &quot;homepage&quot;: &quot;http://manu.sporny.org/&quot;
+}</pre></div>
+</div>
+
+<div class="informative section" id="flattened-document-form">
+  <h3><span class="secno">6.19 </span>Flattened Document Form</h3><p><em>This section is non-normative.</em></p>
+
+  <p>The JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>] defines
+    a method for <em>flattening</em> a JSON-LD document. Flattening collects all
+    properties of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in a single <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> and labels
+    all <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> with
+    <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>.
+    This ensures a shape of the data and consequently may drastically simplify the code
+    required to process JSON-LD in certain applications.</p>
+
+  <p>For example, assume the following JSON-LD input document:</p>
+
+  <div class="example"><div class="example-title"><span>Example 60</span>: Sample JSON-LD document</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;knows&quot;: [
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;
+    },
+    {
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    }
+  ]
+}</pre></div>
+
+  <p>Running the JSON-LD Flattening algorithm against the JSON-LD input document in
+    the example above and using the same context would result in the following
+    output:</p>
+
+  <div class="example"><div class="example-title"><span>Example 61</span>: Flattened and compacted form for the previous example</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@graph&quot;: [
+    {
+      &quot;@id&quot;: &quot;_:b0&quot;,
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;
+    },
+    {
+      &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+      &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+      &quot;knows&quot;: [
+        { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
+        { &quot;@id&quot;: &quot;_:b0&quot; }
+      ]
+    }
+  ]
+}</pre></div>
+</div>
+
+<div class="informative section" id="embedding-json-ld-in-html-documents">
+  <h3><span class="secno">6.20 </span>Embedding JSON-LD in HTML Documents</h3><p><em>This section is non-normative.</em></p>
+
+  <p>HTML script tags can be used to embed blocks of data in documents.
+    This way, JSON-LD content can be easily embedded in HTML by placing
+    it in a script element with the <code>type</code> attribute set to
+    <code>application/ld+json</code>.</p>
+
+  <div class="example"><div class="example-title"><span>Example 62</span>: Embedding JSON-LD in HTML</div><pre class="example"><span class="diff">&lt;script type=&quot;application/ld+json&quot;&gt;</span>
+{
+  &quot;@context&quot;: &quot;http://json-ld.org/contexts/person.jsonld&quot;,
+  &quot;@id&quot;: &quot;http://dbpedia.org/resource/John_Lennon&quot;,
+  &quot;name&quot;: &quot;John Lennon&quot;,
+  &quot;born&quot;: &quot;1940-10-09&quot;,
+  &quot;spouse&quot;: &quot;http://dbpedia.org/resource/Cynthia_Lennon&quot;
+}
+<span class="diff">&lt;/script&gt;</span></pre></div>
+
+  <p>Depending on how the HTML document is served, certain strings may need
+    to be escaped.</p>
+
+  <p>Defining how such data may be used is beyond the scope of this specification.
+    The embedded JSON-LD document might be extracted as is or, e.g., be converted
+    to RDF.</p>
+
+  <p>If JSON-LD content is extracted as RDF [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>], it should be expanded into an
+    <a class="tref externalDFN" title="rdf-dataset" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-dataset">RDF dataset</a> using the
+    <cite><a href="../json-ld-api/#convert-to-rdf-algorithm">Convert to RDF Algorithm</a></cite>
+    [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>].</p>
+</div>
+
+</div>
+
+<div class="appendix normative section" id="data-model">
+
+<!--OddPage-->
+<h2><span class="secno">A. </span>Data Model</h2>
+
+  <p>JSON-LD is a serialization format for <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> based on JSON.
+    It is therefore important to distinguish between the syntax, which is defined
+    by JSON in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>], and <dfn title="json-ld-data-model" id="dfn-json-ld-data-model">JSON-LD's data model</dfn>
+    which is defined as follows:</p>
+
+  <ul>
+    <li>A <dfn title="json-ld-document" id="dfn-json-ld-document">JSON-LD document</dfn> serializes a collection of
+      <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graphs</a> and comprises exactly one
+      <dfn title="default-graph" id="dfn-default-graph">default graph</dfn> and zero or more <dfn title="named-graph" id="dfn-named-graph">named graphs</dfn>.</li>
+    <li>The <a class="tref internalDFN" title="default-graph" href="#dfn-default-graph">default graph</a> does not have a name and <em class="rfc2119" title="MAY">MAY</em> be empty.</li>
+    <li>Each <a class="tref internalDFN" title="named-graph" href="#dfn-named-graph">named graph</a> is a pair consisting of an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
+      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a> (the <dfn title="graph-name" id="dfn-graph-name">graph name</dfn>) and a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a>.
+      Whenever practical, the <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> <em class="rfc2119" title="SHOULD">SHOULD</em> be an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
+    <li>A <dfn title="json-ld-graph" id="dfn-json-ld-graph">JSON-LD graph</dfn> is a labeled directed graph, i.e., a set of
+      <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a> connected by <a class="tref internalDFN" title="edge" href="#dfn-edge">edges</a>.</li>
+    <li>Every <dfn title="edge" id="dfn-edge">edge</dfn> has a direction associated with it and is labeled with
+      an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>. Within the JSON-LD syntax
+      these edge labels are called <dfn title="property" id="dfn-property">properties</dfn>. Whenever practical, an
+      <a class="tref internalDFN" title="edge" href="#dfn-edge">edge</a> <em class="rfc2119" title="SHOULD">SHOULD</em> be labeled with an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
+    <li>Every <dfn title="node" id="dfn-node">node</dfn> is an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>,
+      a <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a>, or a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>.</li>
+    <li>A <a class="tref internalDFN" title="node" href="#dfn-node">node</a> having an outgoing edge <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a
+      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a>.</li>
+    <li>A <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em> contain unconnected <a class="tref internalDFN" title="node" href="#dfn-node">nodes</a>,
+      i.e., nodes which are not connected by an <a class="tref internalDFN" title="edge" href="#dfn-edge">edge</a> to any other <a class="tref internalDFN" title="node" href="#dfn-node">node</a>.</li>
+    <li>An <dfn title="iri" id="dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></dfn>
+      (Internationalized Resource Identifier) is a string that conforms to the syntax
+      defined in [<cite><a class="bibref" href="#bib-RFC3987">RFC3987</a></cite>]. <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> used within a
+      <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> <em class="rfc2119" title="SHOULD">SHOULD</em> return a <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> document describing
+      the resource denoted by that <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> when being dereferenced.</li>
+    <li>A <dfn title="blank-node" id="dfn-blank-node">blank node</dfn> is a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> which is neither an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+      nor a <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD value</a>, nor a <a class="tref internalDFN" title="list" href="#dfn-list">list</a>. A blank node <em class="rfc2119" title="MAY">MAY</em> be identified
+      using a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</li>
+    <li>A <dfn title="blank-node-identifier" id="dfn-blank-node-identifier">blank node identifier</dfn> is a string that can be used as an identifier
+      for a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> within the scope of a <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a>.
+      Blank node identifiers begin with <code>_:</code>.</li>
+    <li>A <dfn title="json-ld-value" id="dfn-json-ld-value">JSON-LD value</dfn> is a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, a <a class="tref internalDFN" title="number" href="#dfn-number">number</a>,
+      <a class="tref internalDFN" title="true" href="#dfn-true">true</a> or <a class="tref internalDFN" title="false" href="#dfn-false">false</a>, a <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a>, or a
+      <a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged string</a>.</li>
+    <li>A <dfn title="typed-value" id="dfn-typed-value">typed value</dfn> consists of a value, which is a string, and a type, which is an
+      <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</li>
+    <li>A <dfn title="language-tagged-string" id="dfn-language-tagged-string">language-tagged string</dfn> consists of a string and a non-empty language
+      tag as defined by [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>]. The language tag <em class="rfc2119" title="MUST">MUST</em> be well-formed according to section
+      <a href="http://tools.ietf.org/html/bcp47#section-2.2.9">2.2.9 Classes of Conformance</a>
+      of [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>].</li>
+    <li>A <dfn title="list" id="dfn-list">list</dfn> is an ordered sequence of zero or more
+      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
+      <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>, and
+      <a class="tref internalDFN" title="json-ld-value" href="#dfn-json-ld-value">JSON-LD values</a>.</li>
+  </ul>
+
+  <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 3</span>: Allow blank nodes to be used as graph name or property</div><div class="atrisk">
+    <p class="atrisk-head">Note: This feature is
+      <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
+      be removed from this specification based on feedback. Please send feedback to
+      <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
+      For the current status see
+      <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
+    <p>RDF does not currently allow a <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> to be
+      used as <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph name</a> or <a class="tref internalDFN" title="property" href="#dfn-property">property</a>, while JSON-LD
+      does. JSON-LD to RDF converters can work around this restriction, when converting
+      JSON-LD to RDF, by converting such <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a> to
+      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>, minting new &quot;Skolem IRIs&quot; as per
+      <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">Replacing Blank Nodes with IRIs</a></cite>
+      of [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>]. Based on feedback from implementors the
+      Working Group may decide to disallow blank nodes as graph names and
+      properties in JSON-LD. If this change would affect you, be sure to
+      send in a comment.</p>
+  </div></div>
+
+  <p><a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD documents</a> <em class="rfc2119" title="MAY">MAY</em> contain data that cannot be
+    represented by the <a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model">data model</a> defined above.
+    Unless otherwise specified, such data is ignored when a <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a>
+    is being processed. This means, e.g., that properties which are not mapped to an
+    <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank node</a> will be ignored.</p>
+
+  <p style="text-align: center"><img src="linked-data-graph.png" title="An illustration of JSON-LD's data model" alt="An illustration of JSON-LD's data model" /></p>
+  <p style="text-align: center">Figure 1: An illustration of JSON-LD's data model.</p>
+</div>
+
+<div class="appendix normative section" id="json-ld-grammar">
+
+<!--OddPage-->
+<h2><span class="secno">B. </span>JSON-LD Grammar</h2>
+
+  <p>This appendix restates the syntactic conventions described in the
+    previous sections more formally.</p>
+
+  <p>A <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> <em class="rfc2119" title="MUST">MUST</em> be a valid JSON document as described
+    in [<cite><a class="bibref" href="#bib-RFC4627">RFC4627</a></cite>].</p>
+
+  <p>A <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a> <em class="rfc2119" title="MUST">MUST</em> be a single <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>
+    or an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> whose elements are each
+    <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> at the top level.</p>
+
+  <p>In contrast to JSON, in JSON-LD the keys in <a class="tref internalDFN" title="json-object" href="#dfn-json-object">objects</a>
+    <em class="rfc2119" title="MUST">MUST</em> be unique.</p>
+
+  <div class="note"><div class="note-title"><span>Note</span></div><p class="">JSON-LD allows <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> to be aliased
+    (see <a class="sectionRef sec-ref" href="#aliasing-keywords">section 6.15 Aliasing Keywords</a> for details). Whenever a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> is
+    discussed in this grammar, the statements also apply to an alias for
+    that <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>. For example, if the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>
+    defines the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> <code>id</code> as an alias for <code>@id</code>,
+    that alias may be legitimately used as a substitution for <code>@id</code>.
+    Note that <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> aliases are not expanded during context
+    processing.</p></div>
+
+  <div class="normative section" id="terms">
+    <h3><span class="secno">B.1 </span>Terms</h3>
+
+    <p>A <dfn title="term" id="dfn-term">term</dfn> is a short-hand <a class="tref internalDFN" title="string" href="#dfn-string">string</a> that expands
+      to an <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a> or a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>.</p>
+
+    <p>A <a class="tref internalDFN" title="term" href="#dfn-term">term</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em> equal any of the JSON-LD
+      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>.</p>
+
+    <p>To avoid forward-compatibility issues, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> start
+      with an <code>@</code> character as future versions of JSON-LD may introduce
+      additional <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a>. Furthermore, the term <em class="rfc2119" title="MUST NOT">MUST NOT</em>
+      be an empty <a class="tref internalDFN" title="string" href="#dfn-string">string</a> (<code>&quot;&quot;</code>) as not all programming languages
+      are able to handle empty JSON keys.</p>
+
+    <p>See <a class="sectionRef sec-ref" href="#the-context">section 5.1 The Context</a> and
+      <a class="sectionRef sec-ref" href="#iris">section 5.2 IRIs</a> for further discussion
+      on mapping <a class="tref internalDFN" title="term" href="#dfn-term">terms</a> to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.</p>
+  </div>
+
+  <div class="normative section" id="node-objects">
+    <h3><span class="secno">B.2 </span>Node Objects</h3>
+
+    <p>A <dfn title="node-object" id="dfn-node-object">node object</dfn> represents zero or more properties of a
+      <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in the <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> serialized by the
+      <a class="tref internalDFN" title="json-ld-document" href="#dfn-json-ld-document">JSON-LD document</a>. A <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is a
+      <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> if it exists outside of a JSON-LD
+      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and:</p>
+
+    <ul>
+      <li>it does not contain the <code>@value</code>, <code>@list</code>,
+        or <code>@set</code> keywords, and</li>
+      <li>it is not the top-most <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> in the JSON-LD document
+        consisting of no other members than <code>@graph</code> and
+        <code>@context</code>.</li>
+    </ul>
+
+    <p>The <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> of a <a class="tref internalDFN" title="node" href="#dfn-node">node</a> in
+      a <a class="tref internalDFN" title="json-ld-graph" href="#dfn-json-ld-graph">JSON-LD graph</a> may be spread among different
+      <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> within a document. When
+      that happens, the keys of the different
+      <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a> need to be merged to create the
+      properties of the resulting <a class="tref internalDFN" title="node" href="#dfn-node">node</a>.</p>
+
+    <p>A <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>. All keys
+      which are not <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
+      <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>, <a class="tref internalDFN" title="term" href="#dfn-term">terms</a>
+      valid in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, or one of the following
+      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <em class="rfc2119" title="MUST">MUST</em> be ignored when processed:</p>
+
+    <ul>
+      <li><code>@context</code>,</li>
+      <li><code>@id</code>,</li>
+      <li><code>@graph</code>,</li>
+      <li><code>@type</code>,</li>
+      <li><code>@reverse</code>, or</li>
+      <li><code>@index</code></li>
+    </ul>
+
+    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@context</code>
+      key, its value <em class="rfc2119" title="MUST">MUST</em> be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+      a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a>, or
+      an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> composed of any of these.</p>
+
+    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@id</code> key,
+      its value <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+      or a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> (including
+      <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>).
+      See <a class="sectionRef sec-ref" href="#node-identifiers">section 5.3 Node Identifiers</a>,
+      <a class="sectionRef sec-ref" href="#compact-iris">section 6.3 Compact IRIs</a>, and
+      <a class="sectionRef sec-ref" href="#identifying-blank-nodes">section 6.14 Identifying Blank Nodes</a> for further discussion on
+      <code>@id</code> values.</p>
+
+    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@graph</code>
+      key, its value <em class="rfc2119" title="MUST">MUST</em> be
+      a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> or
+      an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a>.
+      If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains an <code>@id</code> keyword,
+      its value is used as the label of a named graph.
+      See <a class="sectionRef sec-ref" href="#named-graphs">section 6.13 Named Graphs</a> for further discussion on
+      <code>@graph</code> values. As a special case, if a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
+      contains no keys other than <code>@graph</code> and <code>@context</code>, and the
+      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is the root of the JSON-LD document, the
+      <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> is not treated as a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>; this
+      is used as a way of defining <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node
+      definitions</a> that may not form a connected graph. This allows a
+      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> to be defined which is shared by all of the constituent
+      <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a>.</p>
+
+    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@type</code>
+      key, its value <em class="rfc2119" title="MUST">MUST</em> be either an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a
+      <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+      (including <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifiers</a>),
+      a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> defined in the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> expanding into an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or
+      an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of any of these.
+      See <a class="sectionRef sec-ref" href="#specifying-the-type">section 5.4 Specifying the Type</a> for further discussion on
+      <code>@type</code> values.</p>
+
+    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@reverse</code> key,
+      its value <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing members representing reverse
+      properties. Each value of such a reverse property <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+      a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>,
+      a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> or an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> containing a combination of these.</p>
+
+    <p>If the <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> contains the <code>@index</code> key,
+      its value <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="string" href="#dfn-string">string</a>. See
+      <a class="sectionRef sec-ref" href="#data-indexing">section 6.16 Data Indexing</a> for further discussion
+      on <code>@index</code> values.</p>
+
+    <p>Keys in a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> that are not
+      <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <em class="rfc2119" title="MAY">MAY</em> expand to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>
+      using the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>. The values associated with keys that expand
+      to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> <em class="rfc2119" title="MUST">MUST</em> be one of the following:</p>
+
+    <ul>
+      <li><a class="tref internalDFN" title="string" href="#dfn-string">string</a>,</li>
+      <li><a class="tref internalDFN" title="number" href="#dfn-number">number</a>,</li>
+      <li><a class="tref internalDFN" title="true" href="#dfn-true">true</a>,</li>
+      <li><a class="tref internalDFN" title="false" href="#dfn-false">false</a>,</li>
+      <li><a class="tref internalDFN" title="null" href="#dfn-null">null</a>,</li>
+      <li><a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>,</li>
+      <li><a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>,</li>
+      <li><a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>,</li>
+      <li><a class="tref internalDFN" title="set-object" href="#dfn-set-object">set object</a>,</li>
+      <li>an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more of the possibilities above,</li>
+      <li>a <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language map</a>, or </li>
+      <li>an <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a></li>
+    </ul>
+  </div>
+
+  <div class="normative section" id="value-objects">
+    <h3><span class="secno">B.3 </span>Value Objects</h3>
+
+    <p>A <dfn title="value-object" id="dfn-value-object">value object</dfn> is used to explicitly associate a type or a
+      language with a value to create a <a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed value</a> or a <a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged
+      string</a>.</p>
+
+    <p>A <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> containing the
+      <code>@value</code> key. It <em class="rfc2119" title="MAY">MAY</em> also contain a <code>@type</code>,
+      a <code>@language</code>, an <code>@index</code>, or an <code>@context</code> key but <em class="rfc2119" title="MUST NOT">MUST NOT</em> contain
+      both a <code>@type</code> and a <code>@language</code> key at the same time.
+      A <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em> contain any other keys that expand to an
+      <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>.</p>
+
+    <p>The value associated with the <code>@value</code> key <em class="rfc2119" title="MUST">MUST</em> be either a
+      <a class="tref internalDFN" title="string" href="#dfn-string">string</a>, a <a class="tref internalDFN" title="number" href="#dfn-number">number</a>, <a class="tref internalDFN" title="true" href="#dfn-true">true</a>,
+      <a class="tref internalDFN" title="false" href="#dfn-false">false</a> or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+    <p>The value associated with the <code>@type</code> key <em class="rfc2119" title="MUST">MUST</em> be a
+      <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+      an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="relative-iri" href="#dfn-relative-iri">relative <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+    <p>The value associated with the <code>@language</code> key <em class="rfc2119" title="MUST">MUST</em> have the
+      lexical form described in [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>], or be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+    <p>The value associated with the <code>@index</code> key <em class="rfc2119" title="MUST">MUST</em> be a
+      <a class="tref internalDFN" title="string" href="#dfn-string">string</a>.</p>
+
+    <p>See <a class="sectionRef sec-ref" href="#typed-values">section 6.4 Typed Values</a> and
+      <a class="sectionRef sec-ref" href="#string-internationalization">section 6.9 String Internationalization</a>
+      for more information on <a class="tref internalDFN" title="value-object" href="#dfn-value-object">value objects</a>.</p>
+  </div>
+
+  <div class="normative section" id="lists-and-sets">
+    <h3><span class="secno">B.4 </span>Lists and Sets</h3>
+
+    <p>A <a class="tref internalDFN" title="list" href="#dfn-list">list</a> represents an <em>ordered</em> set of values. A set
+      represents an <em>unordered</em> set of values. Unless otherwise specified,
+      <a class="tref internalDFN" title="array" href="#dfn-array">arrays</a> are unordered in JSON-LD. As such, the
+      <code>@set</code> keyword, when used in the body of a JSON-LD document,
+      represents just syntactic sugar which is optimized away when processing the document.
+      However, it is very helpful when used within the context of a document. Values
+      of terms associated with a <code>@set</code> or <code>@list</code> container
+      will always be represented in the form of an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> when a document
+      is processed—even if there is just a single value that would otherwise be optimized to
+      a non-array form in <a href="#compact-document-form">compact document form</a>.
+      This simplifies post-processing of the data as the data is always in a
+      deterministic form.</p>
+
+    <p>A <dfn title="list-object" id="dfn-list-object">list object</dfn> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that contains no
+      keys that expand to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> other
+      than <code>@list</code>, <code>@context</code>, and <code>@index</code>.</p>
+
+    <p>A <dfn title="set-object" id="dfn-set-object">set object</dfn> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> that contains no
+      keys that expand to an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a> other
+      than <code>@list</code>, <code>@context</code>, and <code>@index</code>.
+      Please note that the <code>@index</code> key will be ignored when being processed.</p>
+
+    <p>In both cases, the value associated with the keys <code>@list</code> and <code>@set</code>
+      <em class="rfc2119" title="MUST">MUST</em> be one of the following types:</p>
+    <ul>
+      <li><a class="tref internalDFN" title="string" href="#dfn-string">string</a>,</li>
+      <li><a class="tref internalDFN" title="number" href="#dfn-number">number</a>,</li>
+      <li><a class="tref internalDFN" title="true" href="#dfn-true">true</a>,</li>
+      <li><a class="tref internalDFN" title="false" href="#dfn-false">false</a>,</li>
+      <li><a class="tref internalDFN" title="null" href="#dfn-null">null</a>,</li>
+      <li><a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>,</li>
+      <li><a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>, or</li>
+      <li>an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more of the above possibilities</li>
+    </ul>
+
+    <p>See <a class="sectionRef sec-ref" href="#sets-and-lists">section 6.11 Sets and Lists</a> for further discussion on sets and lists.</p>
+  </div>
+
+  <div class="normative section" id="language-maps">
+    <h3><span class="secno">B.5 </span>Language Maps</h3>
+
+    <p>A <dfn title="language-map" id="dfn-language-map">language map</dfn> is used to associate a language with a value in a
+      way that allows easy programmatic access. A <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language map</a> may be
+      used as a term value within a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> if the term is defined
+      with <code>@container</code> set to <code>@language</code>. The keys of a
+      <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language map</a> <em class="rfc2119" title="MUST">MUST</em> be <a class="tref internalDFN" title="string" href="#dfn-string">strings</a> representing
+      [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>] language codes with and the values <em class="rfc2119" title="MUST">MUST</em> be any of the following types:</p>
+
+    <ul>
+      <li><a class="tref internalDFN" title="null" href="#dfn-null">null</a>,</li>
+      <li><a class="tref internalDFN" title="string" href="#dfn-string">string</a>, or</li>
+      <li>an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more of the above possibilities</li>
+    </ul>
+
+    <p>See <a class="sectionRef sec-ref" href="#string-internationalization">section 6.9 String Internationalization</a> for further discussion
+      on language maps.</p>
+  </div>
+
+  <div class="normative section" id="index-maps">
+    <h3><span class="secno">B.6 </span>Index Maps</h3>
+
+    <p>An <dfn title="index-map" id="dfn-index-map">index map</dfn> allows keys that have no semantic meaning,
+      but should be preserved regardless, to be used in JSON-LD documents.
+      An <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a> may
+      be used as a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> value within a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> if the
+      term is defined with <code>@container</code> set to <code>@index</code>.
+      The values of the members of an <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a> <em class="rfc2119" title="MUST">MUST</em> be one
+      of the following types:</p>
+
+    <ul>
+      <li><a class="tref internalDFN" title="string" href="#dfn-string">string</a>,</li>
+      <li><a class="tref internalDFN" title="number" href="#dfn-number">number</a>,</li>
+      <li><a class="tref internalDFN" title="true" href="#dfn-true">true</a>,</li>
+      <li><a class="tref internalDFN" title="false" href="#dfn-false">false</a>,</li>
+      <li><a class="tref internalDFN" title="null" href="#dfn-null">null</a>,</li>
+      <li><a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>,</li>
+      <li><a class="tref internalDFN" title="value-object" href="#dfn-value-object">value object</a>,</li>
+      <li><a class="tref internalDFN" title="list-object" href="#dfn-list-object">list object</a>,</li>
+      <li><a class="tref internalDFN" title="set-object" href="#dfn-set-object">set object</a>,</li>
+      <li>an <a class="tref internalDFN" title="array" href="#dfn-array">array</a> of zero or more of the above possibilities</li>
+    </ul>
+
+    <p>See <a class="sectionRef sec-ref" href="#data-indexing">section 6.16 Data Indexing</a> for further information on this topic.</p>
+  </div>
+
+<div class="normative section" id="context-definitions">
+  <h3><span class="secno">B.7 </span>Context Definitions</h3>
+
+  <p>A <dfn title="context-definition" id="dfn-context-definition">context definition</dfn> defines a <a class="tref internalDFN" title="local-context" href="#dfn-local-context">local context</a> in a
+    <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</p>
+
+  <p>A <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a> whose
+    keys <em class="rfc2119" title="MUST">MUST</em> either be <a class="tref internalDFN" title="term" href="#dfn-term">terms</a>,
+    <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact IRIs</a>, <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute IRIs</a>,
+    or the <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <code>@language</code>, <code>@base</code>,
+    and <code>@vocab</code>.</p>
+
+  <p>If the <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a> has a <code>@language</code> key,
+    its value <em class="rfc2119" title="MUST">MUST</em> have the lexical form described in [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>] or be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+  <p>If the <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a> has a <code>@base</code> key,
+    its value <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+  <div class="issue atrisk"><div class="issue-title"><span>Feature at Risk 1</span>: @base keyword</div><div class="atrisk">
+    <p class="atrisk-head">Note: This feature is
+      <a href="http://www.w3.org/2005/10/Process-20051014/tr#cfi">&quot;at risk&quot;</a> and may
+      be removed from this specification based on feedback. Please send feedback to
+      <a href="mailto:public-rdf-comments@w3.org">public-rdf-comments@w3.org</a>.
+      For the current status see
+      <a href="http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Features_at_Risk">features &quot;at risk&quot; in JSON-LD 1.0</a></p>
+    <p>This feature is at risk as the fact that a document may have multiple base
+      IRIs is potentially confusing for developers. It is also being discussed whether
+      relative IRIs are allowed as values of <code>@base</code> or whether the
+      empty string should be used to explicitly specify that there isn't a base <abbr title="Internationalized Resource Identifier">IRI</abbr>,
+      which could be used to ensure that relative IRIs remain relative when expanding.</p>
+  </div></div>
+
+  <p>If the <a class="tref internalDFN" title="context-definition" href="#dfn-context-definition">context definition</a> has a <code>@vocab</code> key,
+    its value <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+    a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>, or <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+  <p>The value of keys that are not <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <em class="rfc2119" title="MUST">MUST</em> be either an
+    <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>,
+    a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, a <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>, <a class="tref internalDFN" title="null" href="#dfn-null">null</a>,
+    or an <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a>.</p>
+
+  <p>An <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> is used to describe the mapping
+    between a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> and its expanded identifier, as well as other
+    properties of the value associated with the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> when it is
+    used as key in a <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>.</p>
+
+  <p>An <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="json-object" href="#dfn-json-object">JSON object</a>
+    composed of zero or more keys from <code>@id</code>, <code>@reverse</code>,
+    <code>@type</code>, <code>@language</code> or <code>@container</code>. An
+    <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> contain any other keys.</p>
+
+  <p>If an <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> has an <code>@reverse</code> member,
+    <code>@id</code>, <code>@type</code>, and <code>@language</code> are not allowed.
+    If an <code>@container</code> member exists, its value <em class="rfc2119" title="MUST">MUST</em> be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>
+    or <code>@index</code>.</p>
+
+  <p>If the term being defined is not a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a> or
+    <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a> and the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> does not have an
+    <code>@vocab</code> mapping, the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> <em class="rfc2119" title="MUST">MUST</em>
+    include the <code>@id</code> key.</p>
+
+  <p>If the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> contains the <code>@id</code>
+    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>, its value <em class="rfc2119" title="MUST">MUST</em> be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>,
+    a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, a <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, or a <a class="tref internalDFN" title="term" href="#dfn-term">term</a>.</p>
+
+  <p>If the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> contains the <code>@type</code>
+    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>, its value <em class="rfc2119" title="MUST">MUST</em> be an <a class="tref internalDFN" title="absolute-iri" href="#dfn-absolute-iri">absolute <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a
+    <a class="tref internalDFN" title="compact-iri" href="#dfn-compact-iri">compact <abbr title="Internationalized Resource Identifier">IRI</abbr></a>, a <a class="tref internalDFN" title="blank-node-identifier" href="#dfn-blank-node-identifier">blank node identifier</a>, a <a class="tref internalDFN" title="term" href="#dfn-term">term</a> or
+    the <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a>, <a class="tref internalDFN" title="null" href="#dfn-null">null</a>, or the one of the
+    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keywords</a> <code>@id</code> or <code>@vocab</code>.</p>
+
+  <p>If the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> contains the <code>@language</code> <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>,
+    its value <em class="rfc2119" title="MUST">MUST</em> have the lexical form described in [<cite><a class="bibref" href="#bib-BCP47">BCP47</a></cite>] or be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>.</p>
+
+  <p>If the <a class="tref internalDFN" title="expanded-term-definition" href="#dfn-expanded-term-definition">expanded term definition</a> contains the <code>@container</code>
+    <a class="tref internalDFN" title="keyword" href="#dfn-keyword">keyword</a>, its value <em class="rfc2119" title="MUST">MUST</em> be either <code>@list</code>, <code>@set</code>,
+    <code>@language</code>, <code>@index</code>, or be <a class="tref internalDFN" title="null" href="#dfn-null">null</a>. If the value
+    is <code>@language</code>, when the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is used outside of the
+    <code>@context</code>, the associated value <em class="rfc2119" title="MUST">MUST</em> be a <a class="tref internalDFN" title="language-map" href="#dfn-language-map">language map</a>.
+    If the value is <code>@index</code>, when the <a class="tref internalDFN" title="term" href="#dfn-term">term</a> is used outside of
+    the <code>@context</code>, the associated value <em class="rfc2119" title="MUST">MUST</em> be an
+    <a class="tref internalDFN" title="index-map" href="#dfn-index-map">index map</a>.</p>
+
+  <p><a class="tref internalDFN" title="term" href="#dfn-term">Terms</a> <em class="rfc2119" title="MUST NOT">MUST NOT</em> be used in a circular manner. That is,
+    the definition of a term cannot depend on the definition of another term if that other
+    term also depends on the first term.</p>
+
+  <p>See <a class="sectionRef sec-ref" href="#the-context">section 5.1 The Context</a> for further discussion on contexts.</p>
+</div>
+
+</div>
+
+<div class="appendix normative section" id="relationship-to-rdf">
+
+<!--OddPage-->
+<h2><span class="secno">C. </span>Relationship to RDF</h2>
+
+  <p>The RDF data model, as outlined in [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>], is an abstract syntax for
+    representing a directed graph of information. It is a subset of
+    <a class="tref internalDFN" title="json-ld-data-model" href="#dfn-json-ld-data-model">JSON-LD's data model</a> with a few
+    additional constraints. The differences between the two data models are:</p>
+
+  <ul>
+    <li>In JSON-LD <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph names</a> can be
+      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> or <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>
+      whereas in RDF graph names have to be <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.</li>
+    <li>In JSON-LD <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> can be
+      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> or <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>
+      whereas in RDF properties (predicates) have to be
+      <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>.</li>
+    <li>In JSON-LD lists are part of the data model whereas in RDF they are part of
+      a vocabulary, namely [<cite><a class="bibref" href="#bib-RDF-SCHEMA">RDF-SCHEMA</a></cite>].</li>
+    <li>RDF values are either typed <em>literals</em>
+      (<a class="tref internalDFN" title="typed-value" href="#dfn-typed-value">typed values</a>) or <em>language-tagged strings</em>
+      (<a class="tref internalDFN" title="language-tagged-string" href="#dfn-language-tagged-string">language-tagged strings</a>) whereas
+      JSON-LD also supports JSON's native data types, i.e., <a class="tref internalDFN" title="number" href="#dfn-number">number</a>,
+      <a class="tref internalDFN" title="string" href="#dfn-string">strings</a>, and the boolean values <a class="tref internalDFN" title="true" href="#dfn-true">true</a>
+      and <a class="tref internalDFN" title="false" href="#dfn-false">false</a>. The JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>]
+      defines the conversion rules between JSON's native data types and RDF's counterparts to
+      allow full round-tripping.</li>
+
+  </ul>
+
+  <p>Summarized these differences mean that JSON-LD is capable of serializing any RDF
+    graph or dataset and most, but not all, JSON-LD documents can be directly
+    transformed to RDF. It is possible to work around this restriction, when
+    converting JSON-LD to RDF, by converting <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>
+    used as <a class="tref internalDFN" title="graph-name" href="#dfn-graph-name">graph names</a> or
+    <a class="tref internalDFN" title="property" href="#dfn-property">properties</a> to <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a>,
+    minting new &quot;Skolem IRIs&quot; as per
+    <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">Replacing Blank Nodes with IRIs</a></cite>
+    of [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>]. A complete description of the algorithms to convert
+    from RDF to JSON-LD and from JSON-LD to RDF is included in the JSON-LD
+    Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>].</p>
+
+  <p>Even though JSON-LD serializes RDF datasets, it can also be used as a RDF graph source.
+    In that case, a consumer <em class="rfc2119" title="MUST">MUST</em> only use the default graph and ignore all named graphs.
+    This allows servers to expose data in, e.g., both Turtle and JSON-LD using content
+    negotiation.</p>
+
+  <div class="note"><div class="note-title"><span>Note</span></div><p class="">Publishers supporting both dataset and graph syntaxes have to ensure that
+    the primary data is stored in the default graph to enable consumers that do not support
+    datasets to process the information.</p></div>
+
+  <div class="informative section" id="transformation-from-json-ld-to-rdf">
+    <h3><span class="secno">C.1 </span>Transformation from JSON-LD to RDF</h3><p><em>This section is non-normative.</em></p>
+
+    <p>The process of turning a JSON-LD document depends on executing the
+      algorithms defined in
+      <cite><a href="../json-ld-api/#rdf-conversion-algorithms">RDF Conversion Algorithms</a></cite>
+      in the JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>].
+      It is beyond the scope of this document to detail these algorithms any further,
+      but a summary of the necessary operations is provided to illustrate the process.</p>
+
+    <p>The procedure involves the following steps:</p>
+
+    <ol>
+      <li>Expand the JSON-LD document, removing any context; this ensures
+        that properties, types, and values are given their full representation
+        as <a class="tref internalDFN" title="iri" href="#dfn-iri">IRIs</a> and expanded values. Expansion
+        is discussed further in <a class="sectionRef sec-ref" href="#expanded-document-form">section 6.17 Expanded Document Form</a>.</li>
+      <li>Flatten the document, which turns the document into an array of
+        <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node objects</a>. Flattening is discussed
+        further in <a class="sectionRef sec-ref" href="#flattened-document-form">section 6.19 Flattened Document Form</a>.</li>
+      <li>Turn each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> into a series of
+        <a class="tref externalDFN" title="rdf-triples" href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple">RDF triples</a>.</li>
+    </ol>
+
+    <p>For example, consider the following JSON-LD document in compact form:</p>
+
+    <div class="example"><div class="example-title"><span>Example 63</span>: Sample JSON-LD document</div><pre class="example">{
+  &quot;@context&quot;: {
+    &quot;name&quot;: &quot;http://xmlns.com/foaf/0.1/name&quot;,
+    &quot;knows&quot;: &quot;http://xmlns.com/foaf/0.1/knows&quot;
+  },
+  &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+  &quot;name&quot;: &quot;Markus Lanthaler&quot;,
+  &quot;knows&quot;: [
+    {
+      &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
+      &quot;name&quot;: &quot;Manu Sporny&quot;
+    },
+    {
+      &quot;name&quot;: &quot;Dave Longley&quot;
+    }
+  ]
+}</pre></div>
+
+    <p>Running the JSON-LD Expansion and Flattening algorithms against the
+      JSON-LD input document in the example above would result in the
+      following output:</p>
+
+    <div class="example"><div class="example-title"><span>Example 64</span>: Flattened and expanded form for the previous example</div><pre class="example">[
+  {
+    &quot;@id&quot;: &quot;_:b0&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Dave Longley&quot;
+  },
+  {
+    &quot;@id&quot;: &quot;http://manu.sporny.org/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Manu Sporny&quot;
+  },
+  {
+    &quot;@id&quot;: &quot;http://me.markus-lanthaler.com/&quot;,
+    &quot;http://xmlns.com/foaf/0.1/name&quot;: &quot;Markus Lanthaler&quot;,
+    &quot;http://xmlns.com/foaf/0.1/knows&quot;: [
+      { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; },
+      { &quot;@id&quot;: &quot;_:b0&quot; }
+    ]
+  }
+]</pre></div>
+
+    <p>Transforming this to RDF now is a straightforward process of turning
+      each <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a> into one or more RDF triples. This can be
+      expressed in Turtle as follows:</p>
+
+    <div class="example"><div class="example-title"><span>Example 65</span>: Turtle representation of expanded/flattend document</div><pre class="example">_:b0 &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Dave Longley&quot; .
+
+&lt;http://manu.sporny.org/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Manu Sporny&quot; .
+
+&lt;http://me.markus-lanthaler.com/&gt; &lt;http://xmlns.com/foaf/0.1/name&gt; &quot;Markus Lanthaler&quot; ;
+    &lt;http://xmlns.com/foaf/0.1/knows&gt; &lt;http://manu.sporny.org/&gt;, _:b0 .</pre></div>
+
+    <p>The process of turning RDF into JSON-LD can be thought of as the
+      inverse of this last step, creating an expanded JSON-LD document closely
+      matching the triples from RDF, using a single <a class="tref internalDFN" title="node-object" href="#dfn-node-object">node object</a>
+      for all triples having a common subject, and a single <a class="tref internalDFN" title="property" href="#dfn-property">property</a>
+      for those triples also having a common predicate.</p>
+  </div>
+</div>
+
+<div class="appendix informative section" id="relationship-to-other-linked-data-formats">
+
+<!--OddPage-->
+<h2><span class="secno">D. </span>Relationship to Other Linked Data Formats</h2><p><em>This section is non-normative.</em></p>
+
+  <p>The JSON-LD examples below demonstrate how JSON-LD can be used to
+    express semantic data marked up in other linked data formats such as Turtle,
+    RDFa, Microformats, and Microdata. These sections are merely provided as
+    evidence that JSON-LD is very flexible in what it can express across different
+    <a class="tref internalDFN" title="linked-data" href="#dfn-linked-data">Linked Data</a> approaches.</p>
+
+  <div class="informative section" id="turtle">
+    <h3><span class="secno">D.1 </span>Turtle</h3><p><em>This section is non-normative.</em></p>
+
+    <p>The following are examples of converting RDF expressed in Turtle [<cite><a class="bibref" href="#bib-TURTLE">TURTLE</a></cite>]
+      into JSON-LD.</p>
+
+    <div class="section">
+      <h4 id="prefix-definitions">Prefix definitions</h4><p><em>This section is non-normative.</em></p>
+
+      <p>The JSON-LD context has direct equivalents for the Turtle
+        <code>@prefix</code> declaration:</p>
+
+      <div class="example"><div class="example-title"><span>Example 66</span>: A set of statements serialized in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+
+&lt;http://manu.sporny.org/i/public&gt; a foaf:Person;
+  foaf:name &quot;Manu Sporny&quot;;
+  foaf:homepage &lt;http://manu.sporny.org/&gt; .</pre></div>
+
+      <div class="example"><div class="example-title"><span>Example 67</span>: The same set of statements serialized in JSON-LD</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+  },
+  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
+  &quot;foaf:homepage&quot;: { &quot;@id&quot;: &quot;http://manu.sporny.org/&quot; }
+}</pre></div>
+    </div>
+
+    <div class="section">
+      <h4 id="embedding-1">Embedding</h4>
+
+      <p>Both Turtle and JSON-LD allow embedding, although Turtle only allows embedding of
+        <a class="tref internalDFN" title="blank-node" href="#dfn-blank-node">blank nodes</a>.</p>
+
+      <div class="example"><div class="example-title"><span>Example 68</span>: Embedding in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+
+&lt;http://manu.sporny.org/i/public&gt;
+  a foaf:Person;
+  foaf:name &quot;Manu Sporny&quot;;
+  foaf:knows [ a foaf:Person; foaf:name &quot;Gregg Kellogg&quot; ] .</pre></div>
+
+      <div class="example"><div class="example-title"><span>Example 69</span>: Same embedding example in JSON-LD</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+  },
+  &quot;@id&quot;: &quot;http://manu.sporny.org/i/public&quot;,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Manu Sporny&quot;,
+  &quot;foaf:knows&quot;:
+  {
+    &quot;@type&quot;: &quot;foaf:Person&quot;,
+    &quot;foaf:name&quot;: &quot;Gregg Kellogg&quot;
+  }
+}</pre></div>
+    </div>
+
+    <div class="section">
+      <h4 id="conversion-of-native-data-types">Conversion of native data types</h4>
+
+      <p>In JSON-LD numbers and boolean values are native data types. While Turtle
+        has a shorthand syntax to express such values, RDF's abstract syntax requires
+        that numbers and boolean values are represented as typed literals. Thus,
+        to allow full round-tripping, the JSON-LD Processing Algorithms and API specification [<cite><a class="bibref" href="#bib-JSON-LD-API">JSON-LD-API</a></cite>]
+        defines conversion rules between JSON-LD's native data types and RDF's
+        counterparts. <a class="tref internalDFN" title="number" href="#dfn-number">Numbers</a> without fractions are
+        converted to <code>xsd:integer</code>-typed literals, numbers with fractions
+        to <code>xsd:double</code>-typed literals and the two boolean values
+        <a class="tref internalDFN" title="true" href="#dfn-true">true</a> and <a class="tref internalDFN" title="false" href="#dfn-false">false</a> to a <code>xsd:boolean</code>-typed
+        literal. All typed literals are in canonical lexical form.</p>
+
+      <div class="example"><div class="example-title"><span>Example 70</span>: JSON-LD using native data types for numbers and boolean values</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;ex&quot;: &quot;http://example.com/vocab#&quot;
+  },
+  &quot;@id&quot;: &quot;http://example.com/&quot;,
+  &quot;ex:numbers&quot;: [ 14, 2.78 ],
+  &quot;ex:booleans&quot;: [ true, false ]
+}</pre></div>
+
+      <div class="example"><div class="example-title"><span>Example 71</span>: Same example in Turtle using typed literals</div><pre class="example">@prefix ex: &lt;http://example.com/vocab#&gt; .
+@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
+
+&lt;http://example.com/&gt;
+  ex:numbers &quot;14&quot;^^xsd:integer, &quot;2.78E0&quot;^^xsd:double ;
+  ex:booleans &quot;true&quot;^^xsd:boolean, &quot;false&quot;^^xsd:boolean .</pre></div>
+
+    </div>
+
+    <div class="section">
+      <h4 id="lists">Lists</h4>
+      <p>Both JSON-LD and Turtle can represent sequential lists of values.</p>
+
+      <div class="example"><div class="example-title"><span>Example 72</span>: A list of values in Turtle</div><pre class="example">@prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt; .
+
+&lt;http://example.org/people#joebob&gt; a foaf:Person;
+  foaf:name &quot;Joe Bob&quot;;
+  foaf:nick ( &quot;joe&quot; &quot;bob&quot; &quot;jaybee&quot; ) .</pre></div>
+
+      <div class="example"><div class="example-title"><span>Example 73</span>: Same example with a list of values in JSON-LD</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+  },
+  &quot;@id&quot;: &quot;http://example.org/people#joebob&quot;,
+  &quot;@type&quot;: &quot;foaf:Person&quot;,
+  &quot;foaf:name&quot;: &quot;Joe Bob&quot;,
+  &quot;foaf:nick&quot;:
+  {
+    &quot;@list&quot;: [ &quot;joe&quot;, &quot;bob&quot;, &quot;jaybee&quot; ]
+  }
+}</pre></div>
+    </div>
+  </div>
+
+  <div class="informative section" id="rdfa">
+    <h3><span class="secno">D.2 </span>RDFa</h3><p><em>This section is non-normative.</em></p>
+
+    <p>The following example describes three people with their respective names and
+      homepages in RDFa [<cite><a class="bibref" href="#bib-RDFA-CORE">RDFA-CORE</a></cite>].</p>
+
+    <div class="example"><div class="example-title"><span>Example 74</span>: RDFa fragment that describes three people</div><pre class="example">&lt;div <span class="diff">prefix=&quot;foaf: http://xmlns.com/foaf/0.1/&quot;</span>&gt;
+   &lt;ul&gt;
+      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
+        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/bob/&quot; property=&quot;foaf:name&quot;</span>&gt;Bob&lt;/a&gt;
+      &lt;/li&gt;
+      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
+        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/eve/&quot; property=&quot;foaf:name&quot;</span>&gt;Eve&lt;/a&gt;
+      &lt;/li&gt;
+      &lt;li <span class="diff">typeof=&quot;foaf:Person&quot;</span>&gt;
+        &lt;a <span class="diff">rel=&quot;foaf:homepage&quot; href=&quot;http://example.com/manu/&quot; property=&quot;foaf:name&quot;</span>&gt;Manu&lt;/a&gt;
+      &lt;/li&gt;
+   &lt;/ul&gt;
+&lt;/div&gt;</pre></div>
+
+    <p>An example JSON-LD implementation using a single <a class="tref internalDFN" title="context" href="#dfn-context">context</a> is
+      described below.</p>
+
+    <div class="example"><div class="example-title"><span>Example 75</span>: Same description in JSON-LD (context shared among node objects)</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;foaf&quot;: &quot;http://xmlns.com/foaf/0.1/&quot;
+  },
+  &quot;@graph&quot;:
+  [
+    {
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;foaf:homepage&quot;: &quot;http://example.com/bob/&quot;,
+      &quot;foaf:name&quot;: &quot;Bob&quot;
+    },
+    {
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;foaf:homepage&quot;: &quot;http://example.com/eve/&quot;,
+      &quot;foaf:name&quot;: &quot;Eve&quot;
+    },
+    {
+      &quot;@type&quot;: &quot;foaf:Person&quot;,
+      &quot;foaf:homepage&quot;: &quot;http://example.com/manu/&quot;,
+      &quot;foaf:name&quot;: &quot;Manu&quot;
+    }
+  ]
+}</pre></div>
+  </div>
+
+  <div class="informative section" id="microformats">
+    <h3><span class="secno">D.3 </span>Microformats</h3><p><em>This section is non-normative.</em></p>
+
+    <p>The following example uses a simple Microformats hCard example to express
+      how Microformats [<cite><a class="bibref" href="#bib-MICROFORMATS">MICROFORMATS</a></cite>] are represented in JSON-LD.</p>
+
+    <div class="example"><div class="example-title"><span>Example 76</span>: HTML fragment with a simple Microformats hCard</div><pre class="example">&lt;div class=&quot;vcard&quot;&gt;
+ &lt;a class=&quot;url fn&quot; href=&quot;http://tantek.com/&quot;&gt;Tantek Çelik&lt;/a&gt;
+&lt;/div&gt;</pre></div>
+
+    <p>The representation of the hCard expresses the Microformat terms in the
+      <a class="tref internalDFN" title="context" href="#dfn-context">context</a> and uses them directly for the <code>url</code> and <code>fn</code>
+      properties. Also note that the Microformat to JSON-LD processor has
+      generated the proper URL type for <code>http://tantek.com/</code>.</p>
+
+    <div class="example"><div class="example-title"><span>Example 77</span>: Same hCard representation in JSON-LD</div><pre class="example">{
+  &quot;@context&quot;:
+  {
+    &quot;vcard&quot;: &quot;http://microformats.org/profile/hcard#vcard&quot;,
+    &quot;url&quot;:
+    {
+      &quot;@id&quot;: &quot;http://microformats.org/profile/hcard#url&quot;,
+      &quot;@type&quot;: &quot;@id&quot;
+    },
+    &quot;fn&quot;: &quot;http://microformats.org/profile/hcard#fn&quot;
+  },
+  &quot;@type&quot;: &quot;vcard&quot;,
+  &quot;url&quot;: &quot;http://tantek.com/&quot;,
+  &quot;fn&quot;: &quot;Tantek Çelik&quot;
+}</pre></div>
+  </div>
+
+  <div class="informative section" id="microdata">
+    <h3><span class="secno">D.4 </span>Microdata</h3><p><em>This section is non-normative.</em></p>
+
+    <p>The HTML Microdata [<cite><a class="bibref" href="#bib-MICRODATA">MICRODATA</a></cite>] example below expresses book information as
+      a Microdata Work item.</p>
+
+    <div class="example"><div class="example-title"><span>Example 78</span>: HTML fragments that describes a book using microdata</div><pre class="example">&lt;dl itemscope
+    itemtype=&quot;http://purl.org/vocab/frbr/core#Work&quot;
+    itemid=&quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;&gt;
+ &lt;dt&gt;Title&lt;/dt&gt;
+ &lt;dd&gt;&lt;cite itemprop=&quot;http://purl.org/dc/terms/title&quot;&gt;Just a Geek&lt;/cite&gt;&lt;/dd&gt;
+ &lt;dt&gt;By&lt;/dt&gt;
+ &lt;dd&gt;&lt;span itemprop=&quot;http://purl.org/dc/terms/creator&quot;&gt;Wil Wheaton&lt;/span&gt;&lt;/dd&gt;
+ &lt;dt&gt;Format&lt;/dt&gt;
+ &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
+     itemscope
+     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
+     itemid=&quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;&gt;
+  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/BOOK&quot;&gt;
+  Print
+ &lt;/dd&gt;
+ &lt;dd itemprop=&quot;http://purl.org/vocab/frbr/core#realization&quot;
+     itemscope
+     itemtype=&quot;http://purl.org/vocab/frbr/core#Expression&quot;
+     itemid=&quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;&gt;
+  &lt;link itemprop=&quot;http://purl.org/dc/terms/type&quot; href=&quot;http://purl.oreilly.com/product-types/EBOOK&quot;&gt;
+  Ebook
+ &lt;/dd&gt;
+&lt;/dl&gt;</pre></div>
+
+    <p>Note that the JSON-LD representation of the Microdata information stays
+      true to the desires of the Microdata community to avoid contexts and
+      instead refer to items by their full <a class="tref internalDFN" title="iri" href="#dfn-iri"><abbr title="Internationalized Resource Identifier">IRI</abbr></a>.</p>
+
+    <div class="example"><div class="example-title"><span>Example 79</span>: Same book description in JSON-LD (avoiding contexts)</div><pre class="example">[
+  {
+    &quot;@id&quot;: &quot;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&quot;,
+    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Work&quot;,
+    &quot;http://purl.org/dc/terms/title&quot;: &quot;Just a Geek&quot;,
+    &quot;http://purl.org/dc/terms/creator&quot;: &quot;Whil Wheaton&quot;,
+    &quot;http://purl.org/vocab/frbr/core#realization&quot;:
+    [
+      &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
+      &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;
+    ]
+  },
+  {
+    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596007683.BOOK&quot;,
+    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
+    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/BOOK&quot;
+  },
+  {
+    &quot;@id&quot;: &quot;http://purl.oreilly.com/products/9780596802189.EBOOK&quot;,
+    &quot;@type&quot;: &quot;http://purl.org/vocab/frbr/core#Expression&quot;,
+    &quot;http://purl.org/dc/terms/type&quot;: &quot;http://purl.oreilly.com/product-types/EBOOK&quot;
+  }
+]</pre></div>
+  </div>
+</div>
+
+<div class="appendix normative section" id="iana-considerations">
+
+<!--OddPage-->
+<h2><span class="secno">E. </span>IANA Considerations</h2>
+
+  <p>This section is included for community review and will be submitted to the
+    Internet Engineering Steering Group (IESG) as part of the Last Call announcement
+    for this specification.</p>
+
+  <h2 id="application-ld-json">application/ld+json</h2>
+  <dl>
+    <dt>Type name:</dt>
+    <dd>application</dd>
+    <dt>Subtype name:</dt>
+    <dd>ld+json</dd>
+    <dt>Required parameters:</dt>
+    <dd>None</dd>
+    <dt>Optional parameters:</dt>
+    <dd>
+      <dl>
+        <dt><code>profile</code></dt>
+        <dd>
+          <p>A a non-empty list of space-separated URI-encoded URIs identifying specific
+            constraints or conventions that apply to a JSON-LD document according [<cite><a class="bibref" href="#bib-RFC6906">RFC6906</a></cite>].
+            A profile does not change the semantics of the resource representation
+            when processed without profile knowledge, so that clients both with
+            and without knowledge of a profiled resource can safely use the same
+            representation. The <code>profile</code> parameter may be used by
+            clients to express their preferences in the content negotiation process.
+            It is <em class="rfc2119" title="RECOMMENDED">RECOMMENDED</em> that profile URIs are dereferenceable and provide
+            useful documentation at that URI. For more information and background
+            please refer to [<cite><a class="bibref" href="#bib-RFC6906">RFC6906</a></cite>].</p>
+          <p>This specification defines three values for the <code>profile</code> parameter.
+            To request or specify Expanded JSON-LD document form, the URI
+            <code>http://www.w3.org/ns/json-ld#expanded</code> <em class="rfc2119" title="SHOULD">SHOULD</em> be used.
+            To request or specify Compacted JSON-LD document form, the URI
+            <code>http://www.w3.org/ns/json-ld#compacted</code> <em class="rfc2119" title="SHOULD">SHOULD</em> be used.
+            To request or specify Flattened JSON-LD document form, the URI
+            <code>http://www.w3.org/ns/json-ld#flattened</code> <em class="rfc2119" title="SHOULD">SHOULD</em> be used.
+            Please note that, according [<cite><a class="bibref" href="#bib-HTTP11">HTTP11</a></cite>], the value of the <code>profile</code>
+            parameter has to be enclosed in quotes (<code>&quot;</code>) because it contains
+            special characters and, if multiple profiles are combined, whitespace.</p>
+          <p>When processing the &quot;profile&quot; media type parameter, it is important to
+            apply URI-decoding before processing the URI (such as comparing it to
+            known profiles).
+        </p></dd>
+      </dl>
+    </dd>
+    <dt>Encoding considerations:</dt>
+    <dd>See RFC 6839, section 3.1.</dd>
+    <dt>Security considerations:</dt>
+    <dd>Since JSON-LD is intended to be a pure data exchange format for
+      directed graphs, the serialization <em class="rfc2119" title="SHOULD NOT">SHOULD NOT</em> be passed through a
+      code execution mechanism such as JavaScript's <code>eval()</code>
+      function to be parsed.<br />
+      JSON-LD contexts that are loaded from the Web over non-secure connections,
+      such as HTTP, run the risk of modifying the JSON-LD
+      <a class="tref internalDFN" title="active-context" href="#dfn-active-context">active context</a> in a way that could compromise security. It
+      is advised that any application that depends on a remote context for mission
+      critical purposes vet and cache the remote context before allowing the
+      system to use it.<br />
+      Given that JSON-LD allows the substitution of long IRIs with short terms,
+      JSON-LD documents may expand considerably when processed and, in the worst case,
+      the resulting data might consume all of the recipient's resources. Applications
+      should treat any data with due skepticism.
+    </dd>
+    <dt>Interoperability considerations:</dt>
+    <dd>Not Applicable</dd>
+    <dt>Published specification:</dt>
+    <dd>http://www.w3.org/TR/json-ld</dd>
+    <dt>Applications that use this media type:</dt>
+    <dd>Any programming environment that requires the exchange of
+      directed graphs. Implementations of JSON-LD have been created for
+      JavaScript, Python, Ruby, PHP, and C++.
+    </dd>
+    <dt>Additional information:</dt>
+    <dd>
+      <dl>
+        <dt>Magic number(s):</dt>
+        <dd>Not Applicable</dd>
+        <dt>File extension(s):</dt>
+        <dd>.jsonld</dd>
+        <dt>Macintosh file type code(s):</dt>
+        <dd>TEXT</dd>
+      </dl>
+    </dd>
+    <dt>Person &amp; email address to contact for further information:</dt>
+    <dd>Manu Sporny &lt;msporny@digitalbazaar.com&gt;</dd>
+    <dt>Intended usage:</dt>
+    <dd>Common</dd>
+    <dt>Restrictions on usage:</dt>
+    <dd>None</dd>
+    <dt>Author(s):</dt>
+    <dd>Manu Sporny, Dave Longley, Gregg Kellogg, Markus Lanthaler, Niklas Lindström</dd>
+    <dt>Change controller:</dt>
+    <dd><abbr title="World Wide Web Consortium">W3C</abbr></dd>
+  </dl>
+
+  <p>Fragment identifiers used with <a href="#application-ld-json">application/ld+json</a>
+    are treated as in RDF syntaxes, as per
+    <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-fragID">RDF 1.1 Concepts and Abstract Syntax</a></cite>
+    [<cite><a class="bibref" href="#bib-RDF11-CONCEPTS">RDF11-CONCEPTS</a></cite>].</p>
+</div>
+
+<div class="appendix informative section" id="acknowledgements">
+
+<!--OddPage-->
+<h2><span class="secno">F. </span>Acknowledgements</h2><p><em>This section is non-normative.</em></p>
+
+  <p>The authors would like to extend a deep appreciation and the most sincere
+    thanks to Mark Birbeck, who contributed foundational concepts
+    to JSON-LD via his work on RDFj. JSON-LD uses a number of core concepts
+    introduced in RDFj, such as the context as a mechanism to provide an
+    environment for interpreting JSON data. Mark had also been very involved in
+    the work on RDFa as well. RDFj built upon that work. JSON-LD exists
+    because of the work and ideas he started nearly a decade ago in 2004.</p>
+
+  <p>A large amount of thanks goes out to the JSON-LD Community Group
+    participants who worked through many of the technical issues on the mailing
+    list and the weekly telecons - of special mention are François Daoust,
+    Stéphane Corlosquet, Lin Clark, and Zdenko 'Denny' Vrandečić.</p>
+
+  <p>The work of David I. Lehn and Mike Johnson are appreciated for
+    reviewing, and performing several early implementations
+    of the specification. Thanks also to Ian Davis for this work on RDF/JSON.</p>
+
+  <p>Thanks to the following individuals, in order of their first name, for
+    their input on the specification: Adrian Walker, Alexandre Passant,
+    Andy Seaborne, Ben Adida, Blaine Cook, Bradley Allen, Brian Peterson,
+    Bryan Thompson, Conal Tuohy, Dan Brickley, Danny Ayers, Daniel Leja,
+    Dave Reynolds, David I. Lehn, David Wood, Dean Landolt, Ed Summers, elf Pavlik,
+    Eric Prud'hommeaux, Erik Wilde, Fabian Christ, Jon A. Frost, Gavin Carothers,
+    Glenn McDonald, Guus Schreiber, Henri Bergius, Jose María Alvarez Rodríguez,
+    Ivan Herman, Jack Moffitt, Josh Mandel, KANZAKI Masahide, Kingsley Idehen,
+    Kuno Woudt, Larry Garfield, Mark Baker, Mark MacGillivray, Marko Rodriguez,
+    Melvin Carvalho, Nathan Rixham, Olivier Grisel, Paolo Ciccarese, Pat Hayes,
+    Patrick Logan, Paul Kuykendall, Pelle Braendgaard, Peter Williams, Pierre-Antoine Champin,
+    Richard Cyganiak, Roy T. Fielding, Sandro Hawke, Srecko Joksimovic,
+    Stephane Fellah, Steve Harris, Ted Thibodeau Jr., Thomas Steiner, Tim Bray,
+    Tom Morris, Tristan King, Sergio Fernández, Werner Wilms, and William Waites.</p>
+</div>
+
+
+
+<div id="references" class="appendix section" typeof="bibo:Chapter" resource="#references" rel="bibo:chapter">
+<!--OddPage-->
+<h2><span class="secno">G. </span>References</h2><div class="section" id="normative-references" typeof="bibo:Chapter" resource="#normative-references" rel="bibo:chapter"><h3><span class="secno">G.1 </span>Normative references</h3><dl class="bibliography" about=""><dt id="bib-BCP47">[BCP47]</dt><dd rel="dcterms:requires">A. Phillips; M. Davis. <a href="http://tools.ietf.org/html/bcp47"><cite>Tags for Identifying Languages</cite></a>. September 2009. IETF Best Current Practice. URL: <a href="http://tools.ietf.org/html/bcp47">http://tools.ietf.org/html/bcp47</a>
+</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd rel="dcterms:requires">S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119.  URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
+</dd><dt id="bib-RFC3987">[RFC3987]</dt><dd rel="dcterms:requires">M. Dürst; M. Suignard. <a href="http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized Resource Identifiers (IRIs) (RFC 3987)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3987.txt">http://www.ietf.org/rfc/rfc3987.txt</a>
+</dd><dt id="bib-RFC4627">[RFC4627]</dt><dd rel="dcterms:requires">D. Crockford. <a href="http://www.ietf.org/rfc/rfc4627.txt"><cite>The application/json Media Type for JavaScript Object Notation (JSON) (RFC 4627)</cite></a>. July 2006. RFC. URL: <a href="http://www.ietf.org/rfc/rfc4627.txt">http://www.ietf.org/rfc/rfc4627.txt</a>
+</dd><dt id="bib-RFC5988">[RFC5988]</dt><dd rel="dcterms:requires">M. Nottingham. <cite><a href="http://www.ietf.org/rfc/rfc5988.txt">Web Linking</a>.</cite> October 2010. Internet RFC 5988. URL: <a href="http://www.ietf.org/rfc/rfc5988.txt">http://www.ietf.org/rfc/rfc5988.txt</a>
+</dd></dl></div><div class="section" id="informative-references" typeof="bibo:Chapter" resource="#informative-references" rel="bibo:chapter"><h3><span class="secno">G.2 </span>Informative references</h3><dl class="bibliography" about=""><dt id="bib-HTTP11">[HTTP11]</dt><dd rel="dcterms:references">R. Fielding et al. <a href="http://www.ietf.org/rfc/rfc2616.txt"><cite>Hypertext Transfer Protocol - HTTP/1.1</cite></a>. June 1999. RFC 2616. URL: <a href="http://www.ietf.org/rfc/rfc2616.txt">http://www.ietf.org/rfc/rfc2616.txt</a>
+</dd><dt id="bib-JSON-LD-API">[JSON-LD-API]</dt><dd rel="dcterms:references">Markus Lanthaler, Gregg Kellogg, Manu Sporny, Editors. <cite><a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/">JSON-LD 1.0 Processing Algorithms and API</a>.</cite> W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2013/WD-json-ld-api-20130411/">http://www.w3.org/TR/2013/WD-json-ld-api-20130411/</a>. The latest edition is available at <a href="http://www.w3.org/TR/json-ld-api/">http://www.w3.org/TR/json-ld-api/</a>
+</dd><dt id="bib-JSON-LD-TESTS">[JSON-LD-TESTS]</dt><dd rel="dcterms:references"><cite><a href="http://www.w3.org/2013/json-ld-tests/">JSON-LD 1.0 Test Suite</a></cite>. W3C Test Suite (work in progress). URL: <a href="http://www.w3.org/2013/json-ld-tests/">http://www.w3.org/2013/json-ld-tests/</a>
+</dd><dt id="bib-MICRODATA">[MICRODATA]</dt><dd rel="dcterms:references">Ian Hickson, Editor. <cite><a href="http://www.w3.org/TR/2012/WD-microdata-20121025/">HTML Microdata</a>.</cite> 25 October 2012. W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2012/WD-microdata-20121025/">http://www.w3.org/TR/2012/WD-microdata-20121025/</a>. The latest edition is available at <a href="http://www.w3.org/TR/microdata/">http://www.w3.org/TR/microdata/</a>
+</dd><dt id="bib-MICROFORMATS">[MICROFORMATS]</dt><dd rel="dcterms:references"><a href="http://microformats.org"><cite>Microformats</cite></a>. URL: <a href="http://microformats.org">http://microformats.org</a>
+</dd><dt id="bib-RDF-SCHEMA">[RDF-SCHEMA]</dt><dd rel="dcterms:references">Dan Brickley; Ramanathan V. Guha. <a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210"><cite>RDF Vocabulary Description Language 1.0: RDF Schema</cite></a>. 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210">http://www.w3.org/TR/2004/REC-rdf-schema-20040210</a>
+</dd><dt id="bib-RDF11-CONCEPTS">[RDF11-CONCEPTS]</dt><dd rel="dcterms:references">Richard Cyganiak, David Wood, Editors. <cite><a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">RDF 1.1 Concepts and Abstract Syntax.</a></cite> 15 January 2013. W3C Working Draft (work in progress). URL: <a href="http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/">http://www.w3.org/TR/2013/WD-rdf11-concepts-20130115/</a>. The latest edition is available at <a href="http://www.w3.org/TR/rdf11-concepts/">http://www.w3.org/TR/rdf11-concepts/</a>
+</dd><dt id="bib-RDFA-CORE">[RDFA-CORE]</dt><dd rel="dcterms:references">Shane McCarron et al. <a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/"><cite>RDFa Core 1.1: Syntax and processing rules for embedding RDF through attributes</cite></a>. 7 June 2012. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2012/REC-rdfa-core-20120607/">http://www.w3.org/TR/2012/REC-rdfa-core-20120607/</a>
+</dd><dt id="bib-RFC3986">[RFC3986]</dt><dd rel="dcterms:references">T. Berners-Lee; R. Fielding; L. Masinter. <a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource Identifier (URI): Generic Syntax (RFC 3986)</cite></a>. January 2005. RFC. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
+</dd><dt id="bib-RFC6906">[RFC6906]</dt><dd rel="dcterms:references">Erik Wilde. <cite><a href="http://www.ietf.org/rfc/rfc6906.txt">The 'profile' Link Relation Type</a>.</cite> March 2013. Internet RFC 6906. URL: <a href="http://www.ietf.org/rfc/rfc6906.txt">http://www.ietf.org/rfc/rfc6906.txt</a>
+</dd><dt id="bib-TURTLE">[TURTLE]</dt><dd rel="dcterms:references">Eric Prud'hommeaux, Gavin Carothers, Editors. <cite><a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">Turtle: Terse RDF Triple Language.</a></cite> 19 February 2013. W3C Candidate Recommendation (work in progress). URL: <a href="http://www.w3.org/TR/2013/CR-turtle-20130219/">http://www.w3.org/TR/2013/CR-turtle-20130219/</a>. The latest edition is available at <a href="http://www.w3.org/TR/turtle/">http://www.w3.org/TR/turtle/</a>
+</dd></dl></div></div></body></html>
Binary file spec/WD/json-ld/20130411/linked-data-graph.png has changed