Fix broken link to diff in latest editors draft.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/spec/ED/json-ld-syntax/20120318/diff-20120122.html Sun Mar 18 20:47:04 2012 +0800
@@ -0,0 +1,13538 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
+<html lang="en" dir="ltr">
+<head>
+<title>JSON-LD Syntax 1.0</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+<!--
+ === NOTA BENE ===
+ For the three scripts below, if your spec resides on dev.w3 you can check them
+ out in the same tree and use relative links so that they'll work offline,
+ -->
+
+
+<style>
+.diff { font-weight:bold; color:#0a3; }
+ol.algorithm.update { margin-left: 2em; }
+ol.algorithm.update>li { list-style-type: none; }
+ol.algorithm.update>li>span.list-number {
+ display:block;
+ float: left;
+ margin-left: -3.5em;
+}
+</style>
+<style type="text/css">
+/*****************************************************************
+ * ReSpec CSS
+ * Robin Berjon (robin at berjon dot com)
+ * v0.05 - 2009-07-31
+ *****************************************************************/
+
+
+/* --- 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;
+}
+
+code {
+ color: #ff4500;
+}
+
+
+/* --- 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 {
+ font-weight: bold;
+ color: #005a9c;
+}
+
+.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 {
+ color: #005a9c;
+}
+.idlMethName {
+ color: #ff4500;
+}
+.idlMethName a {
+ color: #ff4500;
+ border-bottom: 1px dotted #ff4500;
+ text-decoration: none;
+}
+
+/*.idlParam*/
+.idlParamType {
+ color: #005a9c;
+}
+.idlParamName {
+ font-style: italic;
+}
+
+.extAttr {
+ color: #666;
+}
+
+/*.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.fields, dl.dictionary-members {
+ margin-left: 2em;
+}
+
+.attributes dt, .methods dt, .constants dt, .fields dt, .dictionary-members dt {
+ font-weight: normal;
+}
+
+.attributes dt code, .methods dt code, .constants 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;
+}
+
+.attributes dd, .methods dd, .constants 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%;
+}
+
+/* --- TOC --- */
+.toc a {
+ text-decoration: none;
+}
+
+a .secno {
+ color: #000;
+}
+
+/* --- 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;
+}
+
+/* --- EXAMPLES --- */
+pre.example {
+ border-top: 1px solid #ff4500;
+ border-bottom: 1px solid #ff4500;
+ padding: 1em;
+ margin-top: 1em;
+}
+
+pre.example::before {
+ content: "Example";
+ display: block;
+ width: 150px;
+ background: #ff4500;
+ color: #fff;
+ font-family: initial;
+ padding: 3px;
+ font-weight: bold;
+ margin: -1em 0 1em -1em;
+}
+
+/* --- EDITORIAL NOTES --- */
+.issue {
+ padding: 1em;
+ margin: 1em 0em 0em;
+ border: 1px solid #f00;
+ background: #ffc;
+}
+
+.issue::before {
+ content: "Issue";
+ display: block;
+ width: 150px;
+ margin: -1.5em 0 0.5em 0;
+ font-weight: bold;
+ border: 1px solid #f00;
+ background: #fff;
+ padding: 3px 1em;
+}
+
+.note {
+ margin: 1em 0em 0em;
+ padding: 1em;
+ border: 2px solid #cff6d9;
+ background: #e2fff0;
+}
+
+.note::before {
+ content: "Note";
+ display: block;
+ width: 150px;
+ margin: -1.5em 0 0.5em 0;
+ font-weight: bold;
+ border: 1px solid #cff6d9;
+ background: #fff;
+ padding: 3px 1em;
+}
+
+/* --- Best Practices --- */
+div.practice {
+ border: solid #bebebe 1px;
+ margin: 2em 1em 1em 2em;
+}
+
+span.practicelab {
+ margin: 1.5em 0.5em 1em 1em;
+ font-weight: bold;
+ font-style: italic;
+}
+
+span.practicelab { background: #dfffff; }
+
+span.practicelab {
+ position: relative;
+ padding: 0 0.5em;
+ top: -1.5em;
+}
+
+p.practicedesc {
+ margin: 1.5em 0.5em 1em 1em;
+}
+
+@media screen {
+ p.practicedesc {
+ position: relative;
+ top: -2em;
+ padding: 0;
+ margin: 1.5em 0.5em -1em 1em;
+ }
+}
+
+/* --- SYNTAX HIGHLIGHTING --- */
+pre.sh_sourceCode {
+ background-color: white;
+ color: black;
+ font-style: normal;
+ font-weight: normal;
+}
+
+pre.sh_sourceCode .sh_keyword { color: #005a9c; font-weight: bold; } /* language keywords */
+pre.sh_sourceCode .sh_type { color: #666; } /* basic types */
+pre.sh_sourceCode .sh_usertype { color: teal; } /* user defined types */
+pre.sh_sourceCode .sh_string { color: red; font-family: monospace; } /* strings and chars */
+pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; } /* regular expressions */
+pre.sh_sourceCode .sh_specialchar { color: #ffc0cb; font-family: monospace; } /* e.g., \n, \t, \\ */
+pre.sh_sourceCode .sh_comment { color: #A52A2A; font-style: italic; } /* comments */
+pre.sh_sourceCode .sh_number { color: purple; } /* literal numbers */
+pre.sh_sourceCode .sh_preproc { color: #00008B; font-weight: bold; } /* e.g., #include, import */
+pre.sh_sourceCode .sh_symbol { color: blue; } /* e.g., *, + */
+pre.sh_sourceCode .sh_function { color: black; font-weight: bold; } /* function calls and declarations */
+pre.sh_sourceCode .sh_cbracket { color: red; } /* block brackets (e.g., {, }) */
+pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: #00FFFF; } /* TODO and FIXME */
+
+/* Predefined variables and functions (for instance glsl) */
+pre.sh_sourceCode .sh_predef_var { color: #00008B; }
+pre.sh_sourceCode .sh_predef_func { color: #00008B; font-weight: bold; }
+
+/* for OOP */
+pre.sh_sourceCode .sh_classname { color: teal; }
+
+/* line numbers (not yet implemented) */
+pre.sh_sourceCode .sh_linenum { display: none; }
+
+/* Internet related */
+pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
+
+/* for ChangeLog and Log files */
+pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
+pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: #00008B; font-weight: bold; }
+pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: #006400; }
+
+/* for Prolog, Perl... */
+pre.sh_sourceCode .sh_variable { color: #006400; }
+
+/* for LaTeX */
+pre.sh_sourceCode .sh_italics { color: #006400; font-style: italic; }
+pre.sh_sourceCode .sh_bold { color: #006400; font-weight: bold; }
+pre.sh_sourceCode .sh_underline { color: #006400; text-decoration: underline; }
+pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
+pre.sh_sourceCode .sh_argument { color: #006400; }
+pre.sh_sourceCode .sh_optionalargument { color: purple; }
+pre.sh_sourceCode .sh_math { color: orange; }
+pre.sh_sourceCode .sh_bibtex { color: blue; }
+
+/* for diffs */
+pre.sh_sourceCode .sh_oldfile { color: orange; }
+pre.sh_sourceCode .sh_newfile { color: #006400; }
+pre.sh_sourceCode .sh_difflines { color: blue; }
+
+/* for css */
+pre.sh_sourceCode .sh_selector { color: purple; }
+pre.sh_sourceCode .sh_property { color: blue; }
+pre.sh_sourceCode .sh_value { color: #006400; font-style: italic; }
+
+/* other */
+pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
+pre.sh_sourceCode .sh_paren { color: red; }
+pre.sh_sourceCode .sh_attribute { color: #006400; }
+
+</style><style type="text/css">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, ".") ") "; }
+
+</style><link charset="utf-8" type="text/css" rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/w3c-unofficial"><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 style="display: inherit;">
+<div class="head">
+<p>
+</p>
+<h1 class="title" id="title">
+JSON-LD
+Syntax
+1.0
+</h1>
+<h2 id="subtitle">
+A
+Context-based
+JSON
+Serialization
+for
+Linking
+Data
+</h2>
+<h2 id="unofficial-draft-18-march-2012">
+Unofficial
+Draft
+<del class="diff-old">22
+January
+</del>
+<ins class="diff-chg">18
+March
+</ins>
+2012
+</h2>
+<dl>
+<dt>
+Editors:
+</dt>
+<dd>
+<a href="http://manu.sporny.org/">
+Manu
+Sporny
+</a>,
+<a href="http://digitalbazaar.com/">
+Digital
+Bazaar
+</a>
+</dd>
+<dd>
+<a href="http://greggkellogg.net/">
+Gregg
+Kellogg
+</a>,
+<a href="http://kellogg-assoc.com/">
+Kellogg
+Associates
+</a>
+</dd>
+<dt>
+Authors:
+</dt>
+<dd>
+<a href="http://digitalbazaar.com/">
+Manu
+Sporny
+</a>,
+<a href="http://digitalbazaar.com/">
+Digital
+Bazaar
+</a>
+</dd>
+<dd>
+<a href="http://digitalbazaar.com/">
+Dave
+Longley
+</a>,
+<a href="http://digitalbazaar.com/">
+Digital
+Bazaar
+</a>
+</dd>
+<dd>
+<a href="http://greggkellogg.net/">
+Gregg
+Kellogg
+</a>,
+<a href="http://kellogg-assoc.com/">
+Kellogg
+Associates
+</a>
+</dd>
+<dd>
+<a href="http://www.markus-lanthaler.com/">
+Markus
+Lanthaler
+</a>,
+<a href="http://www.tugraz.at/">
+Graz
+University
+of
+Technology
+</a>
+</dd>
+<dd>
+<a href="http://webbackplane.com/">
+Mark
+Birbeck
+</a>,
+<a href="http://webbackplane.com/">
+Backplane
+Ltd.
+</a>
+</dd>
+</dl>
+<p>
+This
+document
+is
+also
+available
+in
+this
+non-normative
+format:
+<a href="diff-20120122.html">
+diff
+to
+previous
+version
+</a>.
+</p>
+<p class="copyright">
+This
+document
+is
+licensed
+under
+a
+<a class="subfoot" href="http://creativecommons.org/licenses/by/3.0/" rel="license">
+Creative
+Commons
+Attribution
+3.0
+License
+</a>.
+</p>
+<hr>
+</div>
+<div class="introductory section" id="abstract">
+<h2>
+Abstract
+</h2>
+<p>
+JSON
+[
+<cite>
+<a href="#bib-RFC4627" rel="biblioentry" class="bibref">
+RFC4627
+</a>
+</cite>
+]
+has
+proven
+to
+be
+a
+highly
+useful
+object
+serialization
+and
+messaging
+format.
+In
+an
+attempt
+to
+harmonize
+the
+representation
+of
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+in
+JSON,
+this
+specification
+outlines
+a
+common
+JSON
+representation
+format
+for
+expressing
+directed
+graphs;
+mixing
+both
+Linked
+Data
+and
+non-Linked
+Data
+in
+a
+single
+document.
+</p>
+</div>
+<div id="sotd" class="introductory section">
+<h2>
+Status
+of
+This
+Document
+</h2>
+<p>
+This
+document
+is
+merely
+a
+public
+working
+draft
+of
+a
+potential
+specification.
+It
+has
+no
+official
+standing
+of
+any
+kind
+and
+does
+not
+represent
+the
+support
+or
+consensus
+of
+any
+standards
+organisation.
+</p>
+<p>
+This
+document
+is
+an
+experimental
+work
+in
+progress.
+</p>
+</div>
+<div class="section" id="toc">
+<h2 class="introductory">
+Table
+of
+Contents
+</h2>
+<ul class="toc">
+<li class="tocline">
+<a class="tocxref" href="#introduction">
+<span class="secno">
+1.
+</span>
+Introduction
+</a>
+<ul class="toc">
+<li class="tocline">
+<a class="tocxref" href="#how-to-read-this-document">
+<span class="secno">
+1.1
+</span>
+How
+to
+Read
+this
+Document
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#syntax-tokens-and-keywords">
+<span class="secno">
+1.2
+</span>
+Syntax
+Tokens
+and
+Keywords
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#contributing">
+<span class="secno">
+1.3
+</span>
+Contributing
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#design">
+<span class="secno">
+2.
+</span>
+Design
+</a>
+<ul class="toc">
+<li class="tocline">
+<a class="tocxref" href="#goals-and-rationale">
+<span class="secno">
+2.1
+</span>
+Goals
+and
+Rationale
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#linking-data">
+<span class="secno">
+2.2
+</span>
+Linking
+Data
+</a>
+<ul class="toc">
+<li class="tocline">
+<a class="tocxref" href="#the-context">
+<span class="secno">
+2.2.1
+</span>
+The
+Context
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#from-json-to-json-ld">
+<span class="secno">
+2.2.2
+</span>
+From
+JSON
+to
+JSON-LD
+</a>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#basic-concepts">
+<span class="secno">
+3.
+</span>
+Basic
+Concepts
+</a>
+<ul class="toc">
+<li class="tocline">
+<a class="tocxref" href="#iris">
+<span class="secno">
+3.1
+</span>
+IRIs
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#identifying-the-subject">
+<span class="secno">
+3.2
+</span>
+Identifying
+the
+Subject
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#specifying-the-type">
+<span class="secno">
+3.3
+</span>
+Specifying
+the
+Type
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#strings">
+<span class="secno">
+3.4
+</span>
+Strings
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#string-internationalization">
+<span class="secno">
+3.5
+</span>
+String
+Internationalization
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#typed-values">
+<span class="secno">
+3.6
+</span>
+Typed
+Values
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#multiple-objects-for-a-single-property">
+<span class="secno">
+3.7
+</span>
+Multiple
+Objects
+for
+a
+Single
+Property
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#multiple-values-for-a-single-property">
+<span class="secno">
+3.8
+</span>
+Multiple
+Values
+for
+a
+Single
+Property
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#lists">
+<span class="secno">
+3.9
+</span>
+Lists
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#advanced-concepts">
+<span class="secno">
+4.
+</span>
+Advanced
+Concepts
+</a>
+<ul class="toc">
+<li class="tocline">
+<a class="tocxref" href="#compact-iris">
+<span class="secno">
+4.1
+</span>
+<del class="diff-old">Prefixes
+</del>
+<ins class="diff-chg">Compact
+IRIs
+</ins>
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#external-contexts">
+<span class="secno">
+4.2
+</span>
+External
+Contexts
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#referencing-contexts-from-json-documents">
+<span class="secno">
+4.3
+</span>
+<ins class="diff-new">Referencing
+Contexts
+from
+JSON
+Documents
+</ins></a></li><li class="tocline"><a class="tocxref" href="#default-language"><span class="secno"><ins class="diff-new">
+4.4
+</ins></span>
+Default
+Language
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#expanded-term-definition">
+<span class="secno">
+<del class="diff-old">4.4
+</del>
+<ins class="diff-chg">4.5
+</ins>
+</span>
+Expanded
+Term
+Definition
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#automatic-typing">
+<span class="secno">
+<del class="diff-old">4.5
+</del>
+<ins class="diff-chg">4.6
+</ins>
+</span>
+Automatic
+Typing
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#type-coercion">
+<span class="secno">
+<del class="diff-old">4.6
+</del>
+<ins class="diff-chg">4.7
+</ins>
+</span>
+Type
+Coercion
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#iri-expansion-within-a-context">
+<span class="secno">
+<del class="diff-old">4.7
+</del>
+<ins class="diff-chg">4.8
+</ins>
+</span>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+Expansion
+Within
+a
+Context
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#embedding">
+<span class="secno">
+<del class="diff-old">4.8
+</del>
+<ins class="diff-chg">4.9
+</ins>
+</span>
+Embedding
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#identifying-unlabeled-nodes">
+<span class="secno">
+<del class="diff-old">4.9
+</del>
+<ins class="diff-chg">4.10
+</ins>
+</span>
+Identifying
+Unlabeled
+Nodes
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#aliasing-keywords">
+<span class="secno">
+<del class="diff-old">4.10
+</del>
+<ins class="diff-chg">4.11
+</ins>
+</span>
+Aliasing
+Keywords
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#expansion">
+<span class="secno">
+<ins class="diff-new">4.12
+</ins></span><ins class="diff-new">
+Expansion
+</ins></a></li><li class="tocline"><a class="tocxref" href="#compaction"><span class="secno"><ins class="diff-new">
+4.13
+</ins></span><ins class="diff-new">
+Compaction
+</ins></a></li><li class="tocline"><a class="tocxref" href="#framing"><span class="secno"><ins class="diff-new">
+4.14
+</ins></span><ins class="diff-new">
+Framing
+</ins></a></li><li class="tocline"><a class="tocxref" href="#normalization"><span class="secno"><ins class="diff-new">
+4.15
+</ins></span><ins class="diff-new">
+Normalization
+</ins></a></li>
+</ul>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#markup-examples">
+<span class="secno">
+A.
+</span>
+Markup
+Examples
+</a>
+<ul class="toc">
+<li class="tocline">
+<a class="tocxref" href="#turtle">
+<span class="secno">
+A.1
+</span>
+Turtle
+</a>
+<ul class="toc">
+<li class="tocline">
+<a class="tocxref" href="#prefix-definitions">
+<span class="secno">
+A.1.1
+</span>
+Prefix
+definitions
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#embedding-1">
+<span class="secno">
+A.1.2
+</span>
+Embedding
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#lists-1">
+<span class="secno">
+A.1.3
+</span>
+Lists
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#rdfa">
+<span class="secno">
+A.2
+</span>
+RDFa
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#microformats">
+<span class="secno">
+A.3
+</span>
+Microformats
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#microdata">
+<span class="secno">
+A.4
+</span>
+Microdata
+</a>
+</li>
+</ul>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#linked-data">
+<span class="secno">
+B.
+</span>
+Linked
+Data
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#mashing-up-vocabularies">
+<span class="secno">
+C.
+</span>
+Mashing
+Up
+Vocabularies
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#iana-considerations">
+<span class="secno">
+D.
+</span>
+IANA
+Considerations
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#acknowledgements">
+<span class="secno">
+E.
+</span>
+Acknowledgements
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#references">
+<span class="secno">
+F.
+</span>
+References
+</a>
+<ul class="toc">
+<li class="tocline">
+<a class="tocxref" href="#normative-references">
+<span class="secno">
+F.1
+</span>
+Normative
+references
+</a>
+</li>
+<li class="tocline">
+<a class="tocxref" href="#informative-references">
+<span class="secno">
+F.2
+</span>
+Informative
+references
+</a>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div id="introduction" class="informative section">
+<h2>
+<span class="secno">
+1.
+</span>
+Introduction
+</h2>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+JSON,
+as
+specified
+in
+[
+<cite>
+<a href="#bib-RFC4627" rel="biblioentry" class="bibref">
+RFC4627
+</a>
+</cite>
+],
+is
+a
+simple
+language
+for
+representing
+data
+on
+the
+Web.
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+is
+a
+technique
+for
+creating
+a
+graph
+of
+interlinked
+data
+across
+different
+documents
+or
+Web
+sites.
+Data
+entities
+are
+described
+using
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s,
+which
+are
+typically
+dereferencable
+and
+thus
+may
+be
+used
+to
+find
+more
+information
+about
+an
+entity,
+creating
+a
+<del class="diff-old">"Web
+</del>
+<ins class="diff-chg">"Web
+</ins>
+of
+<del class="diff-old">Knowledge".
+</del>
+<ins class="diff-chg">Knowledge".
+</ins>
+JSON-LD
+is
+intended
+to
+be
+a
+simple
+publishing
+method
+for
+expressing
+not
+only
+Linked
+Data
+in
+JSON,
+but
+also
+for
+adding
+semantics
+to
+existing
+JSON.
+</p>
+<p>
+JSON-LD
+is
+designed
+as
+a
+lightweight
+syntax
+that
+can
+be
+used
+to
+express
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>.
+It
+is
+primarily
+intended
+to
+be
+a
+way
+to
+use
+Linked
+Data
+in
+Javascript
+and
+other
+Web-based
+programming
+environments.
+It
+is
+also
+useful
+when
+building
+interoperable
+Web
+services
+and
+when
+storing
+Linked
+Data
+in
+JSON-based
+document
+storage
+engines.
+It
+is
+practical
+and
+designed
+to
+be
+as
+simple
+as
+possible,
+utilizing
+the
+large
+number
+of
+JSON
+parsers
+and
+libraries
+available
+today.
+</p>
+<p>
+The
+syntax
+does
+not
+necessarily
+require
+applications
+to
+change
+their
+JSON,
+but
+allows
+one
+to
+easily
+add
+meaning
+by
+simply
+adding
+or
+referencing
+a
+context.
+The
+syntax
+is
+designed
+to
+not
+disturb
+already
+deployed
+systems
+running
+on
+JSON,
+but
+provide
+a
+smooth
+upgrade
+path
+from
+JSON
+to
+JSON-LD
+with
+added
+semantics.
+Finally,
+the
+format
+is
+intended
+to
+be
+easy
+to
+parse,
+efficient
+to
+generate,
+and
+only
+requires
+a
+very
+small
+memory
+footprint
+in
+order
+to
+operate.
+</p>
+<div class="section" id="how-to-read-this-document">
+<h3>
+<span class="secno">
+1.1
+</span>
+How
+to
+Read
+this
+Document
+</h3>
+<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
+that
+want
+to
+encode
+Linked
+Data
+in
+a
+way
+that
+is
+cross-language
+compatible
+via
+JSON.
+</li>
+<li>
+Software
+developers
+that
+want
+to
+understand
+the
+design
+decisions
+and
+language
+syntax
+for
+JSON-LD.
+</li>
+<li>
+Software
+developers
+that
+want
+to
+implement
+processors
+and
+APIs
+for
+JSON-LD.
+</li>
+</ul>
+<p>
+This
+specification
+does
+not
+describe
+the
+programming
+interfaces
+for
+the
+JSON-LD
+Syntax.
+The
+specification
+that
+describes
+the
+programming
+interfaces
+for
+JSON-LD
+documents
+is
+the
+JSON-LD
+Application
+Programming
+Interface
+[
+<cite>
+<a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref">
+JSON-LD-API
+</a>
+</cite>
+].
+</p>
+<p>
+To
+understand
+the
+basics
+in
+this
+specification
+you
+must
+first
+be
+familiar
+with
+JSON,
+which
+is
+detailed
+in
+[
+<cite>
+<a href="#bib-RFC4627" rel="biblioentry" class="bibref">
+RFC4627
+</a>
+</cite>
+].
+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 href="#bib-ECMA-262" rel="biblioentry" class="bibref">
+ECMA-262
+</a>
+</cite>
+]
+and
+WebIDL
+[
+<cite>
+<a href="#bib-WEBIDL" rel="biblioentry" class="bibref">
+WEBIDL
+</a>
+</cite>
+].
+</p>
+<p>
+JSON
+[
+<cite>
+<a href="#bib-RFC4627" rel="biblioentry" class="bibref">
+RFC4627
+</a>
+</cite>
+]
+defines
+several
+terms
+which
+are
+used
+throughout
+this
+document:
+</p>
+<dl>
+<dt>
+<dfn id="dfn-json_object" title="json_object">
+JSON
+Object
+</dfn>
+</dt>
+<dd>
+An
+object
+structure
+is
+represented
+as
+a
+pair
+of
+curly
+brackets
+surrounding
+zero
+or
+more
+name/value
+pairs
+(or
+members).
+A
+name
+is
+a
+<a href="#dfn-string" title="string" class="tref internalDFN">
+string
+</a>.
+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
+<em title="should" class="rfc2119">
+should
+</em>
+be
+unique.
+</dd>
+<dt>
+<dfn id="dfn-array" title="array">
+array
+</dfn>
+</dt>
+<dd>
+An
+array
+is
+an
+ordered
+collection
+of
+values.
+An
+array
+structure
+is
+represented
+as
+square
+brackets
+surrounding
+zero
+or
+more
+values
+(or
+elements).
+Elements
+are
+separated
+by
+commas.
+Within
+JSON-LD,
+array
+order
+is
+not
+preserved
+by
+default,
+unless
+specific
+markup
+is
+provided
+(see
+<a href="#lists">
+Lists
+</a>
+).
+This
+is
+because
+the
+basic
+data
+model
+of
+JSON-LD
+is
+a
+<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
+linked
+data
+graph
+</a>,
+which
+is
+inherently
+unordered.
+</dd>
+<dt>
+<dfn id="dfn-string" title="string">
+string
+</dfn>
+</dt>
+<dd>
+A
+string
+is
+a
+sequence
+of
+zero
+or
+more
+Unicode
+characters,
+wrapped
+in
+double
+quotes,
+using
+backslash
+escapes.
+A
+character
+is
+represented
+as
+a
+single
+character
+string.
+</dd>
+<dt>
+<dfn id="dfn-number" title="number">
+number
+</dfn>
+</dt>
+<dd>
+A
+number
+is
+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 id="dfn-true" title="true">
+true
+</dfn>
+and
+<dfn id="dfn-false" title="false">
+false
+</dfn>
+</dt>
+<dd>
+Values
+that
+are
+used
+to
+express
+one
+of
+two
+possible
+boolean
+states.
+</dd>
+<dt>
+<dfn id="dfn-null" title="null">
+null
+</dfn>
+</dt>
+<dd>
+The
+use
+of
+the
+<em>
+null
+</em>
+value
+is
+undefined
+within
+JSON-LD.
+</dd>
+</dl>
+<p>
+</p>
+</div>
+<div class="section" id="syntax-tokens-and-keywords">
+<h3>
+<span class="secno">
+1.2
+</span>
+Syntax
+Tokens
+and
+Keywords
+</h3>
+<p>
+JSON-LD
+specifies
+a
+number
+of
+syntax
+tokens
+and
+keywords
+that
+are
+using
+in
+all
+algorithms
+described
+in
+this
+section:
+</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 href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+and
+help
+developers
+express
+specific
+identifiers
+in
+a
+compact
+manner.
+The
+<code>
+@context
+</code>
+keyword
+is
+described
+in
+detail
+in
+the
+section
+titled
+<a href="#the-context">
+The
+Context
+</a>.
+</dd>
+<dt>
+<code>
+@id
+</code>
+</dt>
+<dd>
+Used
+to
+uniquely
+identify
+things
+that
+are
+being
+described
+in
+the
+document.
+This
+keyword
+is
+described
+in
+the
+section
+titled
+<a href="#identifying-the-subject">
+Identifying
+the
+Subject
+</a>.
+</dd>
+<dt>
+<code>
+@value
+</code>
+</dt>
+<dd>
+Used
+to
+specify
+the
+data
+that
+is
+associated
+with
+a
+particular
+<a href="#dfn-property" title="property" class="tref internalDFN">
+property
+</a>
+in
+the
+graph.
+This
+keyword
+is
+described
+in
+the
+sections
+titled
+<a href="#string-internationalization">
+String
+Internationalization
+</a>
+and
+<a href="#typed-values">
+Typed
+Values
+</a>.
+</dd>
+<dt>
+<code>
+@language
+</code>
+</dt>
+<dd>
+Used
+to
+specify
+the
+native
+language
+for
+a
+particular
+value.
+This
+keyword
+is
+described
+in
+the
+section
+titled
+<a href="#string-internationalization">
+String
+Internationalization
+</a>.
+</dd>
+<dt>
+<code>
+@type
+</code>
+</dt>
+<dd>
+Used
+to
+set
+the
+data
+type
+of
+a
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>
+or
+<a href="#dfn-typed_value" title="typed_value" class="tref internalDFN">
+typed
+value
+</a>.
+This
+keyword
+is
+described
+in
+the
+section
+titled
+<a href="#typed-values">
+Typed
+Values
+</a>.
+</dd>
+<dt>
+<code>
+<ins class="diff-new">@container
+</ins></code></dt><dd><ins class="diff-new">
+Used
+to
+set
+the
+container
+of
+a
+particular
+value.
+This
+keyword
+is
+described
+in
+the
+section
+titled
+</ins><a href="#lists"><ins class="diff-new">
+Lists
+</ins></a>.</dd><dt><code>
+@list
+</code>
+</dt>
+<dd>
+Used
+to
+express
+an
+ordered
+set
+of
+data.
+This
+keyword
+is
+described
+in
+the
+section
+titled
+<a href="#lists">
+Lists
+</a>.
+</dd>
+<dt>
+<code>:
+</code>
+</dt>
+<dd>
+The
+separator
+for
+JSON
+keys
+and
+values
+that
+use
+<del class="diff-old">the
+prefix
+mechanism.
+</del>
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+<ins class="diff-chg">compact
+IRIs
+</ins></a>.
+</dd>
+</dl>
+<p>
+<ins class="diff-new">For
+the
+avoidance
+of
+doubt,
+all
+keys,
+keywords
+and
+values
+in
+JSON-LD
+are
+case-sensitive.
+</ins></p>
+</div>
+<div class="section" id="contributing">
+<h3>
+<span class="secno">
+1.3
+</span>
+Contributing
+</h3>
+<p>
+There
+are
+a
+number
+of
+ways
+that
+one
+may
+participate
+in
+the
+development
+of
+this
+specification:
+</p>
+<ul>
+<li>
+Technical
+discussion
+typically
+occurs
+on
+the
+public
+mailing
+list:
+<a href="http://lists.w3.org/Archives/Public/public-linked-json/">
+public-linked-json@w3.org
+</a>
+</li>
+<li>
+<a href="http://json-ld.org/minutes/">
+Public
+teleconferences
+</a>
+are
+held
+every
+week
+on
+Tuesdays
+at
+1500
+UTC.
+</li>
+<li>
+Specification
+bugs
+and
+issues
+should
+be
+reported
+in
+the
+<a href="https://github.com/json-ld/json-ld.org/issues">
+issue
+tracker
+</a>.
+</li>
+<li>
+<a href="https://github.com/json-ld/json-ld.org/tree/master/spec">
+Source
+code
+</a>
+for
+the
+specification
+can
+be
+found
+on
+Github.
+</li>
+<li>
+The
+<a href="http://webchat.freenode.net/?channels=#json-ld">
+#json-ld
+</a>
+IRC
+channel
+is
+available
+for
+real-time
+discussion
+on
+irc.freenode.net.
+</li>
+</ul>
+</div>
+</div>
+<div id="design" class="informative section">
+<h2>
+<span class="secno">
+2.
+</span>
+Design
+</h2>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+The
+following
+section
+outlines
+the
+design
+goals
+and
+rationale
+behind
+the
+JSON-LD
+markup
+language.
+</p>
+<div class="section" id="goals-and-rationale">
+<h3>
+<span class="secno">
+2.1
+</span>
+Goals
+and
+Rationale
+</h3>
+<p>
+A
+number
+of
+design
+considerations
+were
+explored
+during
+the
+creation
+of
+this
+markup
+language:
+</p>
+<dl>
+<dt>
+Simplicity
+</dt>
+<dd>
+Developers
+need
+only
+know
+JSON
+and
+two
+keywords
+(
+<code>
+@context
+</code>
+and
+<code>
+@id
+</code>
+)
+to
+use
+the
+basic
+functionality
+in
+JSON-LD.
+No
+extra
+processors
+or
+software
+libraries
+are
+necessary
+to
+use
+JSON-LD
+in
+its
+most
+basic
+form.
+The
+language
+attempts
+to
+ensure
+that
+developers
+have
+an
+easy
+learning
+curve.
+</dd>
+<dt>
+Compatibility
+</dt>
+<dd>
+The
+JSON-LD
+markup
+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
+express
+directed
+graphs,
+which
+have
+been
+proven
+to
+be
+able
+to
+simply
+express
+almost
+every
+real
+world
+data
+model.
+</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
+provides
+a
+mechanism
+that
+allows
+developers
+to
+specify
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+in
+a
+way
+that
+is
+out-of-band.
+This
+allows
+organizations
+that
+have
+already
+deployed
+large
+JSON-based
+infrastructure
+to
+add
+meaning
+to
+their
+JSON
+documents
+in
+a
+way
+that
+is
+not
+disruptive
+to
+their
+day-to-day
+operations
+and
+is
+transparent
+to
+their
+current
+customers.
+At
+times,
+mapping
+JSON
+to
+a
+graph
+representation
+can
+become
+difficult.
+In
+these
+instances,
+rather
+than
+having
+JSON-LD
+support
+esoteric
+markup,
+we
+chose
+not
+to
+support
+the
+use
+case
+and
+support
+a
+simplified
+syntax
+instead.
+So,
+while
+Zero
+Edits
+is
+a
+goal,
+it
+is
+not
+always
+possible
+without
+adding
+great
+complexity
+to
+the
+language.
+</dd>
+<dt>
+One-pass
+Processing
+</dt>
+<dd>
+JSON-LD
+supports
+one-pass
+processing,
+which
+results
+in
+a
+very
+small
+memory
+footprint
+when
+processing
+documents.
+For
+example,
+to
+expand
+a
+JSON-LD
+document
+from
+a
+compacted
+form,
+only
+one
+pass
+is
+required
+over
+the
+data.
+</dd>
+</dl>
+</div>
+<div class="section" id="linking-data">
+<h3>
+<span class="secno">
+2.2
+</span>
+Linking
+Data
+</h3>
+<p>
+An
+Internationalized
+Resource
+Identifier
+(
+<dfn id="dfn-iri" title="iri">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</dfn>
+),
+as
+described
+in
+[
+<cite>
+<a href="#bib-RFC3987" rel="biblioentry" class="bibref">
+RFC3987
+</a>
+</cite>
+],
+is
+a
+mechanism
+for
+representing
+unique
+identifiers
+on
+the
+web.
+In
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>,
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+is
+commonly
+used
+for
+expressing
+a
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>,
+a
+<a href="#dfn-property" title="property" class="tref internalDFN">
+property
+</a>
+or
+an
+<a href="#dfn-object" title="object" class="tref internalDFN">
+object
+</a>.
+</p>
+<p>
+JSON-LD
+defines
+a
+mechanism
+to
+map
+JSON
+terms,
+i.e.,
+keys
+and
+values,
+to
+IRIs.
+This
+does
+not
+mean
+that
+JSON-LD
+requires
+every
+key
+or
+value
+to
+be
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>,
+but
+rather
+ensures
+that
+keys
+and
+values
+can
+be
+mapped
+to
+IRIs
+if
+the
+developer
+desires
+to
+transform
+their
+data
+into
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>.
+There
+are
+a
+few
+techniques
+that
+can
+ensure
+that
+developers
+will
+generate
+good
+Linked
+Data
+for
+the
+Web.
+JSON-LD
+formalizes
+those
+techniques.
+</p>
+<p>
+We
+will
+be
+using
+the
+following
+JSON
+markup
+as
+the
+example
+for
+the
+rest
+of
+this
+section:
+</p>
+<del class="diff-old">{
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</ins>
+}
+</pre>
+<div class="section" id="the-context">
+<h4>
+<span class="secno">
+2.2.1
+</span>
+The
+Context
+</h4>
+<p>
+In
+JSON-LD,
+a
+<dfn id="dfn-context" title="context">
+context
+</dfn>
+is
+used
+to
+map
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s,
+i.e.,
+keys
+with
+associated
+values
+in
+an
+JSON
+document,
+to
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s.
+A
+<dfn id="dfn-term" title="term">
+term
+</dfn>
+is
+a
+short
+word
+that
+<em title="may" class="rfc2119">
+may
+</em>
+be
+expanded
+to
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+A
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+<em title="must" class="rfc2119">
+must
+</em>
+have
+the
+lexical
+form
+of
+<cite>
+<a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">
+NCName
+</a>
+</cite>
+(see
+[
+<cite>
+<a href="#bib-XML-NAMES" rel="biblioentry" class="bibref">
+XML-NAMES
+</a>
+</cite>
+]),
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+<ins class="diff-new">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>,<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN"><ins class="diff-new">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a>,
+or
+be
+an
+empty
+string.
+</p>
+<p>
+The
+Web
+uses
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+IRIs
+</a>
+for
+unambiguous
+identification.
+The
+idea
+is
+that
+these
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+mean
+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 href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+to
+expand
+to
+IRIs
+so
+that
+developers
+don't
+accidentally
+step
+on
+each
+other's
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+terms.
+For
+example,
+the
+term
+<code>
+name
+</code>
+may
+map
+directly
+to
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<code>
+http://xmlns.com/foaf/0.1/name
+</code>.
+This
+allows
+JSON-LD
+documents
+to
+be
+constructed
+using
+the
+common
+JSON
+practice
+of
+simple
+name/value
+pairs
+while
+ensuring
+that
+the
+data
+is
+useful
+outside
+of
+the
+page,
+API
+or
+database
+in
+which
+it
+resides.
+The
+value
+of
+a
+term
+mapping
+<em title="must" class="rfc2119">
+must
+</em>
+be
+either;
+1)
+a
+simple
+string
+with
+the
+lexical
+form
+of
+an
+absolute
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+or,
+2)
+an
+<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
+JSON
+object
+</a>
+containing
+an
+<code>
+@id
+</code>,
+<code>
+@type
+</code>,
+<code>
+<ins class="diff-new">@language
+</ins></code>,
+or
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@container
+</ins>
+</code>
+keyword.
+</p>
+<p>
+These
+Linked
+Data
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+are
+typically
+collected
+in
+a
+context
+document
+that
+would
+look
+something
+like
+this:
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "depiction":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/depiction",
+ "@type": "@id"
+ },
+ "homepage":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ },
+ }
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "depiction":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/depiction",
+ "@type": "@id"
+ },
+ "homepage":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ },
+ }
+</ins>
+}
+</pre>
+<p>
+This
+context
+document
+can
+then
+be
+used
+in
+an
+JSON-LD
+document
+by
+adding
+a
+single
+line.
+The
+JSON
+markup
+as
+shown
+in
+the
+previous
+section
+could
+be
+changed
+as
+follows
+to
+link
+to
+the
+context
+document:
+</p>
+<del class="diff-old">{
+
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</del>
+<pre class="example">{
+ <span class="diff">"@context": "http://json-ld.org/contexts/person",</span>
+<ins class="diff-chg"> "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</ins>
+}
+</pre>
+<p>
+The
+additions
+above
+transform
+the
+previous
+JSON
+document
+into
+a
+JSON
+document
+with
+added
+semantics
+because
+the
+<code>
+@context
+</code>
+specifies
+how
+the
+<strong>
+name
+</strong>,
+<strong>
+homepage
+</strong>,
+and
+<strong>
+depiction
+</strong>
+terms
+map
+to
+<del class="diff-old">IRIs.
+</del>
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<ins class="diff-chg">IRIs
+</ins></a>.
+Mapping
+those
+keys
+to
+IRIs
+gives
+the
+data
+global
+context.
+If
+two
+developers
+use
+the
+same
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+to
+describe
+a
+property,
+they
+are
+more
+than
+likely
+expressing
+the
+same
+concept.
+This
+allows
+both
+developers
+to
+re-use
+each
+others
+data
+without
+having
+to
+agree
+to
+how
+their
+data
+will
+interoperate
+on
+a
+site-by-site
+basis.
+Contexts
+may
+also
+contain
+type
+information
+for
+certain
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+as
+well
+as
+other
+processing
+instructions
+for
+the
+JSON-LD
+processor.
+</p>
+<p>
+Contexts
+may
+be
+specified
+in-line.
+This
+ensures
+that
+JSON-LD
+documents
+can
+be
+processed
+when
+a
+JSON-LD
+processor
+does
+not
+have
+access
+to
+the
+Web.
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "depiction":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/depiction",
+ "@type": "@id"
+ },
+ "homepage":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ },
+ },
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</del>
+<pre class="example">{
+ <span class="diff">"@context":
+<ins class="diff-chg"> {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "depiction":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/depiction",
+ "@type": "@id"
+ },
+ "homepage":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ },
+ },</span>
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</ins>
+}
+</pre>
+<p>
+Contexts
+<em title="may" class="rfc2119">
+may
+</em>
+be
+used
+at
+any
+time
+a
+<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
+JSON
+object
+</a>
+is
+defined.
+A
+<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
+JSON
+object
+</a>
+<em title="may" class="rfc2119">
+may
+</em>
+specify
+multiple
+contexts,
+using
+an
+<a href="#dfn-array" title="array" class="tref internalDFN">
+array
+</a>,
+which
+is
+processed
+in
+array-order.
+This
+is
+useful
+when
+an
+author
+would
+like
+to
+use
+an
+existing
+context
+and
+add
+application-specific
+terms
+to
+the
+existing
+context.
+Duplicate
+context
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+<em title="must" class="rfc2119">
+must
+</em>
+be
+overridden
+using
+a
+last-defined-overrides
+mechanism.
+</p>
+<p>
+The
+set
+of
+contexts
+defined
+within
+a
+specific
+<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
+JSON
+Object
+</a>
+are
+referred
+to
+as
+<dfn id="dfn-local_context" title="local_context">
+local
+context
+</dfn>
+s.
+The
+<dfn id="dfn-active_context" title="active_context">
+active
+context
+</dfn>
+refers
+to
+the
+accumulation
+of
+<a href="#dfn-local_context" title="local_context" class="tref internalDFN">
+local
+context
+</a>
+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:
+</p>
+<del class="diff-old">{
+ "@context": [
+ "http://json-ld.org/contexts/person",
+ {
+ "pic": "http://xmlns.com/foaf/0.1/depiction"
+ }
+ ],
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+
+</del>
+<pre class="example">{
+ <span class="diff">"@context": [
+<ins class="diff-chg"> "http://json-ld.org/contexts/person",
+ {
+ "pic": "http://xmlns.com/foaf/0.1/depiction"
+ }
+ ],</span>
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+</ins> <span class="diff">"pic": "http://twitter.com/account/profile_image/manusporny"</span>
+}
+</pre>
+<p>
+JSON-LD
+uses
+a
+special
+type
+of
+machine-readable
+document
+called
+a
+<dfn id="dfn-vocabulary" title="vocabulary">
+vocabulary
+</dfn>
+to
+define
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+that
+are
+then
+used
+to
+describe
+concepts
+and
+<del class="diff-old">"things"
+</del>
+<ins class="diff-chg">"things"
+</ins>
+in
+the
+world.
+Typically,
+these
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+documents
+have
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+prefix
+</a>
+es
+associated
+with
+them
+and
+contain
+a
+number
+of
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+declarations.
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+Prefix
+</a>
+es
+are
+helpful
+when
+a
+developer
+wants
+to
+mix
+multiple
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabularies
+</a>
+together
+in
+a
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>,
+but
+does
+not
+want
+to
+go
+to
+the
+trouble
+of
+defining
+every
+single
+term
+in
+every
+single
+vocabulary.
+Some
+<del class="diff-old">Web
+Vocabularies
+</del>
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+<ins class="diff-chg">vocabularies
+</ins></a>
+may
+have
+dozens
+of
+terms
+defined.
+If
+a
+developer
+wants
+to
+use
+3-4
+different
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabularies
+</a>,
+the
+number
+of
+terms
+that
+would
+have
+to
+be
+declared
+in
+a
+single
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+could
+become
+quite
+large.
+To
+reduce
+the
+number
+of
+different
+terms
+that
+must
+be
+defined,
+JSON-LD
+also
+allows
+prefixes
+to
+be
+used
+to
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+compact
+<del class="diff-old">IRIs.
+</del>
+<ins class="diff-chg">IRIs
+</ins></a>.
+</p>
+<p>
+For
+example,
+the
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<code>
+http://xmlns.com/foaf/0.1/
+</code>
+specifies
+a
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+which
+may
+be
+represented
+using
+the
+<code>
+foaf
+</code>
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+prefix
+</a>.
+The
+<code>
+foaf
+</code>
+vocabulary
+contains
+a
+term
+called
+<strong>
+name
+</strong>.
+If
+you
+join
+the
+<code>
+foaf
+</code>
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+prefix
+</a>
+with
+the
+<strong>
+name
+</strong>
+suffix,
+you
+can
+build
+a
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+compact
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+that
+will
+expand
+out
+into
+an
+<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+for
+the
+<code>
+http://xmlns.com/foaf/0.1/name
+</code>
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+term.
+That
+is,
+the
+compact
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+(or
+short-form),
+is
+<code>
+foaf:name
+</code>
+and
+the
+expanded-form
+is
+<code>
+http://xmlns.com/foaf/0.1/name
+</code>.
+This
+vocabulary
+term
+is
+used
+to
+specify
+a
+person's
+name.
+</p>
+<p>
+Developers,
+and
+machines,
+are
+able
+to
+use
+this
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+(by
+plugging
+it
+directly
+into
+a
+web
+browser,
+for
+instance)
+to
+go
+to
+the
+term
+and
+get
+a
+definition
+of
+what
+the
+term
+means.
+Much
+like
+we
+can
+use
+<a href="http://wordnet.princeton.edu/">
+WordNet
+</a>
+today
+to
+see
+the
+definition
+of
+words
+in
+the
+English
+language.
+Developers
+and
+machines
+need
+the
+same
+sort
+of
+definition
+of
+terms.
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+IRIs
+</a>
+provide
+a
+way
+to
+ensure
+that
+these
+terms
+are
+unambiguous.
+</p>
+<p>
+The
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+provides
+a
+collection
+of
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+<del class="diff-old">and
+prefix
+es
+</del>
+that
+can
+be
+used
+to
+expand
+JSON
+keys
+and
+values
+into
+<del class="diff-old">IRI
+s.
+</del>
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<ins class="diff-chg">IRIs
+</ins></a>.
+</p>
+<p class="note">
+To
+ensure
+the
+best
+possible
+performance,
+it
+is
+a
+best
+practice
+to
+put
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+definition
+at
+the
+top
+of
+the
+JSON-LD
+document.
+If
+it
+isn't
+listed
+first,
+processors
+have
+to
+save
+each
+key-value
+pair
+until
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+is
+processed.
+This
+creates
+a
+memory
+and
+complexity
+burden
+for
+one-pass
+processors.
+</p>
+</div>
+<div class="section" id="from-json-to-json-ld">
+<h4>
+<span class="secno">
+2.2.2
+</span>
+From
+JSON
+to
+JSON-LD
+</h4>
+<p>
+If
+a
+set
+of
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+such
+as,
+<strong>
+name
+</strong>,
+<strong>
+homepage
+</strong>,
+and
+<strong>
+depiction
+</strong>,
+are
+defined
+in
+a
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>,
+and
+that
+context
+is
+used
+to
+resolve
+the
+names
+in
+JSON
+objects,
+machines
+are
+able
+to
+automatically
+expand
+the
+terms
+to
+something
+meaningful
+and
+unambiguous,
+like
+this:
+</p>
+<del class="diff-old">{
+ "": "Manu Sporny",
+ "": "http://manu.sporny.org"
+ "": "http://twitter.com/account/profile_image/manusporny"
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "<span class="diff">http://xmlns.com/foaf/0.1/name</span>": "Manu Sporny",
+ "<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>": "http://manu.sporny.org"
+ "<span class="diff">http://rdfs.org/sioc/ns#avatar</span>": "http://twitter.com/account/profile_image/manusporny"
+</ins>
+}
+</pre>
+<p>
+Doing
+this
+allows
+JSON
+to
+be
+unambiguously
+machine-readable
+without
+requiring
+developers
+to
+drastically
+change
+their
+workflow.
+</p>
+<p class="note">
+The
+example
+above
+does
+not
+use
+the
+<code>
+@id
+</code>
+keyword
+to
+set
+the
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>
+of
+the
+node
+being
+described
+above.
+This
+type
+of
+node
+is
+called
+an
+<dfn id="dfn-unlabeled_node" title="unlabeled_node">
+unlabeled
+node
+</dfn>
+and
+is
+considered
+to
+be
+a
+weaker
+form
+of
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>.
+It
+is
+advised
+that
+all
+nodes
+described
+in
+JSON-LD
+are
+given
+unique
+identifiers
+via
+the
+<code>
+@id
+</code>
+keyword
+unless
+the
+data
+is
+not
+intended
+to
+be
+linked
+to
+from
+other
+data
+sets.
+</p>
+</div>
+</div>
+</div>
+<div class="section" id="basic-concepts">
+<h2>
+<span class="secno">
+3.
+</span>
+Basic
+Concepts
+</h2>
+<p>
+JSON-LD
+is
+designed
+to
+ensure
+that
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+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
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>.
+As
+more
+JSON-LD
+features
+are
+used,
+more
+semantics
+are
+added
+to
+the
+JSON
+markup.
+</p>
+<div class="section" id="iris">
+<h3>
+<span class="secno">
+3.1
+</span>
+IRIs
+</h3>
+<p>
+Expressing
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s
+are
+fundamental
+to
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+as
+that
+is
+how
+most
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>
+s,
+all
+<a href="#dfn-property" title="property" class="tref internalDFN">
+properties
+</a>
+and
+many
+<a href="#dfn-object" title="object" class="tref internalDFN">
+object
+</a>
+s
+are
+identified.
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s
+can
+be
+expressed
+in
+a
+variety
+of
+different
+ways
+in
+JSON-LD.
+</p>
+<ol>
+<li>
+Except
+within
+a
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+definition,
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+in
+the
+key
+position
+in
+a
+<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
+JSON
+object
+</a>
+that
+have
+a
+mapping
+to
+an
+<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
+<ins class="diff-chg">absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+or
+another
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+in
+the
+<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
+active
+context
+</a>
+are
+expanded
+to
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+by
+JSON-LD
+processors.
+</li>
+<li>
+An
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+is
+generated
+for
+the
+<a href="#dfn-string" title="string" class="tref internalDFN">
+string
+</a>
+value
+specified
+using
+<code>
+@id
+</code>
+or
+<code>
+@type
+</code>.
+</li>
+<li>
+An
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+is
+generated
+for
+the
+<a href="#dfn-string" title="string" class="tref internalDFN">
+string
+</a>
+value
+of
+any
+key
+for
+which
+there
+are
+<a href="#dfn-coercion" title="coercion" class="tref internalDFN">
+coercion
+</a>
+rules
+in
+effect
+that
+identify
+the
+value
+as
+an
+<code>
+@id
+</code>.
+</li>
+</ol>
+<p>
+IRIs
+may
+be
+represented
+as
+an
+<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+<del class="diff-old">,
+</del>
+</abbr>
+</a>,
+<ins class="diff-chg">a
+</ins><a href="#dfn-relative_iri" title="relative_iri" class="tref internalDFN"><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 href="#dfn-term" title="term" class="tref internalDFN"><ins class="diff-chg">
+term
+</ins></a>,<ins class="diff-chg">
+or
+a
+</ins><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><ins class="diff-chg">
+compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>.</p><p><ins class="diff-chg">
+An
+</ins><dfn id="dfn-absolute_iri" title="absolute_iri"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></dfn><ins class="diff-chg">
+is
+defined
+in
+[
+</ins><cite><a href="#bib-RFC3987" rel="biblioentry" class="bibref"><ins class="diff-chg">
+RFC3987
+</ins></a></cite><ins class="diff-chg">
+]
+containing
+a
+</ins><em><ins class="diff-chg">
+scheme
+</ins></em><ins class="diff-chg">
+along
+with
+</ins><em><ins class="diff-chg">
+path
+</ins></em><ins class="diff-chg">
+and
+optional
+</ins><em><ins class="diff-chg">
+query
+</ins></em><ins class="diff-chg">
+and
+fragment
+segments.
+A
+</ins><dfn id="dfn-relative_iri" title="relative_iri"><ins class="diff-chg">
+relative
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></dfn><ins class="diff-chg">
+is
+</ins>
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+that
+is
+relative
+<del class="diff-old">to
+</del>
+<ins class="diff-chg">some
+other
+</ins><a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN"><ins class="diff-chg">
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a><ins class="diff-chg">
+;
+in
+the
+case
+of
+JSON-LD
+this
+is
+</ins>
+the
+base
+location
+of
+the
+<del class="diff-old">document,
+a
+term
+,
+or
+a
+prefix
+:suffix
+construct.
+</del>
+<ins class="diff-chg">document.
+</ins>
+</p>
+<p>
+IRIs
+can
+be
+expressed
+directly
+in
+the
+key
+position
+like
+so:
+</p>
+<del class="diff-old">{
+...
+ "": "Manu Sporny",
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "<span class="diff">http://xmlns.com/foaf/0.1/name</span>": "Manu Sporny",
+...
+</ins>
+}
+</pre>
+<p>
+In
+the
+example
+above,
+the
+key
+<code>
+http://xmlns.com/foaf/0.1/name
+</code>
+is
+interpreted
+as
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>,
+as
+opposed
+to
+being
+interpreted
+as
+a
+string.
+</p>
+<p>
+Term
+expansion
+occurs
+for
+IRIs
+if
+the
+value
+matches
+a
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+defined
+within
+the
+<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
+active
+context
+</a>:
+</p>
+<del class="diff-old">{
+ "" },
+...
+ "": "Manu Sporny",
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "<span class="diff">@context</span>":
+ {
+ "<span class="diff">name</span>": "<span class="diff">http://xmlns.com/foaf/0.1/name</span>"
+...
+ },
+ "<span class="diff">name</span>": "Manu Sporny",
+...
+</ins>
+}
+</pre>
+<p>
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+Prefix
+</a>
+es
+are
+expanded
+when
+the
+form
+of
+the
+value
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+<ins class="diff-new">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+represented
+as
+</ins>
+is
+<code>
+prefix:suffix
+</code>,
+and
+the
+prefix
+matches
+a
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+defined
+within
+the
+<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
+active
+context
+</a>:
+</p>
+<del class="diff-old">{
+ "" },
+...
+ "": "Manu Sporny",
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "<span class="diff">@context</span>":
+ {
+ "<span class="diff">foaf</span>": "<span class="diff">http://xmlns.com/foaf/0.1/</span>"
+...
+ },
+ "<span class="diff">foaf:name</span>": "Manu Sporny",
+...
+</ins>
+}
+</pre>
+<p>
+<a href="#dfn-term" title="term" class="tref internalDFN">
+Term
+</a>
+s
+are
+case
+sensitive,
+and
+<em title="must" class="rfc2119">
+must
+</em>
+be
+matched
+using
+a
+case-sensitive
+comparison.
+</p>
+<p>
+<ins class="diff-new">Keys
+that
+do
+not
+expand
+to
+an
+absolute
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr><ins class="diff-new">
+are
+ignored.
+</ins></p><p class="issue"><ins class="diff-new">
+It
+is
+not
+determined
+if
+processing
+proceeds
+into
+values
+of
+undefined
+keys.
+If
+so,
+this
+would
+result
+in
+a
+graph
+which
+is
+not
+</ins><a href="#dfn-embedding" title="embedding" class="tref internalDFN"><ins class="diff-new">
+embedded
+</ins></a>.</p><p>
+<code>
+foaf:name
+</code>
+above
+will
+automatically
+expand
+out
+to
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<code>
+http://xmlns.com/foaf/0.1/name
+</code>.
+See
+<del class="diff-old">Prefixes
+</del>
+<a href="#compact-iris">
+<ins class="diff-chg">Compact
+IRIs
+</ins>
+</a>
+for
+more
+details.
+</p>
+<p>
+An
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+is
+generated
+when
+a
+value
+is
+associated
+with
+a
+key
+using
+the
+<code>
+@id
+</code>
+keyword:
+</p>
+<del class="diff-old">{
+...
+ "homepage": { "": "http://manu.sporny.org" }
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "homepage": { "<span class="diff">@id</span>": "http://manu.sporny.org" }
+...
+</ins>
+}
+</pre>
+<p class="note">
+Specifying
+a
+<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
+JSON
+Object
+</a>
+with
+an
+<code>
+@id
+</code>
+key
+is
+used
+to
+identify
+that
+object
+using
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+This
+facility
+<em title="may" class="rfc2119">
+may
+</em>
+also
+be
+used
+to
+link
+a
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>
+with
+an
+<a href="#dfn-object" title="object" class="tref internalDFN">
+object
+</a>
+using
+a
+mechanism
+called
+<a href="#dfn-embedding" title="embedding" class="tref internalDFN">
+embedding
+</a>,
+which
+is
+covered
+in
+the
+section
+titled
+<a href="#embedding">
+Embedding
+</a>.
+</p>
+<p>
+If
+type
+<a href="#dfn-coercion" title="coercion" class="tref internalDFN">
+coercion
+</a>
+rules
+are
+specified
+in
+the
+<code>
+@context
+</code>
+for
+a
+particular
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+or
+property
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>,
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+is
+generated:
+</p>
+<del class="diff-old"> "@context":
+ {
+ ...
+ "homepage":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ }
+ ...
+ }
+...
+ "homepage": "http://manu.sporny.org/",
+...
+</del>
+<pre class="example">{<span class="diff">
+<ins class="diff-chg"> "@context":
+ {
+ ...
+ "homepage":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ }
+ ...
+ }</span>
+...
+ "homepage": "http://manu.sporny.org/",
+...
+</ins>
+}
+</pre>
+<p>
+Even
+though
+the
+value
+<code>
+http://manu.sporny.org/
+</code>
+is
+a
+<a href="#dfn-string" title="string" class="tref internalDFN">
+string
+</a>,
+the
+type
+<a href="#dfn-coercion" title="coercion" class="tref internalDFN">
+coercion
+</a>
+rules
+will
+transform
+the
+value
+into
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+when
+processed
+by
+a
+JSON-LD
+Processor.
+</p>
+</div>
+<div class="section" id="identifying-the-subject">
+<h3>
+<span class="secno">
+3.2
+</span>
+Identifying
+the
+Subject
+</h3>
+<p>
+To
+be
+able
+to
+externally
+reference
+nodes,
+it
+is
+important
+that
+each
+node
+has
+an
+unambiguous
+identifier.
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s
+are
+a
+fundamental
+concept
+of
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>,
+and
+nodes
+should
+have
+a
+de-referencable
+identifier
+used
+to
+name
+and
+locate
+them.
+For
+nodes
+to
+be
+truly
+linked,
+de-referencing
+the
+identifier
+should
+result
+in
+a
+representation
+of
+that
+node.
+Associating
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+with
+a
+node
+tells
+an
+application
+that
+the
+returned
+document
+contains
+a
+description
+of
+the
+node
+requested.
+</p>
+<p>
+JSON-LD
+documents
+may
+also
+contain
+descriptions
+of
+other
+nodes,
+so
+it
+is
+necessary
+to
+be
+able
+to
+uniquely
+identify
+each
+node
+which
+may
+be
+externally
+referenced.
+</p>
+<p>
+A
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>
+of
+an
+object
+in
+JSON
+is
+declared
+using
+the
+<code>
+@id
+</code>
+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.
+</p>
+<del class="diff-old">{
+...
+ "",
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "<span class="diff">@id</span>": "<span class="diff">http://example.org/people#joebob</span>",
+...
+</ins>
+}
+</pre>
+<p>
+The
+example
+above
+would
+set
+the
+subject
+to
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<code>
+http://example.org/people#joebob
+</code>.
+</p>
+<p class="note">
+To
+ensure
+the
+best
+possible
+performance,
+it
+is
+a
+best
+practice
+to
+put
+the
+<code>
+@id
+</code>
+keyword
+before
+other
+key-value
+pairs
+in
+an
+object.
+If
+it
+isn't
+listed
+first,
+processors
+have
+to
+save
+each
+key-value
+pair
+until
+<code>
+@id
+</code>
+is
+processed
+before
+they
+can
+start
+generating
+triples.
+Not
+specifying
+the
+<code>
+@id
+</code>
+keyword
+first
+creates
+a
+memory
+and
+complexity
+burden
+for
+one-pass
+processors.
+</p>
+</div>
+<div class="section" id="specifying-the-type">
+<h3>
+<span class="secno">
+3.3
+</span>
+Specifying
+the
+Type
+</h3>
+<p>
+The
+type
+of
+a
+particular
+subject
+can
+be
+specified
+using
+the
+<code>
+@type
+</code>
+keyword.
+Specifying
+the
+type
+in
+this
+way
+will
+generate
+a
+triple
+of
+the
+form
+(subject,
+type,
+type-
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+).
+To
+be
+considered
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>,
+types
+<em title="must" class="rfc2119">
+must
+</em>
+be
+uniquely
+identified
+by
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+</p>
+<del class="diff-old">{
+...
+ "@id": "http://example.org/people#joebob",
+ "",
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "@id": "http://example.org/people#joebob",
+ "<span class="diff">@type</span>": "<span class="diff">http://xmlns.com/foaf/0.1/Person</span>",
+...
+</ins>
+}
+</pre>
+</div>
+<div class="section" id="strings">
+<h3>
+<span class="secno">
+3.4
+</span>
+Strings
+</h3>
+<p>
+Regular
+text
+strings,
+also
+referred
+to
+as
+<dfn id="dfn-string_value" title="string_value">
+string
+value
+</dfn>
+s,
+are
+easily
+expressed
+using
+regular
+JSON
+<a href="#dfn-string" title="string" class="tref internalDFN">
+string
+</a>
+s.
+</p>
+<del class="diff-old">{
+...
+ "name": "",
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "name": "<span class="diff">Mark Birbeck</span>",
+...
+</ins>
+}
+</pre>
+</div>
+<div class="section" id="string-internationalization">
+<h3>
+<span class="secno">
+3.5
+</span>
+String
+Internationalization
+</h3>
+<p>
+JSON-LD
+makes
+an
+assumption
+that
+strings
+with
+associated
+language
+encoding
+information
+are
+not
+very
+common
+when
+used
+in
+JavaScript
+and
+Web
+Services.
+Thus,
+it
+takes
+a
+little
+more
+effort
+to
+express
+strings
+with
+associated
+language
+information.
+</p>
+<del class="diff-old">{
+...
+ "name":
+ {
+ "@value": "花澄",
+ "@language": "ja"
+ }
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "name": <span class="diff">
+ {
+ "@value": "花澄",
+ "@language": "ja"
+ }</span>
+...
+</ins>
+}
+</pre>
+<p>
+The
+example
+above
+would
+generate
+a
+<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
+string
+value
+</a>
+for
+<em>
+花澄
+</em>
+and
+associate
+the
+<code>
+ja
+</code>
+language
+code
+with
+the
+triple
+that
+is
+generated.
+Languages
+<em title="must" class="rfc2119">
+must
+</em>
+be
+expressed
+in
+[
+<cite>
+<a href="#bib-BCP47" rel="biblioentry" class="bibref">
+BCP47
+</a>
+</cite>
+]
+format.
+</p>
+</div>
+<div class="section" id="typed-values">
+<h3>
+<span class="secno">
+3.6
+</span>
+Typed
+Values
+</h3>
+<p>
+A
+value
+with
+an
+associated
+type,
+also
+known
+as
+a
+<dfn id="dfn-typed_value" title="typed_value">
+typed
+value
+</dfn>,
+is
+indicated
+by
+associating
+a
+value
+with
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<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>
+keyword
+when
+defining
+a
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+within
+a
+<code>
+@context
+</code>
+section.
+</li>
+<li>
+By
+utilizing
+the
+expanded
+form
+for
+specifying
+objects.
+</li>
+<li>
+By
+using
+a
+native
+JSON
+type.
+</li>
+</ol>
+<p>
+The
+first
+example
+uses
+the
+<code>
+@type
+</code>
+keyword
+to
+express
+a
+typed
+value:
+</p>
+<del class="diff-old">{
+ "@context": {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "modified": {
+ "@id": "http://purl.org/dc/terms/modified",
+ "@type": "xsd:dateTime"
+ }
+ }
+...
+ "modified": "2010-05-29T14:17:39+02:00",
+...
+</del>
+<pre class="example">{
+ <span class="diff">"@context":
+<ins class="diff-chg"> {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "modified":
+ {
+ "@id": "http://purl.org/dc/terms/modified",
+ "@type": "xsd:dateTime"
+ }
+ }</span>
+...
+ "modified": "2010-05-29T14:17:39+02:00",
+...
+</ins>
+}
+</pre>
+<p>
+The
+second
+example
+uses
+the
+expanded
+form
+for
+specifying
+objects:
+</p>
+<del class="diff-old">{
+...
+ "modified": {
+ "@value": "2010-05-29T14:17:39+02:00",
+ "@type": "xsd:dateTime"
+ }
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "modified":
+</ins> <span class="diff">{
+<ins class="diff-chg">
+ "@value": "2010-05-29T14:17:39+02:00",
+ "@type": "xsd:dateTime"
+ }</span>
+...
+</ins>
+}
+</pre>
+<p>
+Both
+examples
+above
+would
+generate
+an
+object
+with
+the
+value
+of
+<code>
+2010-05-29T14:17:39+02:00
+</code>
+and
+the
+type
+of
+<code>
+http://www.w3.org/2001/XMLSchema#dateTime
+</code>.
+</p>
+<p>
+The
+third
+example
+uses
+a
+built-in
+native
+JSON
+type,
+a
+<a href="#dfn-number" title="number" class="tref internalDFN">
+number
+</a>,
+to
+express
+a
+type:
+</p>
+<del class="diff-old">{
+...
+ "@id": "http://example.org/people#joebob",
+ "age":
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "@id": "http://example.org/people#joebob",
+ "age": <span class="diff">31</span>
+...
+</ins>
+}
+</pre>
+<p>
+The
+example
+above
+is
+really
+just
+a
+shorthand
+for
+the
+following:
+</p>
+<del class="diff-old">{
+...
+ "@id": "http://example.org/people#joebob",
+ "age": {
+ "@value": "31",
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ }
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "@id": "http://example.org/people#joebob",
+ "age":
+</ins> <span class="diff">{
+<ins class="diff-chg">
+ "@value": "31",
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ }</span>
+...
+</ins>
+}
+</pre>
+<p class="note">
+The
+<code>
+@type
+</code>
+keyword
+is
+also
+used
+to
+associate
+a
+type
+with
+a
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>.
+Although
+the
+same
+keyword
+is
+used
+in
+both
+places,
+the
+concept
+of
+an
+<em>
+object
+type
+</em>
+and
+a
+<em>
+value
+type
+</em>
+are
+different.
+This
+is
+similar
+to
+object-oriented
+programming
+languages
+where
+both
+scalar
+and
+structured
+types
+use
+the
+same
+class
+inheritance
+mechanism,
+even
+though
+scalar
+types
+and
+structured
+types
+are
+inherently
+different.
+</p>
+</div>
+<div class="section" id="multiple-objects-for-a-single-property">
+<h3>
+<span class="secno">
+3.7
+</span>
+Multiple
+Objects
+for
+a
+Single
+Property
+</h3>
+<p>
+A
+JSON-LD
+author
+can
+express
+multiple
+values
+in
+a
+compact
+way
+by
+using
+<a href="#dfn-array" title="array" class="tref internalDFN">
+array
+</a>
+s.
+If
+a
+subject
+has
+multiple
+values
+for
+the
+same
+property,
+the
+author
+<em title="may" class="rfc2119">
+may
+</em>
+express
+each
+property
+as
+an
+<a href="#dfn-array" title="array" class="tref internalDFN">
+array
+</a>.
+</p>
+<p class="note">
+In
+JSON-LD,
+multiple
+objects
+on
+a
+property
+are
+not
+ordered.
+This
+is
+because
+graphs
+are
+inherently
+unordered
+data
+structures.
+To
+learn
+more
+about
+creating
+ordered
+collections
+in
+JSON-LD,
+see
+the
+section
+on
+<a href="#lists">
+Lists
+</a>.
+</p>
+<del class="diff-old">{
+...
+ "@id": "http://example.org/people#joebob",
+ "nick": ,
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "@id": "http://example.org/people#joebob",
+ "nick": <span class="diff">[ "joe", "bob", "jaybee" ]</span>,
+...
+</ins>
+}
+</pre>
+<p>
+The
+markup
+shown
+above
+would
+generate
+the
+following
+triples:
+</p>
+<del class="diff-old"><http://example.org/people#joebob>
+ <http://xmlns.com/foaf/0.1/nick>
+ "joe" .
+<http://example.org/people#joebob>
+ <http://xmlns.com/foaf/0.1/nick>
+ "bob" .
+<http://example.org/people#joebob>
+ <http://xmlns.com/foaf/0.1/nick>
+"jaybee"
+</del>
+<pre class="example"><http://example.org/people#joebob>
+<ins class="diff-chg"> <http://xmlns.com/foaf/0.1/nick>
+ "joe" .
+<http://example.org/people#joebob>
+ <http://xmlns.com/foaf/0.1/nick>
+ "bob" .
+<http://example.org/people#joebob>
+ <http://xmlns.com/foaf/0.1/nick>
+"jaybee"
+</ins>
+.
+</pre>
+</div>
+<div class="section" id="multiple-values-for-a-single-property">
+<h3>
+<span class="secno">
+3.8
+</span>
+Multiple
+Values
+for
+a
+Single
+Property
+</h3>
+<p>
+Multiple
+<a href="#dfn-value" title="value" class="tref internalDFN">
+value
+</a>
+s
+may
+also
+be
+expressed
+using
+the
+expanded
+form
+for
+<a href="#dfn-object" title="object" class="tref internalDFN">
+object
+</a>
+s:
+</p>
+<del class="diff-old">{
+ "@id": "http://example.org/articles/8",
+ "dc:title":
+ [
+ {"@value": "Das Kapital", "@language": "de"},
+ {"@value": "Capital", "@language": "en"}
+ ]
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@id": "http://example.org/articles/8",
+ "dc:title": <span class="diff">
+ [
+ {
+ "@value": "Das Kapital",
+ "@language": "de"
+ },
+ {
+ "@value": "Capital",
+ "@language": "en"
+ }
+ ]</span>
+</ins>
+}
+</pre>
+<p>
+The
+markup
+shown
+above
+would
+generate
+the
+following
+triples:
+</p>
+<del class="diff-old"><http://example.org/articles/8>
+ <http://purl.org/dc/terms/title>
+ "Das Kapital"@de .
+<http://example.org/articles/8>
+ <http://purl.org/dc/terms/title>
+"Capital"@en
+</del>
+<pre class="example"><http://example.org/articles/8>
+<ins class="diff-chg"> <http://purl.org/dc/terms/title>
+ "Das Kapital"@de .
+<http://example.org/articles/8>
+ <http://purl.org/dc/terms/title>
+"Capital"@en
+</ins>
+.
+</pre>
+</div>
+<div class="section" id="lists">
+<h3>
+<span class="secno">
+3.9
+</span>
+Lists
+</h3>
+<p>
+Because
+graphs
+do
+not
+describe
+ordering
+for
+links
+between
+nodes,
+in
+contrast
+to
+plain
+JSON,
+multi-valued
+properties
+in
+JSON-LD
+do
+not
+provide
+an
+ordering
+of
+the
+listed
+objects.
+For
+example,
+consider
+the
+following
+simple
+document:
+</p>
+<del class="diff-old"> {
+...
+ "@id": "http://example.org/people#joebob",
+ "nick": ,
+...
+</del>
+ <pre class="example">{
+<ins class="diff-chg">...
+ "@id": "http://example.org/people#joebob",
+ "nick": <span class="diff">[ "joe", "bob", "jaybee" ]</span>,
+...
+</ins>
+}
+</pre>
+<p>
+This
+results
+in
+three
+triples
+being
+generated,
+each
+relating
+the
+subject
+to
+an
+individual
+object,
+with
+no
+inherent
+order.
+</p>
+<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>
+keyword
+as
+follows:
+</p>
+<del class="diff-old"> {
+...
+ "@id": "http://example.org/people#joebob",
+ "foaf:nick": ,
+...
+</del>
+ <pre class="example">{
+<ins class="diff-chg">...
+ "@id": "http://example.org/people#joebob",
+ "foaf:nick":
+</ins> <span class="diff">{
+<ins class="diff-chg">
+ "@list": [ "joe", "bob", "jaybee" ]
+ }</span>,
+...
+</ins>
+}
+</pre>
+<p>
+This
+describes
+the
+use
+of
+this
+<a href="#dfn-array" title="array" class="tref internalDFN">
+array
+</a>
+as
+being
+ordered,
+and
+order
+is
+maintained
+through
+alternate
+representations
+as
+described
+in
+[
+<cite>
+<a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref">
+JSON-LD-API
+</a>
+</cite>
+].
+If
+every
+use
+of
+a
+given
+multi-valued
+property
+is
+a
+list,
+this
+may
+be
+abbreviated
+by
+<del class="diff-old">adding
+a
+</del>
+<ins class="diff-chg">setting
+</ins>
+<code>
+<del class="diff-old">@type
+</del>
+<ins class="diff-chg">@container
+</ins>
+</code>
+<del class="diff-old">coercion
+</del>
+<ins class="diff-chg">to
+</ins><code><ins class="diff-chg">
+@list
+</ins></code><ins class="diff-chg">
+in
+the
+</ins><a href="#dfn-context" title="context" class="tref internalDFN"><ins class="diff-chg">
+context
+</ins>
+</a>:
+</p>
+<del class="diff-old"> {
+ "@context": {
+ ...
+ "nick": {
+ "@id": "http://xmlns.com/foaf/0.1/nick",
+ "@list": true
+ }
+},
+...
+ "@id": "http://example.org/people#joebob",
+ "nick": ,
+...
+</del>
+ <pre class="example">{
+ <span class="diff">"@context":
+<ins class="diff-chg"> {
+ ...
+ "nick":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/nick",
+ "@container": "@list"
+ }
+ }</span>,
+...
+ "@id": "http://example.org/people#joebob",
+ "nick": <span class="diff">[ "joe", "bob", "jaybee" ]</span>,
+...
+</ins>
+}
+</pre>
+<p>
+List
+coercion
+is
+specified
+within
+an
+expanded
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+definition
+using
+the
+<code>
+<del class="diff-old">@list
+</del>
+<ins class="diff-chg">@container
+</ins>
+</code>
+key.
+The
+value
+of
+this
+key,
+if
+present,
+<em title="must" class="rfc2119">
+must
+</em>
+be
+<code>
+<del class="diff-old">true
+</del>
+<ins class="diff-chg">@list
+</ins>
+</code>.
+This
+indicates
+that
+array
+values
+of
+keys
+coerced
+as
+<code>
+@list
+</code>
+are
+to
+be
+serialized
+as
+a
+<a href="#lists">
+List
+</a>.
+</p>
+<p class="note">
+<ins class="diff-new">List
+of
+lists
+are
+not
+allowed
+in
+this
+version
+of
+JSON-LD.
+If
+a
+list
+of
+lists
+is
+detected,
+a
+JSON-LD
+processor
+will
+throw
+an
+exception.
+</ins></p>
+</div>
+</div>
+<div class="section" id="advanced-concepts">
+<h2>
+<span class="secno">
+4.
+</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
+sections
+outline
+the
+features
+that
+are
+specific
+to
+JSON-LD.
+</p>
+<div class="section" id="compact-iris">
+<h3>
+<span class="secno">
+4.1
+</span>
+<del class="diff-old">Prefixes
+</del>
+<ins class="diff-chg">Compact
+IRIs
+</ins>
+</h3>
+<p>
+<a href="#dfn-term" title="term" class="tref internalDFN">
+Term
+</a>
+s
+in
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+documents
+may
+draw
+from
+a
+number
+of
+different
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabularies
+</a>.
+At
+times,
+declaring
+every
+single
+term
+that
+a
+document
+uses
+can
+require
+the
+developer
+to
+declare
+tens,
+if
+not
+hundreds
+of
+potential
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+that
+are
+used
+across
+an
+application.
+This
+is
+a
+concern
+for
+at
+least
+three
+reasons;
+the
+first
+is
+the
+cognitive
+load
+on
+the
+developer
+of
+remembering
+all
+of
+the
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s,
+the
+second
+is
+the
+serialized
+size
+of
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+if
+it
+is
+specified
+inline,
+the
+third
+is
+future-proofing
+embedded
+application
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+s
+that
+may
+not
+be
+easy
+to
+change
+after
+they
+are
+deployed.
+In
+order
+to
+address
+these
+issues,
+the
+concept
+of
+a
+<del class="diff-old">prefix
+</del>
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+<ins class="diff-chg">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</a>
+<del class="diff-old">mechanism
+</del>
+is
+introduced.
+</p>
+<p>
+A
+<del class="diff-old">prefix
+</del>
+<dfn id="dfn-compact_iri" title="compact_iri">
+<ins class="diff-chg">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr>
+</dfn>
+is
+a
+<del class="diff-old">compact
+</del>
+way
+of
+expressing
+<del class="diff-old">a
+base
+</del>
+<ins class="diff-chg">an
+</ins><a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">for
+</del>
+<ins class="diff-chg">using
+</ins>
+a
+<del class="diff-old">vocabulary
+.
+</del>
+<em>
+<ins class="diff-chg">prefix
+</ins></em><ins class="diff-chg">
+and
+</ins><em><ins class="diff-chg">
+suffix
+</ins></em>.
+Generally,
+these
+prefixes
+are
+used
+by
+concatenating
+the
+<em>
+prefix
+</em>
+and
+a
+<em>
+suffix
+</em>,
+which
+is
+separated
+by
+a
+colon
+(
+<code>:
+</code>
+).
+The
+<dfn id="dfn-prefix" title="prefix">
+prefix
+</dfn>
+is
+a
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+taken
+from
+the
+<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
+active
+context
+</a>
+and
+is
+a
+short
+string
+identifying
+a
+particular
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<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
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<code>
+http://xmlns.com/foaf/0.1/
+</code>.
+A
+developer
+may
+append
+any
+of
+the
+FOAF
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+terms
+to
+the
+end
+of
+the
+prefix
+to
+specify
+a
+short-hand
+version
+of
+the
+<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+for
+the
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+term.
+For
+example,
+<code>
+foaf:name
+</code>
+would
+be
+expanded
+out
+to
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<code>
+http://xmlns.com/foaf/0.1/name
+</code>.
+Instead
+of
+having
+to
+remember
+and
+type
+out
+the
+entire
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>,
+the
+developer
+can
+instead
+use
+the
+prefix
+in
+their
+JSON-LD
+markup.
+</p>
+<p>
+<del class="diff-old">To
+generate
+an
+</del>
+<ins class="diff-chg">Terms
+are
+interpreted
+as
+</ins><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><ins class="diff-chg">
+compact
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+<del class="diff-old">out
+of
+a
+</del>
+<ins class="diff-chg">s
+if
+they
+contain
+at
+least
+one
+colon
+and
+the
+first
+colon
+is
+not
+followed
+by
+two
+slashes
+(
+</ins>
+<code>
+<del class="diff-old">prefix:suffix
+</del>
+<ins class="diff-chg">//
+</ins></code>,<ins class="diff-chg">
+as
+in
+</ins><code><ins class="diff-chg">
+http://example.com
+</ins>
+</code>
+<del class="diff-old">construct,
+</del>
+<ins class="diff-chg">).
+To
+generate
+the
+full
+</ins><a href="#dfn-iri" title="iri" class="tref internalDFN"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,
+the
+value
+is
+first
+split
+into
+a
+<em>
+prefix
+</em>
+and
+<em>
+suffix
+</em>
+at
+the
+first
+occurrence
+of
+a
+colon
+(
+<code>:
+</code>
+).
+If
+the
+<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
+active
+context
+</a>
+contains
+a
+term
+mapping
+for
+<em>
+prefix
+</em>,
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+is
+generated
+by
+prepending
+the
+mapped
+<em>
+prefix
+</em>
+to
+the
+(possibly
+empty)
+<em>
+suffix
+</em>
+using
+textual
+concatenation.
+If
+no
+prefix
+mapping
+is
+defined,
+the
+value
+is
+used
+directly
+as
+an
+<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
+<ins class="diff-new">absolute
+</ins>
+<abbr title="Internationalized Resource Identifier">
+IRI
+<del class="diff-old">.
+</del>
+</abbr>
+</a>.
+If
+the
+prefix
+is
+an
+underscore
+(
+<code>
+_
+</code>
+),
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+remains
+unchanged.
+<ins class="diff-new">This
+effectively
+means
+that
+every
+term
+containing
+a
+colon
+will
+be
+interpreted
+by
+a
+JSON-LD
+processor
+as
+an
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>.
+</p>
+<p>
+The
+ability
+to
+use
+<del class="diff-old">prefix
+</del>
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+<ins class="diff-chg">compact
+IRIs
+</ins>
+</a>
+<del class="diff-old">es
+</del>
+reduces
+the
+need
+for
+developers
+to
+declare
+every
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+term
+that
+they
+intend
+to
+use
+in
+the
+JSON-LD
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>.
+This
+reduces
+stand-alone
+JSON-LD
+document
+serialization
+size
+because
+every
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+term
+need
+not
+be
+declared
+in
+the
+embedded
+context.
+<del class="diff-old">Prefix
+</del>
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+<ins class="diff-chg">Compact
+IRIs
+</ins>
+</a>
+also
+reduces
+the
+cognitive
+load
+on
+the
+developer.
+It
+is
+far
+easier
+to
+remember
+<code>
+foaf:name
+</code>
+than
+it
+is
+to
+remember
+<code>
+http://xmlns.com/foaf/0.1/name
+</code>.
+The
+use
+of
+prefixes
+also
+ensures
+that
+a
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+document
+does
+not
+have
+to
+be
+updated
+in
+lock-step
+with
+an
+externally
+defined
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>.
+Without
+prefixes,
+a
+developer
+would
+need
+to
+keep
+their
+application
+context
+terms
+in
+lock-step
+with
+an
+externally
+defined
+vocabulary.
+Rather,
+by
+just
+declaring
+the
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+prefix,
+one
+can
+use
+new
+terms
+as
+they're
+declared
+without
+having
+to
+update
+the
+application's
+JSON-LD
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>.
+</p>
+<p>
+Consider
+the
+following
+example:
+</p>
+<del class="diff-old"> {
+ "@context": {
+
+
+ },
+ "@id": "http://example.org/library",
+ "@type": ,
+ : {
+ "@id": "http://example.org/library/the-republic",
+ "@type": ,
+ : "Plato",
+ : "The Republic",
+ : {
+ "@id": "http://example.org/library/the-republic#introduction",
+ "@type": ,
+ : "An introductory chapter on The Republic.",
+ : "The Introduction"
+ }
+ }
+</del>
+ <pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+</ins> <span class="diff">"dc": "http://purl.org/dc/elements/1.1/",</span>
+ <span class="diff">"ex": "http://example.org/vocab#"</span>
+<ins class="diff-chg">
+ },
+ "@id": "http://example.org/library",
+ "@type": <span class="diff">"ex:Library"</span>,
+</ins> <span class="diff">"ex:contains"</span>:
+<ins class="diff-chg">
+ {
+ "@id": "http://example.org/library/the-republic",
+ "@type": <span class="diff">"ex:Book"</span>,
+</ins> <span class="diff">"dc:creator"</span>: "Plato",
+ <span class="diff">"dc:title"</span>: "The Republic",
+ <span class="diff">"ex:contains"</span>:
+<ins class="diff-chg">
+ {
+ "@id": "http://example.org/library/the-republic#introduction",
+ "@type": <span class="diff">"ex:Chapter"</span>,
+</ins> <span class="diff">"dc:description"</span>: "An introductory chapter on The Republic.",
+ <span class="diff">"dc:title"</span>: "The Introduction"
+<ins class="diff-chg">
+ }
+ }
+</ins>
+}
+</pre>
+<p>
+In
+this
+example,
+two
+different
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabularies
+</a>
+are
+referred
+to
+using
+prefixes.
+Those
+prefixes
+are
+then
+used
+as
+type
+and
+property
+values
+using
+the
+<ins class="diff-new">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>
+<code>
+prefix:suffix
+</code>
+notation.
+</p>
+<p>
+<del class="diff-old">Prefixes,
+</del>
+<ins class="diff-chg">It's
+also
+possible
+to
+use
+compact
+IRIs
+within
+the
+context
+as
+shown
+in
+the
+following
+example:
+</ins></p><p> </p><pre class="example">{
+<ins class="diff-chg">
+ "@context":
+ {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "foaf": "http://xmlns.com/foaf/0.1/",
+</ins> <span class="diff">"foaf:homepage"</span>: { "@type": "@id" },
+<ins class="diff-chg">
+ "picture": { "@id": <span class="diff">"foaf:depiction"</span>, "@type": "@id" }
+ },
+ "@subject": "http://me.markus-lanthaler.com/",
+ "@type": "foaf:Person",
+ "foaf:name": "Markus Lanthaler",
+ "foaf:homepage": "http://www.markus-lanthaler.com/",
+ "picture": "http://twitter.com/account/profile_image/markuslanthaler"
+}
+</ins></pre><p><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><ins class="diff-chg">
+Compact
+IRIs
+</ins></a>,
+also
+known
+as
+CURIEs,
+are
+defined
+more
+formally
+in
+RDFa
+Core
+1.1,
+<cite>
+<a href="http://www.w3.org/TR/rdfa-core/#s_curies">
+Section
+6
+<del class="diff-old">"CURIE
+</del>
+<ins class="diff-chg">"CURIE
+</ins>
+Syntax
+<del class="diff-old">Definition"
+</del>
+<ins class="diff-chg">Definition"
+</ins>
+</a>
+</cite>
+[
+<cite>
+<a href="#bib-RDFA-CORE" rel="biblioentry" class="bibref">
+RDFA-CORE
+</a>
+</cite>
+].
+JSON-LD
+does
+not
+support
+the
+square-bracketed
+CURIE
+syntax
+as
+the
+mechanism
+is
+not
+required
+to
+disambiguate
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s
+in
+a
+JSON-LD
+document
+like
+it
+is
+in
+HTML
+documents.
+</p>
+</div>
+<div class="section" id="external-contexts">
+<h3>
+<span class="secno">
+4.2
+</span>
+External
+Contexts
+</h3>
+<p>
+Authors
+may
+choose
+to
+declare
+JSON-LD
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+s
+in
+external
+documents
+to
+promote
+re-use
+of
+contexts
+as
+well
+as
+reduce
+the
+size
+of
+JSON-LD
+documents.
+</p>
+<p>
+In
+order
+to
+use
+an
+external
+context,
+an
+author
+<del class="diff-old">may
+</del>
+<em title="must" class="rfc2119">
+<ins class="diff-chg">must
+</ins>
+</em>
+specify
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+to
+a
+valid
+JSON-LD
+document.
+The
+referenced
+document
+<em title="must" class="rfc2119">
+must
+</em>
+have
+a
+top-level
+<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
+JSON
+Object
+</a>.
+The
+value
+of
+any
+<code>
+@context
+</code>
+key
+within
+that
+object
+is
+substituted
+for
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+within
+the
+referencing
+document
+to
+have
+the
+same
+effect
+as
+if
+the
+value
+were
+specified
+inline
+within
+the
+referencing
+document.
+</p>
+<p>
+The
+following
+example
+demonstrates
+the
+use
+of
+an
+external
+context:
+</p>
+<del class="diff-old">{
+ ,
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</del>
+<pre class="example">{
+ <span class="diff">"@context": "http://json-ld.org/contexts/person"</span>,
+<ins class="diff-chg"> "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</ins>
+}
+</pre>
+<p>
+Authors
+may
+also
+import
+multiple
+contexts
+or
+a
+combination
+of
+external
+and
+local
+contexts
+by
+specifying
+a
+list
+of
+contexts:
+</p>
+<del class="diff-old">{
+ "@context":
+ [
+ "http://json-ld.org/contexts/person",
+ { "foaf": "http://xmlns.com/foaf/0.1/" },
+ "http://json-ld.org/contexts/event",
+ ]
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+ "celebrates":
+ {
+ "@type": "Event",
+ "description": "International Talk Like a Pirate Day",
+ "date": "R/2011-09-19"
+ }
+</del>
+<pre class="example">{
+ <span class="diff">"@context":
+<ins class="diff-chg"> [
+ "http://json-ld.org/contexts/person",
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "http://json-ld.org/contexts/event",
+ ]</span>
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</ins> <span class="diff">"celebrates":
+<ins class="diff-chg">
+ {
+ "@type": "Event",
+ "description": "International Talk Like a Pirate Day",
+ "date": "R/2011-09-19"
+ }</span>
+</ins>
+}
+</pre>
+<p>
+Each
+context
+in
+a
+list
+will
+be
+evaluated
+in-order.
+Duplicate
+mappings
+among
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+s
+<em title="must" class="rfc2119">
+must
+</em>
+be
+overwritten
+on
+a
+last-defined-overrides
+basis.
+The
+context
+list
+<em title="must" class="rfc2119">
+must
+</em>
+contain
+either
+de-referenceable
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s
+or
+<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
+JSON
+Object
+</a>
+s
+that
+conform
+to
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+syntax
+as
+described
+in
+this
+document.
+</p>
+<p>
+An
+author
+may
+nest
+contexts
+within
+<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
+JSON
+object
+</a>
+s,
+with
+the
+more
+deeply
+nested
+contexts
+overriding
+the
+values
+in
+previously
+defined
+contexts:
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ "name": "http://example.com/person#name",
+ "details": "http://example.com/person#details"
+ },
+ "": "Markus",
+ ...
+ "details":
+ {
+
+ "": "Acme, Ltd."
+ }
+</del>
+<pre class="example">{
+ <span class="diff">"@context":
+<ins class="diff-chg"> {
+ "name": "http://example.com/person#name",
+ "details": "http://example.com/person#details"
+ },</span>
+ "<span class="diff">name</span>": "Markus Lanthaler",
+ ...
+ "details":
+ {
+</ins> <span class="diff">"@context": { "name": "http://example.com/organization#name" },</span>
+<ins class="diff-chg">
+ "<span class="diff">name</span>": "Graz University of Technology"
+ }
+</ins>
+}
+</pre>
+<p>
+In
+the
+example
+above,
+the
+<code>
+name
+</code>
+prefix
+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
+the
+JSON
+object
+has
+legacy
+applications
+using
+the
+structure
+of
+the
+object.
+</p>
+<p>
+External
+JSON-LD
+context
+documents
+<em title="may" class="rfc2119">
+may
+</em>
+contain
+extra
+information
+located
+outside
+of
+the
+<code>
+@context
+</code>
+key,
+such
+as
+documentation
+about
+the
+<del class="diff-old">prefix
+</del>
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+<ins class="diff-chg">prefixes
+</ins>
+</a>
+<del class="diff-old">es
+</del>
+declared
+in
+the
+document.
+When
+importing
+a
+<code>
+@context
+</code>
+value
+from
+an
+external
+JSON-LD
+context
+document,
+any
+extra
+information
+contained
+outside
+of
+the
+<code>
+@context
+</code>
+value
+<em title="must" class="rfc2119">
+must
+</em>
+be
+discarded.
+It
+is
+also
+<em title="recommended" class="rfc2119">
+recommended
+</em>
+that
+a
+human-readable
+document
+encoded
+in
+HTML+RDFa
+[
+<cite>
+<a href="#bib-HTML-RDFA" rel="biblioentry" class="bibref">
+HTML-RDFA
+</a>
+</cite>
+]
+or
+other
+Linked
+Data
+compatible
+format
+is
+served
+as
+well
+to
+explain
+the
+correct
+usage
+of
+the
+JSON-LD
+context
+document.
+</p>
+</div>
+<div class="section" id="referencing-contexts-from-json-documents">
+<h3>
+<span class="secno">
+4.3
+</span>
+<ins class="diff-new">Referencing
+Contexts
+from
+JSON
+Documents
+</ins></h3><p><ins class="diff-new">
+Ordinary
+JSON
+documents
+can
+be
+transformed
+in
+JSON-LD
+documents
+by
+referencing
+to
+an
+external
+JSON-LD
+</ins><a href="#dfn-context" title="context" class="tref internalDFN"><ins class="diff-new">
+context
+</ins></a><ins class="diff-new">
+in
+an
+HTTP
+Link
+Header.
+Doing
+this
+allows
+JSON
+to
+be
+unambiguously
+machine-readable
+without
+requiring
+developers
+to
+drastically
+change
+their
+workflow
+and
+provides
+an
+upgrade
+path
+for
+existing
+infrastructure
+without
+breaking
+existing
+clients
+that
+rely
+on
+the
+</ins><code><ins class="diff-new">
+application/json
+</ins></code><ins class="diff-new">
+media
+type.
+</ins></p><p><ins class="diff-new">
+In
+order
+to
+use
+an
+external
+context
+with
+an
+ordinary
+JSON
+document,
+an
+author
+</ins><em title="must" class="rfc2119"><ins class="diff-new">
+must
+</ins></em><ins class="diff-new">
+specify
+an
+</ins><a href="#dfn-iri" title="iri" class="tref internalDFN"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+to
+a
+valid
+JSON-LD
+document
+in
+an
+HTTP
+Link
+Header
+[
+</ins><cite><a href="#bib-RFC5988" rel="biblioentry" class="bibref"><ins class="diff-new">
+RFC5988
+</ins></a></cite><ins class="diff-new">
+]
+using
+the
+</ins><code><ins class="diff-new">
+describedby
+</ins></code><ins class="diff-new">
+link
+relation.
+The
+referenced
+document
+</ins><em title="must" class="rfc2119"><ins class="diff-new">
+must
+</ins></em><ins class="diff-new">
+have
+a
+top-level
+</ins><a href="#dfn-json_object" title="json_object" class="tref internalDFN"><ins class="diff-new">
+JSON
+Object
+</ins></a>.<ins class="diff-new">
+The
+</ins><code><ins class="diff-new">
+@context
+</ins></code><ins class="diff-new">
+subtree
+within
+that
+object
+is
+added
+to
+the
+top-level
+object
+of
+the
+referencing
+document.
+If
+an
+array
+is
+at
+the
+top-level
+of
+the
+referencing
+document
+and
+its
+items
+are
+objects,
+the
+</ins><code><ins class="diff-new">
+@context
+</ins></code><ins class="diff-new">
+subtree
+is
+added
+to
+all
+array
+items.
+All
+extra
+information
+located
+outside
+of
+the
+</ins><code><ins class="diff-new">
+@context
+</ins></code><ins class="diff-new">
+subtree
+in
+the
+referenced
+document
+</ins><em title="must" class="rfc2119"><ins class="diff-new">
+must
+</ins></em><ins class="diff-new">
+be
+discarded.
+</ins></p><p><ins class="diff-new">
+The
+following
+example
+demonstrates
+the
+use
+of
+an
+external
+context
+with
+an
+ordinary
+JSON
+document:
+</ins></p><pre class="example">GET /ordinary-json-document.json HTTP/1.1
+<ins class="diff-new">
+Host: example.com
+Accept: application/json,*/*;q=0.1
+
+----------------------------------------------------
+
+HTTP/1.0 200 OK
+...
+Content-Type: application/json
+</ins><span class="diff">Link: <http://json-ld.org/contexts/person>; rel="describedby"; type="application/ld+json"</span>
+<ins class="diff-new">
+
+{
+ "name": "Markus Lanthaler",
+ "homepage": "http://www.markus-lanthaler.com/",
+ "depiction": "http://twitter.com/account/profile_image/markuslanthaler"
+}
+</ins></pre><p class="note"><ins class="diff-new">
+JSON-LD
+documents
+</ins><em title="must" class="rfc2119"><ins class="diff-new">
+must
+</ins></em><ins class="diff-new">
+have
+all
+context
+information,
+including
+references
+to
+external
+contexts,
+within
+the
+body
+of
+the
+document.
+</ins></p></div><div class="section" id="default-language"><h3><span class="secno"><ins class="diff-new">
+4.4
+</ins></span>
+Default
+Language
+</h3>
+<p>
+JSON-LD
+allows
+a
+default
+value
+to
+use
+as
+the
+language
+for
+<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
+string
+value
+</a>
+s.
+It
+is
+commonly
+the
+case
+that
+documents
+are
+written
+using
+a
+single
+language.
+As
+described
+in
+<a href="string-internationalization">
+String
+Internationalization
+</a>,
+a
+language-tagged
+value
+<em title="may" class="rfc2119">
+may
+</em>
+be
+specified
+as
+follows:
+</p>
+<del class="diff-old">{
+...
+ "name":
+ {
+ "@value": "花澄",
+ "@language": "ja"
+ }
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> ...
+ "name":
+</ins> <span class="diff">{
+<ins class="diff-chg">
+ "@value": "花澄",
+ "@language": "ja"
+ }</span>
+</ins>
+}
+</pre>
+<p>
+It
+is
+also
+possible
+to
+apply
+a
+particular
+language
+code
+to
+all
+<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
+string
+value
+</a>
+s
+by
+setting
+the
+<code>
+@language
+</code>
+key
+in
+the
+<code>
+@context
+</code>:
+</p>
+<del class="diff-old">{
+ "@context:"
+ {
+ "@language": "ja"
+ },
+...
+ "name":
+ "occupation":
+...
+</del>
+<pre class="example">{
+ <span class="diff">"@context":
+<ins class="diff-chg"> {
+ ...
+ "@language": "ja"
+ },</span>
+ "name": <span class="diff">"花澄"</span>,
+ "occupation": <span class="diff">"科学者"</span>
+</ins>
+}
+</pre>
+<p>
+The
+example
+above
+would
+generate
+a
+<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
+string
+value
+</a>
+for
+<em>
+花澄
+</em>
+and
+<em>
+科学者
+</em>
+and
+associate
+the
+<code>
+ja
+</code>
+language
+code
+with
+each
+value.
+</p>
+<p>
+It
+is
+possible
+to
+override
+the
+default
+language
+by
+using
+the
+expanded
+form
+of
+a
+value:
+</p>
+<del class="diff-old">{
+ "@context:"
+ {
+ "@language": "ja"
+ },
+...
+ "name": "花澄"
+ "occupation":
+ {
+ "@value": "Scientist",
+ "@language": "en"
+ }
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ ...
+ "@language": "ja"
+ },
+ "name": "花澄",
+ "occupation":
+</ins> <span class="diff">{
+<ins class="diff-chg">
+ "@value": "Scientist",
+ "@language": "en"
+ }</span>
+</ins>
+}
+</pre>
+<p>
+It
+is
+also
+possible
+to
+override
+the
+default
+language
+and
+specify
+a
+plain
+value
+by
+omitting
+the
+<code>
+@language
+</code>
+tag
+when
+expressing
+the
+expanded
+value:
+</p>
+<del class="diff-old">{
+ "@context:"
+ {
+ "@language": "ja"
+ },
+...
+ "name": "花澄"
+ "occupation":
+ {
+ "@value": "Ninja"
+ }
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ ...
+ "@language": "ja"
+ },
+ "name": "花澄",
+ "occupation": <span class="diff">
+ {
+ "@value": "Ninja"
+ }</span>
+</ins>
+}
+</pre>
+<p>
+Object
+<a href="#dfn-property" title="property" class="tref internalDFN">
+properties
+</a>
+that
+use
+the
+expanded
+form
+are
+considered
+explicitly
+defined.
+The
+<code>
+@language
+</code>
+keyword,
+when
+used
+in
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>,
+<em title="must" class="rfc2119">
+must
+</em>
+only
+be
+applied
+to
+<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
+string
+value
+</a>
+s.
+That
+is,
+<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
+string
+value
+</a>
+s
+expressed
+in
+expanded
+form
+are
+not
+affected
+by
+the
+<code>
+@language
+</code>
+keyword,
+when
+it
+is
+used
+in
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>.
+</p>
+<p>
+<ins class="diff-new">To
+clear
+the
+default
+language
+for
+a
+subtree,
+</ins><code><ins class="diff-new">
+@language
+</ins></code><ins class="diff-new">
+can
+be
+set
+to
+</ins><code><ins class="diff-new">
+null
+</ins></code><ins class="diff-new">
+in
+a
+</ins><a href="#dfn-local_context" title="local_context" class="tref internalDFN"><ins class="diff-new">
+local
+context
+</ins></a><ins class="diff-new">
+as
+follows:
+</ins></p><pre class="example">{
+<ins class="diff-new">
+ "@context":
+ {
+ ...
+ "@language": "ja"
+ },
+ "name": "花澄",
+ "details":
+ {
+</ins><span class="diff"> "@context":
+<ins class="diff-new">
+ {
+ "@language": null
+ },</span>
+ "occupation": "Ninja"
+ }
+}
+</ins></pre>
+</div>
+<div class="section" id="expanded-term-definition">
+<h3>
+<span class="secno">
+<del class="diff-old">4.4
+</del>
+<ins class="diff-chg">4.5
+</ins>
+</span>
+Expanded
+Term
+Definition
+</h3>
+<p>
+Within
+a
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+definition,
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+<em title="may" class="rfc2119">
+may
+</em>
+be
+defined
+using
+an
+expanded
+notation
+to
+allow
+for
+additional
+information
+associated
+with
+the
+term
+to
+be
+specified
+(see
+<a href="#type-coerceion">
+Type
+Coercion
+</a>
+and
+<a href="#lists">
+Lists
+</a>
+).
+</p>
+<p>
+Instead
+of
+using
+a
+string
+representation
+of
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>,
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<em title="may" class="rfc2119">
+may
+</em>
+be
+specified
+using
+an
+object
+having
+an
+<code>
+@id
+</code>
+key.
+The
+value
+of
+the
+<code>
+@id
+</code>
+key
+<em title="must" class="rfc2119">
+must
+</em>
+be
+either
+a
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+prefix
+</a>:suffix
+value,
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+Type
+information
+may
+be
+specified
+</p>
+<del class="diff-old">{
+ "@context": {
+ "foaf": ,
+ "name": ,
+ "homepage": ,
+ "depiction":
+ },
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "foaf": <span class="diff">{ "@id": "http://xmlns.com/foaf/0.1/" }</span>,
+ "name": <span class="diff">{ "@id": "http://xmlns.com/foaf/0.1/name" }</span>,
+ "homepage": <span class="diff">{ "@id": "foaf:homepage" }</span>,
+ "depiction": <span class="diff">{ "@id": "foaf:depiction" }</span>
+ },
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/",
+ "depiction": "http://twitter.com/account/profile_image/manusporny"
+</ins>
+}
+</pre>
+</div>
+<div class="section" id="automatic-typing">
+<h3>
+<span class="secno">
+<del class="diff-old">4.5
+</del>
+<ins class="diff-chg">4.6
+</ins>
+</span>
+Automatic
+Typing
+</h3>
+<p>
+Since
+JSON
+is
+capable
+of
+expressing
+typed
+information
+such
+as
+doubles,
+integers,
+and
+boolean
+values.
+As
+demonstrated
+below,
+JSON-LD
+utilizes
+that
+information
+to
+create
+<a href="#dfn-typed_value" title="typed_value" class="tref internalDFN">
+typed
+value
+</a>
+s:
+</p>
+<del class="diff-old">{
+...
+ // The following two values are automatically converted to a type of xsd:double
+ // and both values are equivalent to each other.
+ "measure:cups": ,
+ "measure:cups": ,
+ // The following value is automatically converted to a type of xsd:double as well
+ "space:astronomicUnits": ,
+ // The following value is never converted to a language-native type
+ "measure:stones": ,
+ // This value is automatically converted to having a type of xsd:integer
+ "chem:protons": ,
+ // This value is automatically converted to having a type of xsd:boolean
+ "sensor:active": ,
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ // The following two values are automatically converted to a type of xsd:double
+ // and both values are equivalent to each other.
+ "measure:cups": <span class="diff">5.3</span>,
+ "measure:cups": <span class="diff">5.3e0</span>,
+ // The following value is automatically converted to a type of xsd:double as well
+ "space:astronomicUnits": <span class="diff">6.5e73</span>,
+ // The following value is never converted to a language-native type
+ "measure:stones": <span class="diff">{ "@value": "4.8", "@type": "xsd:decimal" }</span>,
+ // This value is automatically converted to having a type of xsd:integer
+ "chem:protons": <span class="diff">12</span>,
+ // This value is automatically converted to having a type of xsd:boolean
+ "sensor:active": <span class="diff">true</span>,
+...
+</ins>
+}
+</pre>
+<p class="note">
+When
+dealing
+with
+a
+number
+of
+modern
+programming
+languages,
+including
+JavaScript
+ECMA-262,
+there
+is
+no
+distinction
+between
+<strong>
+xsd:decimal
+</strong>
+and
+<strong>
+xsd:double
+</strong>
+values.
+That
+is,
+the
+<a href="#dfn-number" title="number" class="tref internalDFN">
+number
+</a>
+<code>
+5.3
+</code>
+and
+the
+<a href="#dfn-number" title="number" class="tref internalDFN">
+number
+</a>
+<code>
+5.3e0
+</code>
+are
+treated
+as
+if
+they
+were
+the
+same.
+When
+converting
+from
+JSON-LD
+to
+a
+language-native
+format
+and
+back,
+type
+information
+is
+lost
+in
+a
+number
+of
+these
+languages.
+Thus,
+one
+could
+say
+that
+<code>
+5.3
+</code>
+is
+a
+<strong>
+xsd:decimal
+</strong>
+and
+<code>
+5.3e0
+</code>
+is
+an
+<strong>
+xsd:double
+</strong>
+in
+JSON-LD,
+but
+when
+both
+values
+are
+converted
+to
+a
+language-native
+format
+the
+type
+difference
+between
+the
+two
+is
+lost
+because
+the
+machine-level
+representation
+will
+almost
+always
+be
+a
+<strong>
+double
+</strong>.
+Implementers
+should
+be
+aware
+of
+this
+potential
+round-tripping
+issue
+between
+<strong>
+xsd:decimal
+</strong>
+and
+<strong>
+xsd:double
+</strong>.
+Specifically
+objects
+with
+a
+type
+of
+<strong>
+xsd:decimal
+</strong>
+<em title="must not" class="rfc2119">
+must
+not
+</em>
+be
+converted
+to
+a
+language
+native
+type.
+</p>
+</div>
+<div class="section" id="type-coercion">
+<h3>
+<span class="secno">
+<del class="diff-old">4.6
+</del>
+<ins class="diff-chg">4.7
+</ins>
+</span>
+Type
+Coercion
+</h3>
+<p>
+JSON-LD
+supports
+the
+coercion
+of
+values
+to
+particular
+data
+types.
+Type
+<dfn id="dfn-coercion" title="coercion">
+coercion
+</dfn>
+allows
+someone
+deploying
+JSON-LD
+to
+coerce
+the
+incoming
+or
+outgoing
+types
+to
+the
+proper
+data
+type
+based
+on
+a
+mapping
+of
+data
+type
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s
+to
+property
+types.
+Using
+type
+coercion,
+value
+representation
+is
+preserved
+without
+requiring
+the
+data
+type
+to
+be
+specified
+with
+each
+usage.
+</p>
+<p>
+Type
+coercion
+is
+specified
+within
+an
+<a href="#expanded-term-definition">
+expanded
+term
+definition
+</a>
+using
+the
+<code>
+@type
+</code>
+key.
+The
+values
+of
+this
+key
+represent
+type
+IRIs
+and
+<em title="must" class="rfc2119">
+must
+</em>
+take
+the
+form
+of
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>,
+<del class="diff-old">prefix
+:suffix,
+</del>
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+<ins class="diff-chg">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>,<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
+absolute
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+or
+the
+keyword
+<code>
+@id
+</code>.
+Specifying
+<code>
+@id
+</code>
+indicates
+that
+within
+the
+body
+of
+a
+JSON-LD
+document,
+string
+values
+of
+keys
+coerced
+as
+<code>
+@id
+</code>
+are
+to
+be
+interpreted
+as
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s.
+</p>
+<p>
+<a href="#dfn-term" title="term" class="tref internalDFN">
+Terms
+</a>
+or
+<del class="diff-old">prefixes
+</del>
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+<ins class="diff-chg">compact
+IRIs
+</ins>
+</a>
+used
+as
+the
+value
+of
+a
+<code>
+@type
+</code>
+key
+<em title="may" class="rfc2119">
+may
+</em>
+be
+defined
+within
+the
+same
+context.
+</p>
+<p>
+The
+example
+below
+demonstrates
+how
+a
+JSON-LD
+author
+can
+coerce
+values
+to
+<a href="#dfn-typed_value" title="typed_value" class="tref internalDFN">
+typed
+value
+</a>
+s,
+IRIs
+and
+lists.
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "age": ,
+ "homepage":
+ },
+ "name": "John Smith",
+ "age": ,
+ "homepage":
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "age":
+</ins> <span class="diff">{
+<ins class="diff-chg">
+ "@id": "http://xmlns.com/foaf/0.1/age",
+ "@type": "xsd:integer"
+ }</span>,
+ "homepage":
+</ins> <span class="diff">{
+<ins class="diff-chg">
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id",
+ "@container": "@list"
+ }</span>
+ },
+ "name": "John Smith",
+ "age": <span class="diff">"41"</span>,
+ "homepage":
+</ins> <span class="diff">[
+<ins class="diff-chg">
+ "http://personal.example.org/",
+ "http://work.example.com/jsmith/"
+ ]</span>
+</ins>
+}
+</pre>
+<p>
+The
+example
+above
+would
+generate
+the
+following
+Turtle:
+</p>
+<del class="diff-old">@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+[ foaf:name "John Smith";
+ foaf:age "41"^^xsd:integer;
+ foaf:homepage ( <http://personal.example.org/> <http://work.example.com/jsmith/> )
+</del>
+<pre class="example">@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+<ins class="diff-chg">
+[ foaf:name "John Smith";
+ foaf:age "41"^^xsd:integer;
+ foaf:homepage ( <http://personal.example.org/> <http://work.example.com/jsmith/> )
+</ins>
+]
+.
+</pre>
+<p>
+<ins class="diff-new">Terms
+may
+also
+be
+defined
+using
+</ins><a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN"><ins class="diff-new">
+absolute
+IRIs
+</ins></a><ins class="diff-new">
+or
+</ins><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><ins class="diff-new">
+compact
+IRIs
+</ins></a>.<ins class="diff-new">
+This
+allows
+coercion
+rules
+to
+by
+applied
+to
+keys
+which
+are
+not
+represented
+as
+a
+simple
+</ins><a href="#dfn-term" title="term" class="tref internalDFN"><ins class="diff-new">
+term
+</ins></a>.<ins class="diff-new">
+For
+example:
+</ins></p><pre class="example">{
+<ins class="diff-new">
+ "@context":
+ {
+</ins> <span class="diff">"foaf": "http://xmlns.com/foaf/0.1/"</span>,
+<ins class="diff-new">
+ "<span class="diff">foaf:age</span>":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/"",
+ "@type": "xsd:integer"
+ },
+ "<span class="diff">foaf:homepage</span>":
+</ins> <span class="diff">{
+<ins class="diff-new">
+ "@type": "@id"
+ }</span>
+}
+</ins></pre><p><ins class="diff-new">
+In
+this
+case,
+the
+</ins><code><ins class="diff-new">
+@id
+</ins></code><ins class="diff-new">
+definition
+is
+optional,
+but
+if
+it
+does
+exist,
+the
+</ins><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><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 href="#dfn-iri" title="iri" class="tref internalDFN"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr></a><ins class="diff-new">
+is
+treated
+as
+a
+term
+so
+that
+the
+actual
+definition
+of
+a
+</ins><a href="#dfn-prefix" title="prefix" class="tref internalDFN"><ins class="diff-new">
+prefix
+</ins></a><ins class="diff-new">
+becomes
+unnecessary.
+</ins></p>
+</div>
+<div class="section" id="iri-expansion-within-a-context">
+<h3>
+<span class="secno">
+<del class="diff-old">4.7
+</del>
+<ins class="diff-chg">4.8
+</ins>
+</span>
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+Expansion
+Within
+a
+Context
+</h3>
+<p>
+To
+be
+consistent
+with
+JSON-LD,
+in
+general,
+anywhere
+an
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+is
+expected,
+normal
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+expansion
+rules
+apply
+(see
+<a href="#iris">
+IRIs
+</a>
+).
+Within
+a
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+definition,
+this
+can
+mean
+that
+terms
+defined
+within
+a
+given
+context
+<em title="may" class="rfc2119">
+may
+</em>
+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 href="#dfn-typed_value" title="typed_value" class="tref internalDFN">
+typed
+value
+</a>
+s:
+</p>
+<del class="diff-old">{
+ "@context": {
+ ,
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "age": {"@id": "http://xmlns.com/foaf/0.1/age", "@type": },
+ "homepage": {"@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@id"}
+ },
+ ...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+</ins> <span class="diff">"xsd": "http://www.w3.org/2001/XMLSchema#"</span>,
+<ins class="diff-chg">
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "age":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/age",
+ "@type": <span class="diff">"xsd:integer"</span>
+ },
+ "homepage":
+ {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ }
+ },
+ ...
+</ins>
+}
+</pre>
+<p>
+In
+this
+example,
+the
+<code>
+xsd
+</code>
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+is
+defined,
+and
+used
+as
+a
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+prefix
+</a>
+for
+the
+<code>
+@type
+</code>
+coercion
+of
+the
+<code>
+age
+</code>
+property.
+</p>
+<p>
+<a href="#dfn-term" title="term" class="tref internalDFN">
+Term
+</a>
+s
+<em title="may" class="rfc2119">
+may
+</em>
+also
+be
+used
+when
+defining
+the
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+of
+another
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>:
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ ,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "name": ,
+ "age": {"@id": , "@type": xsd:integer"},
+ "homepage": {"@id": , "@type": "@id"}
+ },
+ ...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+</ins> <span class="diff">"foaf": "http://xmlns.com/foaf/0.1/"</span>,
+<ins class="diff-chg">
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "name": <span class="diff">"foaf:name"</span>,
+ "age":
+ {
+ "@id": <span class="diff">"foaf:age"</span>,
+ "@type": "xsd:integer"
+ },
+ "homepage":
+ {
+ "@id": <span class="diff">"foaf:homepage"</span>,
+ "@type": "@id"
+ }
+ },
+ ...
+</ins>
+}
+</pre>
+<p>
+<a href="#dfn-term" title="term" class="tref internalDFN">
+Term
+</a>
+s
+<em title="may" class="rfc2119">
+may
+</em>
+also
+be
+used
+on
+the
+left-hand
+side
+of
+a
+definition.
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ ,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "name": "foaf:name",
+ "": {"@id": "foaf:age", "@type": xsd:integer"},
+ "
+ },
+ ...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+</ins> <span class="diff">"foaf": "http://xmlns.com/foaf/0.1/"</span>,
+<ins class="diff-chg">
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "name": "foaf:name",
+ "<span class="diff">foaf:age</span>":
+ {
+ "@id": "foaf:age",
+ "@type": "xsd:integer"
+ },
+ "<span class="diff">foaf:homepage</span>":
+</ins> <span class="diff">{
+<ins class="diff-chg">
+ "@type": "@id"
+ }</span>
+ },
+ ...
+</ins>
+}
+</pre>
+<p>
+Note
+that
+in
+this
+example,
+the
+<del class="diff-old">prefixed
+</del>
+<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
+<ins class="diff-chg">compact
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
+IRI
+</ins></abbr></a>
+form
+is
+used
+in
+two
+different
+ways.
+The
+first
+way,
+as
+shown
+with
+<code>
+foaf:age
+</code>
+declares
+both
+the
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+for
+the
+term
+(using
+short-form)
+as
+well
+as
+the
+<code>
+@type
+</code>
+associated
+with
+the
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>.
+The
+second
+way,
+only
+declares
+the
+<code>
+@type
+</code>
+associated
+with
+the
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>.
+In
+the
+second
+case,
+the
+JSON-LD
+processor
+will
+still
+derive
+the
+full
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+by
+looking
+up
+the
+<code>
+foaf
+</code>
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+prefix
+</a>
+in
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+for
+<code>
+foaf:homepage
+</code>.
+</p>
+<p>
+Full
+IRIs
+<em title="may" class="rfc2119">
+may
+</em>
+also
+be
+used
+on
+the
+left-hand
+side
+of
+a
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>:
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "name": "foaf:name",
+ "foaf:age": {"@id": "foaf:age", "@type": xsd:integer"},
+ "": { "@type": "@id" }
+ },
+ ...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "name": "foaf:name",
+ "foaf:age":
+ {
+ "@id": "foaf:age",
+ "@type": "xsd:integer"
+ },
+ "<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>":
+ {
+ "@type": "@id"
+ }
+ },
+ ...
+</ins>
+}
+</pre>
+<p>
+Note
+that
+in
+order
+for
+the
+full
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+to
+match
+above,
+the
+full
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+<em title="must" class="rfc2119">
+must
+</em>
+also
+be
+used
+in
+the
+JSON-LD
+document.
+Also
+note
+that
+<code>
+foaf:homepage
+</code>
+will
+not
+use
+the
+<code>
+{
+<del class="diff-old">"@type":
+"@id"
+</del>
+<ins class="diff-chg">"@type":
+"@id"
+</ins>
+}
+</code>
+declaration
+because
+<code>
+foaf:homepage
+</code>
+is
+not
+the
+same
+as
+<code>
+http://xmlns.com/foaf/0.1/homepage
+</code>.
+That
+is,
+a
+JSON-LD
+processor
+will
+use
+direct
+string
+comparison
+when
+looking
+up
+<a href="#dfn-term" title="term" class="tref internalDFN">
+term
+</a>
+s
+in
+a
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+before
+it
+applies
+the
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+prefix
+</a>
+lookup
+mechanism.
+</p>
+<p>
+The
+only
+exception
+for
+using
+terms
+in
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+is
+that
+they
+<em title="must not" class="rfc2119">
+must
+not
+</em>
+be
+used
+in
+a
+circular
+manner.
+That
+is,
+a
+definition
+of
+<em>
+term-1
+</em>
+<em title="must not" class="rfc2119">
+must
+not
+</em>
+depend
+on
+the
+definition
+of
+<em>
+term-2
+</em>
+if
+<em>
+term-2
+</em>
+also
+depends
+on
+<em>
+term-1
+</em>.
+For
+example,
+the
+following
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>
+definition
+is
+illegal:
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ "term1": {"@id": "term2:foo"},
+ "term2": {"@id": "term1:bar"}
+ },
+ ...
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+</ins> <span class="diff">"term1": "term2:foo",
+<ins class="diff-chg">
+ "term2": "term1:bar"</span>
+ },
+ ...
+</ins>
+}
+</pre>
+</div>
+<div class="section" id="embedding">
+<h3>
+<span class="secno">
+<del class="diff-old">4.8
+</del>
+<ins class="diff-chg">4.9
+</ins>
+</span>
+Embedding
+</h3>
+<p>
+Object
+<dfn id="dfn-embedding" title="embedding">
+embedding
+</dfn>
+is
+a
+JSON-LD
+feature
+that
+allows
+an
+author
+to
+use
+the
+definition
+of
+JSON-LD
+objects
+as
+<a href="#dfn-property" title="property" class="tref internalDFN">
+property
+</a>
+values.
+This
+is
+a
+commonly
+used
+mechanism
+for
+creating
+a
+parent-child
+relationship
+between
+two
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>
+s.
+</p>
+<p>
+The
+example
+shows
+<del class="diff-old">an
+</del>
+two
+subjects
+related
+by
+a
+property
+from
+the
+first
+subject:
+</p>
+<del class="diff-old"> {
+...
+ "name": "Manu Sporny",
+ "": {
+ "",
+ "",
+ }
+...
+</del>
+ <pre class="example">{
+<ins class="diff-chg">...
+ "name": "Manu Sporny",
+ "<span class="diff">knows</span>":
+ {
+ "<span class="diff">@type</span>": "<span class="diff">Person</span>",
+ "<span class="diff">name</span>": "<span class="diff">Gregg Kellogg</span>",
+ }
+...
+</ins>
+}
+</pre>
+<p>
+An
+object
+definition,
+like
+the
+one
+used
+above,
+<em title="may" class="rfc2119">
+may
+</em>
+be
+used
+as
+a
+JSON
+value
+at
+any
+point
+in
+JSON-LD.
+</p>
+</div>
+<div class="section" id="identifying-unlabeled-nodes">
+<h3>
+<span class="secno">
+<del class="diff-old">4.9
+</del>
+<ins class="diff-chg">4.10
+</ins>
+</span>
+Identifying
+Unlabeled
+Nodes
+</h3>
+<p>
+At
+times,
+it
+becomes
+necessary
+to
+be
+able
+to
+express
+information
+without
+being
+able
+to
+specify
+the
+subject.
+Typically,
+this
+type
+of
+node
+is
+called
+an
+unlabeled
+node
+or
+a
+blank
+node.
+In
+JSON-LD,
+unlabeled
+node
+identifiers
+are
+automatically
+created
+if
+a
+subject
+is
+not
+specified
+using
+the
+<code>
+@id
+</code>
+keyword.
+However,
+authors
+may
+provide
+identifiers
+for
+unlabeled
+nodes
+by
+using
+the
+special
+<code>
+_
+</code>
+(underscore)
+<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
+prefix
+</a>.
+This
+allows
+to
+reference
+the
+node
+locally
+within
+the
+document
+but
+not
+in
+an
+external
+document.
+</p>
+<del class="diff-old">{
+...
+ "@id": "",
+...
+</del>
+<pre class="example">{
+<ins class="diff-chg">...
+ "@id": "<span class="diff">_:foo</span>",
+...
+</ins>
+}
+</pre>
+<p>
+The
+example
+above
+would
+set
+the
+subject
+to
+<code>
+_:foo
+</code>,
+which
+can
+then
+be
+used
+later
+on
+in
+the
+JSON-LD
+markup
+to
+refer
+back
+to
+the
+unlabeled
+node.
+This
+practice,
+however,
+is
+usually
+frowned
+upon
+when
+generating
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>.
+If
+a
+developer
+finds
+that
+they
+refer
+to
+the
+unlabeled
+node
+more
+than
+once,
+they
+should
+consider
+naming
+the
+node
+using
+a
+resolve-able
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+</p>
+</div>
+<div class="section" id="aliasing-keywords">
+<h3>
+<span class="secno">
+<del class="diff-old">4.10
+</del>
+<ins class="diff-chg">4.11
+</ins>
+</span>
+Aliasing
+Keywords
+</h3>
+<p>
+JSON-LD
+allows
+all
+of
+the
+syntax
+keywords,
+except
+for
+<code>
+@context
+</code>,
+to
+be
+aliased.
+This
+feature
+allows
+more
+legacy
+JSON
+content
+to
+be
+supported
+by
+JSON-LD.
+It
+also
+allows
+developers
+to
+design
+domain-specific
+implementations
+using
+only
+the
+JSON-LD
+<a href="#dfn-context" title="context" class="tref internalDFN">
+context
+</a>.
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ ,
+ ,
+ "name": "http://schema.org/name"
+ },
+ "url": "http://example.com/about#gregg",
+ "a": "http://schema.org/Person",
+ "name": "Gregg Kellogg"
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+</ins> <span class="diff">"url": "@id"</span>,
+ <span class="diff">"a": "@type"</span>,
+<ins class="diff-chg">
+ "name": "http://schema.org/name"
+ },
+ "url": "http://example.com/about#gregg",
+ "a": "http://schema.org/Person",
+ "name": "Gregg Kellogg"
+</ins>
+}
+</pre>
+<p>
+In
+the
+example
+above,
+the
+<code>
+@id
+</code>
+and
+<code>
+@type
+</code>
+keywords
+have
+been
+given
+the
+aliases
+<strong>
+url
+</strong>
+and
+<strong>
+a
+</strong>,
+respectively.
+</p>
+</div>
+<div class="section" id="expansion">
+<h3>
+<span class="secno">
+<ins class="diff-new">4.12
+</ins></span><ins class="diff-new">
+Expansion
+</ins></h3><p><ins class="diff-new">
+The
+JSON-LD
+API
+[
+</ins><cite><a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref"><ins class="diff-new">
+JSON-LD-API
+</ins></a></cite><ins class="diff-new">
+]
+defines
+an
+method
+for
+</ins><em><ins class="diff-new">
+expanding
+</ins></em><ins class="diff-new">
+a
+JSON-LD
+document.
+Expansion
+is
+the
+process
+of
+taking
+a
+JSON-LD
+document
+and
+applying
+a
+context
+such
+that
+all
+</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
+IRI
+</ins></abbr>,<ins class="diff-new">
+datatypes,
+and
+literal
+values
+are
+expanded
+so
+that
+the
+context
+is
+no
+longer
+necessary.
+JSON-LD
+document
+expansion
+is
+typically
+used
+as
+a
+part
+of
+</ins><a href="#framing"><ins class="diff-new">
+Framing
+</ins></a>.</p><p><ins class="diff-new">
+For
+example,
+assume
+the
+following
+JSON-LD
+input
+document:
+</ins></p><pre class="example">{
+<ins class="diff-new">
+ "@context":
+ {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepage": {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type", "@id"
+ }
+ },
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/"
+}
+</ins></pre><p><ins class="diff-new">
+Running
+the
+JSON-LD
+Expansion
+algorithm
+against
+the
+JSON-LD
+input
+document
+provided
+above
+would
+result
+in
+the
+following
+output:
+</ins></p><pre class="example">{
+<ins class="diff-new">
+ "http://xmlns.com/foaf/0.1/name": "Manu Sporny",
+ "http://xmlns.com/foaf/0.1/homepage": {
+ "@id": "http://manu.sporny.org/"
+ }
+}
+</ins></pre>
+</div>
+<div class="section" id="compaction">
+<h3>
+<span class="secno">
+<ins class="diff-chg">4.13
+</ins></span><ins class="diff-chg">
+Compaction
+</ins></h3><p><ins class="diff-chg">
+The
+JSON-LD
+API
+[
+</ins><cite><a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref"><ins class="diff-chg">
+JSON-LD-API
+</ins></a></cite><ins class="diff-chg">
+]
+defines
+an
+method
+for
+</ins><em><ins class="diff-chg">
+compacting
+</ins></em><ins class="diff-chg">
+a
+JSON-LD
+document.
+Compaction
+is
+the
+process
+of
+taking
+a
+JSON-LD
+document
+and
+applying
+a
+context
+such
+that
+the
+most
+compact
+form
+of
+the
+document
+is
+generated.
+JSON
+is
+typically
+expressed
+in
+a
+very
+compact,
+key-value
+format.
+That
+is,
+full
+IRIs
+are
+rarely
+used
+as
+keys.
+At
+times,
+a
+JSON-LD
+document
+may
+be
+received
+that
+is
+not
+in
+its
+most
+compact
+form.
+JSON-LD,
+via
+the
+API,
+provides
+a
+way
+to
+compact
+a
+JSON-LD
+document.
+</ins></p><p><ins class="diff-chg">
+For
+example,
+assume
+the
+following
+JSON-LD
+input
+document:
+</ins></p><pre class="example">{
+<ins class="diff-chg">
+ "http://xmlns.com/foaf/0.1/name": "Manu Sporny",
+ "http://xmlns.com/foaf/0.1/homepage": {
+ "@id": "http://manu.sporny.org/"
+ }
+}
+</ins></pre><p><ins class="diff-chg">
+Additionally,
+assume
+the
+following
+developer-supplied
+JSON-LD
+context:
+</ins></p><pre class="example">{
+<ins class="diff-chg">
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepage": {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ }
+}
+</ins></pre><p><ins class="diff-chg">
+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:
+</ins></p><pre class="example">{
+<ins class="diff-chg">
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepage": {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ }
+ },
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/"
+}
+</ins></pre><p><ins class="diff-chg">
+The
+compaction
+algorithm
+also
+enables
+the
+developer
+to
+map
+any
+expanded
+format
+into
+an
+application-specific
+compacted
+format.
+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><strong><ins class="diff-chg">
+name
+</ins></strong>,<ins class="diff-chg">
+it
+could
+have
+also
+mapped
+it
+to
+any
+arbitrary
+string
+provided
+by
+the
+developer.
+</ins></p></div><div class="section" id="framing"><h3><span class="secno"><ins class="diff-chg">
+4.14
+</ins></span><ins class="diff-chg">
+Framing
+</ins></h3><p><ins class="diff-chg">
+The
+JSON-LD
+API
+[
+</ins><cite><a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref"><ins class="diff-chg">
+JSON-LD-API
+</ins></a></cite><ins class="diff-chg">
+]
+defines
+an
+method
+for
+</ins><em><ins class="diff-chg">
+framing
+</ins></em><ins class="diff-chg">
+a
+JSON-LD
+document.
+This
+allows
+developers
+to
+query
+by
+example
+and
+force
+a
+specific
+tree
+layout
+to
+a
+JSON-LD
+document.
+</ins></p><p><ins class="diff-chg">
+A
+JSON-LD
+document
+is
+a
+representation
+of
+a
+directed
+graph.
+A
+single
+directed
+graph
+can
+have
+many
+different
+serializations,
+each
+expressing
+exactly
+the
+same
+information.
+Developers
+typically
+work
+with
+trees,
+represented
+as
+</ins><a href="#dfn-json_object" title="json_object" class="tref internalDFN"><ins class="diff-chg">
+JSON
+object
+</ins></a><ins class="diff-chg">
+s.
+While
+mapping
+a
+graph
+to
+a
+tree
+can
+be
+done,
+the
+layout
+of
+the
+end
+result
+must
+be
+specified
+in
+advance.
+A
+</ins><dfn id="dfn-frame" title="frame"><ins class="diff-chg">
+Frame
+</ins></dfn><ins class="diff-chg">
+can
+be
+used
+by
+a
+developer
+on
+a
+JSON-LD
+document
+to
+specify
+a
+deterministic
+layout
+for
+a
+graph.
+</ins></p><p><ins class="diff-chg">
+Framing
+is
+the
+process
+of
+taking
+a
+JSON-LD
+document,
+which
+expresses
+a
+graph
+of
+information,
+and
+applying
+a
+specific
+graph
+layout
+(called
+a
+</ins><a href="#dfn-frame" title="frame" class="tref internalDFN"><ins class="diff-chg">
+Frame
+</ins></a><ins class="diff-chg">
+).
+</ins></p><p><ins class="diff-chg">
+The
+JSON-LD
+document
+below
+expresses
+a
+library,
+a
+book
+and
+a
+chapter:
+</ins></p><pre class="example">{
+<ins class="diff-chg">
+ "@context": {
+ "Book": "http://example.org/vocab#Book",
+ "Chapter": "http://example.org/vocab#Chapter",
+ "contains": {
+ "@id": "http://example.org/vocab#contains",
+ "@type": "@id"
+ },
+ "creator": "http://purl.org/dc/terms/creator",
+ "description": "http://purl.org/dc/terms/description",
+ "Library": "http://example.org/vocab#Library",
+ "title": "http://purl.org/dc/terms/title"
+ },
+ "@id":
+ [{
+ "@id": "http://example.com/library",
+ "@type": "Library",
+ "contains": "http://example.org/library/the-republic"
+ },
+ {
+ "@id": "http://example.org/library/the-republic",
+ "@type": "Book",
+ "creator": "Plato",
+ "title": "The Republic",
+ "contains": "http://example.org/library/the-republic#introduction"
+ },
+ {
+ "@id": "http://example.org/library/the-republic#introduction",
+ "@type": "Chapter",
+ "description": "An introductory chapter on The Republic.",
+ "title": "The Introduction"
+ }]
+}
+</ins></pre><p><ins class="diff-chg">
+Developers
+typically
+like
+to
+operate
+on
+items
+in
+a
+hierarchical,
+tree-based
+fashion.
+Ideally,
+a
+developer
+would
+want
+the
+data
+above
+sorted
+into
+top-level
+libraries,
+then
+the
+books
+that
+are
+contained
+in
+each
+library,
+and
+then
+the
+chapters
+contained
+in
+each
+book.
+To
+achieve
+that
+layout,
+the
+developer
+can
+define
+the
+following
+</ins><a href="#dfn-frame" title="frame" class="tref internalDFN"><ins class="diff-chg">
+frame
+</ins></a>:</p><pre class="example">{
+<ins class="diff-chg">
+ "@context": {
+ "Book": "http://example.org/vocab#Book",
+ "Chapter": "http://example.org/vocab#Chapter",
+ "contains": "http://example.org/vocab#contains",
+ "creator": "http://purl.org/dc/terms/creator"
+ "description": "http://purl.org/dc/terms/description"
+ "Library": "http://example.org/vocab#Library",
+ "title": "http://purl.org/dc/terms/title"
+ },
+ "@type": "Library",
+ "contains": {
+ "@type": "Book",
+ "contains": {
+ "@type": "Chapter"
+ }
+ }
+}
+</ins></pre><p><ins class="diff-chg">
+When
+the
+framing
+algorithm
+is
+run
+against
+the
+previously
+defined
+JSON-LD
+document,
+paired
+with
+the
+</ins><a href="#dfn-frame" title="frame" class="tref internalDFN"><ins class="diff-chg">
+frame
+</ins></a><ins class="diff-chg">
+above,
+the
+following
+JSON-LD
+document
+is
+the
+end
+result:
+</ins></p><pre class="example">{
+<ins class="diff-chg">
+ "@context": {
+ "Book": "http://example.org/vocab#Book",
+ "Chapter": "http://example.org/vocab#Chapter",
+ "contains": "http://example.org/vocab#contains",
+ "creator": "http://purl.org/dc/terms/creator"
+ "description": "http://purl.org/dc/terms/description"
+ "Library": "http://example.org/vocab#Library",
+ "title": "http://purl.org/dc/terms/title"
+ },
+ "@id": "http://example.org/library",
+ "@type": "Library",
+ "contains": {
+</ins> <span class="diff">"@id": "http://example.org/library/the-republic",</span>
+<ins class="diff-chg">
+ "@type": "Book",
+</ins> <span class="diff">"creator": "Plato",</span>
+ <span class="diff">"title": "The Republic",</span>
+<ins class="diff-chg">
+ "contains": {
+</ins> <span class="diff">"@id": "http://example.org/library/the-republic#introduction",</span>
+<ins class="diff-chg">
+ "@type": "Chapter",
+</ins> <span class="diff">"description": "An introductory chapter on The Republic.",</span>
+ <span class="diff">"title": "The Introduction"</span>
+<ins class="diff-chg">
+ },
+ },
+}
+</ins></pre></div><div class="section" id="normalization"><h3><span class="secno"><ins class="diff-chg">
+4.15
+</ins></span><ins class="diff-chg">
+Normalization
+</ins></h3><p><ins class="diff-chg">
+The
+JSON-LD
+API
+[
+</ins><cite><a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref"><ins class="diff-chg">
+JSON-LD-API
+</ins></a></cite><ins class="diff-chg">
+]
+defines
+an
+method
+for
+</ins><em><ins class="diff-chg">
+normalizing
+</ins></em><ins class="diff-chg">
+a
+JSON-LD
+document.
+Normalization
+is
+the
+process
+of
+performing
+a
+deterministic
+transformation
+on
+a
+JSON-LD
+document
+resulting
+in
+a
+normalized
+representation.
+</ins></p><p><ins class="diff-chg">
+Normalization
+is
+useful
+when
+comparing
+two
+graphs
+against
+one
+another,
+when
+generating
+a
+detailed
+list
+of
+differences
+between
+two
+graphs,
+and
+when
+generating
+a
+cryptographic
+digital
+signature
+for
+information
+contained
+in
+a
+graph
+or
+when
+generating
+a
+hash
+of
+the
+information
+contained
+in
+a
+graph.
+</ins></p><p><ins class="diff-chg">
+The
+example
+below
+is
+an
+un-normalized
+JSON-LD
+document:
+</ins></p><pre class="example">{
+<ins class="diff-chg">
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepage": {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ },
+ "xsd": "http://www.w3.org/2001/XMLSchema#"
+ },
+ "name": "Manu Sporny",
+ "homepage": "http://manu.sporny.org/"
+}
+</ins></pre><p><ins class="diff-chg">
+The
+example
+below
+is
+the
+normalized
+form
+of
+the
+JSON-LD
+document
+above:
+</ins></p><pre class="example">[{
+<ins class="diff-chg">
+ "@id": "_:c14n0",
+ "http://xmlns.com/foaf/0.1/homepage": {
+ "@id": "http://manu.sporny.org/"
+ },
+ "http://xmlns.com/foaf/0.1/name": "Manu Sporny"
+}]
+</ins></pre><p><ins class="diff-chg">
+Notice
+how
+all
+of
+the
+</ins><a href="#dfn-term" title="term" class="tref internalDFN"><ins class="diff-chg">
+term
+</ins></a><ins class="diff-chg">
+s
+have
+been
+expanded
+and
+sorted
+in
+alphabetical
+order.
+Also,
+notice
+how
+the
+</ins><a href="#dfn-subject" title="subject" class="tref internalDFN"><ins class="diff-chg">
+subject
+</ins></a><ins class="diff-chg">
+has
+been
+labeled
+with
+a
+named
+</ins><a href="#dfn-unlabeled_node" title="unlabeled_node" class="tref internalDFN"><ins class="diff-chg">
+unlabeled
+node
+</ins></a>.<ins class="diff-chg">
+Normalization
+ensures
+that
+any
+arbitrary
+graph
+containing
+exactly
+the
+same
+information
+would
+be
+normalized
+to
+exactly
+the
+same
+form
+shown
+above.
+</ins></p></div></div><div id="markup-examples" class="appendix informative section">
+<h2>
+<span class="secno">
+A.
+</span>
+Markup
+Examples
+</h2>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+JSON-LD
+is
+a
+specification
+for
+representing
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+in
+JSON.
+A
+common
+way
+of
+working
+with
+Linked
+Data
+is
+through
+<dfn id="dfn-rdf" title="rdf">
+RDF
+</dfn>,
+the
+Resource
+Description
+Framework.
+RDF
+can
+be
+expressed
+using
+JSON-LD
+by
+associating
+JSON-LD
+concepts
+such
+as
+<code>
+@id
+</code>
+and
+<code>
+@type
+</code>
+with
+the
+equivalent
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+s
+in
+RDF.
+Further
+information
+about
+RDF
+may
+be
+found
+in
+[
+<cite>
+<a href="#bib-RDF-PRIMER" rel="biblioentry" class="bibref">
+RDF-PRIMER
+</a>
+</cite>
+].
+</p>
+<p>
+The
+JSON-LD
+markup
+examples
+below
+demonstrate
+how
+JSON-LD
+can
+be
+used
+to
+express
+semantic
+data
+marked
+up
+in
+other
+languages
+such
+as
+Turtle,
+RDFa,
+Microformats,
+and
+Microdata.
+These
+sections
+are
+merely
+provided
+as
+proof
+that
+JSON-LD
+is
+very
+flexible
+in
+what
+it
+can
+express
+across
+different
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+approaches.
+Details
+of
+transforming
+JSON-LD
+into
+RDF
+are
+defined
+in
+[
+<cite>
+<a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref">
+JSON-LD-API
+</a>
+</cite>
+].
+</p>
+<div class="section" id="turtle">
+<h3>
+<span class="secno">
+A.1
+</span>
+Turtle
+</h3>
+<p>
+The
+following
+are
+examples
+of
+representing
+<a href="#dfn-rdf" title="rdf" class="tref internalDFN">
+RDF
+</a>
+as
+expressed
+in
+[
+<cite>
+<a href="#bib-TURTLE" rel="biblioentry" class="bibref">
+TURTLE
+</a>
+</cite>
+]
+into
+JSON-LD.
+</p>
+<div class="section" id="prefix-definitions">
+<h4>
+<span class="secno">
+A.1.1
+</span>
+Prefix
+definitions
+</h4>
+<p>
+The
+JSON-LD
+context
+has
+direct
+equivalents
+for
+the
+Turtle
+<code>
+@prefix
+</code>
+declaration:
+</p>
+<del class="diff-old">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+<http://manu.sporny.org/i/public> a foaf:Person;
+ foaf:name "Manu Sporny";
+</del>
+<pre class="example">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+<ins class="diff-chg">
+<http://manu.sporny.org/i/public> a foaf:Person;
+ foaf:name "Manu Sporny";
+</ins>
+foaf:homepage
+<http://manu.sporny.org/>
+.
+</pre>
+<del class="diff-old">{
+ "@context": {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://manu.sporny.org/i/public",
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:homepage": { "@id": "http://manu.sporny.org/" }
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://manu.sporny.org/i/public",
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:homepage": { "@id": "http://manu.sporny.org/" }
+</ins>
+}
+</pre>
+<div class="note">
+<p>
+JSON-LD
+has
+no
+equivalent
+for
+the
+Turtle
+<code>
+@base
+</code>
+declaration.
+Authors
+could,
+of
+course,
+use
+a
+prefix
+definition
+to
+resolve
+<a href="#dfn-relative_iri" title="relative_iri" class="tref internalDFN">
+relative
+<del class="diff-old">IRIs.
+</del>
+<abbr title="Internationalized Resource Identifier">
+<ins class="diff-chg">IRI
+</ins></abbr></a><ins class="diff-chg">
+s.
+</ins>
+For
+example,
+an
+empty
+prefix
+could
+be
+used
+to
+get
+a
+similar
+effect
+to
+<code>
+@base
+</code>:
+</p>
+<del class="diff-old">{
+ "@context": {
+
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": ,
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:homepage": { "@id": }
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+</ins> <span class="diff">"": "http://manu.sporny.org/",</span>
+<ins class="diff-chg">
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": <span class="diff">":i/public"</span>,
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:homepage": { "@id": <span class="diff">":" </span>}
+</ins>
+}
+</pre>
+</div>
+</div>
+<div class="section" id="embedding-1">
+<h4>
+<span class="secno">
+A.1.2
+</span>
+Embedding
+</h4>
+<p>
+Both
+Turtle
+and
+JSON-LD
+allow
+embedding
+of
+objects,
+although
+Turtle
+only
+allows
+embedding
+of
+objects
+which
+use
+unlabeled
+node
+identifiers.
+</p>
+</div>
+<del class="diff-old">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+<http://manu.sporny.org/i/public>
+ a foaf:Person;
+ foaf:name "Manu Sporny";
+</del>
+<pre class="example">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+<ins class="diff-chg">
+<http://manu.sporny.org/i/public>
+ a foaf:Person;
+ foaf:name "Manu Sporny";
+</ins>
+foaf:knows
+[
+a
+foaf:Person;
+foaf:name
+<del class="diff-old">"Gregg
+Kellogg"
+</del>
+<ins class="diff-chg">"Gregg
+Kellogg"
+</ins>
+]
+.
+</pre>
+<del class="diff-old">{
+ "@context": {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://manu.sporny.org/i/public",
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:knows": {
+ "@type": "foaf:Person",
+ "foaf:name": "Gregg Kellogg"
+ }
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://manu.sporny.org/i/public",
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:knows":
+ {
+ "@type": "foaf:Person",
+ "foaf:name": "Gregg Kellogg"
+ }
+</ins>
+}
+</pre>
+<div class="section" id="lists-1">
+<h4>
+<span class="secno">
+A.1.3
+</span>
+Lists
+</h4>
+<p>
+Both
+JSON-LD
+and
+Turtle
+can
+represent
+sequential
+lists
+of
+values.
+</p>
+<del class="diff-old">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+<http://example.org/people#joebob> a foaf:Person;
+ foaf:name "Joe Bob";
+</del>
+<pre class="example">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+<ins class="diff-chg">
+<http://example.org/people#joebob> a foaf:Person;
+ foaf:name "Joe Bob";
+</ins>
+foaf:nick
+(
+<del class="diff-old">"joe"
+"bob"
+"jaybee")
+</del>
+<ins class="diff-chg">"joe"
+"bob"
+"jaybee"
+)
+</ins>
+.
+</pre>
+<del class="diff-old">{
+ "@context": {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://example.org/people#joebob",
+ "@type": "foaf:Person",
+ "foaf:name": "Joe Bob",
+ "foaf:nick": { "@list": [ "joe", "bob", "jaybe" ] }
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://example.org/people#joebob",
+ "@type": "foaf:Person",
+ "foaf:name": "Joe Bob",
+ "foaf:nick":
+ {
+ "@list": [ "joe", "bob", "jaybe" ]
+ }
+</ins>
+}
+</pre>
+</div>
+</div>
+<div class="section" id="rdfa">
+<h3>
+<span class="secno">
+A.2
+</span>
+RDFa
+</h3>
+<p>
+The
+following
+example
+describes
+three
+people
+with
+their
+respective
+names
+and
+homepages.
+</p>
+<del class="diff-old">>
+ <ul>
+ <li >
+ <a >Bob</a>
+ </li>
+ <li >
+ <a >Eve</a>
+ </li>
+ <li >
+ <a >Manu</a>
+ </li>
+ </ul>
+</del>
+<pre class="example"><div <span class="diff">prefix="foaf: http://xmlns.com/foaf/0.1/"</span>>
+<ins class="diff-chg"> <ul>
+ <li <span class="diff">typeof="foaf:Person"</span>>
+ <a <span class="diff">rel="foaf:homepage" href="http://example.com/bob/" property="foaf:name" </span>>Bob</a>
+ </li>
+ <li <span class="diff">typeof="foaf:Person"</span>>
+ <a <span class="diff">rel="foaf:homepage" href="http://example.com/eve/" property="foaf:name" </span>>Eve</a>
+ </li>
+ <li <span class="diff">typeof="foaf:Person"</span>>
+ <a <span class="diff">rel="foaf:homepage" href="http://example.com/manu/" property="foaf:name" </span>>Manu</a>
+ </li>
+ </ul>
+</ins>
+</div>
+</pre>
+<p>
+An
+example
+JSON-LD
+implementation
+<ins class="diff-new">using
+a
+single
+</ins><a href="#dfn-context" title="context" class="tref internalDFN"><ins class="diff-new">
+context
+</ins></a>
+is
+described
+<del class="diff-old">below,
+however,
+there
+are
+other
+ways
+</del>
+<ins class="diff-chg">below.
+</ins></p><p class="issue"><ins class="diff-chg">
+The
+syntax
+</ins>
+to
+<del class="diff-old">mark-up
+this
+information
+such
+that
+the
+context
+</del>
+<ins class="diff-chg">serialize
+multiple
+graphs
+</ins>
+is
+<del class="diff-old">not
+repeated.
+</del>
+<ins class="diff-chg">currently
+being
+discussed
+in
+</ins><a href="https://github.com/json-ld/json-ld.org/issues/68"><ins class="diff-chg">
+Issue
+68
+</ins></a>.
+</p>
+<del class="diff-old">{
+ "@context": { "foaf": "http://xmlns.com/foaf/0.1/" },
+ "@id": [
+ {
+ "@id": "_:bnode1",
+ "@type": "foaf:Person",
+ "foaf:homepage": "http://example.com/bob/",
+ "foaf:name": "Bob"
+ },
+ {
+ "@id": "_:bnode2",
+ "@type": "foaf:Person",
+ "foaf:homepage": "http://example.com/eve/",
+ "foaf:name": "Eve"
+ },
+ {
+ "@id": "_:bnode3",
+ "@type": "foaf:Person",
+ "foaf:homepage": "http://example.com/manu/",
+ "foaf:name": "Manu"
+ }
+ ]
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id":
+ [
+ {
+ "@type": "foaf:Person",
+ "foaf:homepage": "http://example.com/bob/",
+ "foaf:name": "Bob"
+ },
+ {
+ "@type": "foaf:Person",
+ "foaf:homepage": "http://example.com/eve/",
+ "foaf:name": "Eve"
+ },
+ {
+ "@type": "foaf:Person",
+ "foaf:homepage": "http://example.com/manu/",
+ "foaf:name": "Manu"
+ }
+ ]
+</ins>
+}
+</pre>
+</div>
+<div class="section" id="microformats">
+<h3>
+<span class="secno">
+A.3
+</span>
+Microformats
+</h3>
+<p>
+The
+following
+example
+uses
+a
+simple
+Microformats
+hCard
+example
+to
+express
+how
+the
+Microformat
+is
+represented
+in
+JSON-LD.
+</p>
+<del class="diff-old"><div class="vcard">
+ <a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
+</del>
+<pre class="example"><div class="vcard">
+<ins class="diff-chg"> <a class="url fn" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>
+</ins>
+</div>
+</pre>
+<p>
+The
+representation
+of
+the
+hCard
+expresses
+the
+Microformat
+terms
+in
+the
+<a href="#dfn-context" title="context" class="tref internalDFN">
+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">{
+ "@context":
+ {
+ "vcard": "http://microformats.org/profile/hcard#vcard",
+ "url": {"@id": "http://microformats.org/profile/hcard#url", "@type": "@id"},
+ "fn": "http://microformats.org/profile/hcard#fn"
+ },
+ "@id": "_:bnode1",
+ "@type": "vcard",
+ "url": "http://tantek.com/",
+ "fn": "Tantek Çelik"
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "vcard": "http://microformats.org/profile/hcard#vcard",
+ "url":
+ {
+ "@id": "http://microformats.org/profile/hcard#url",
+ "@type": "@id"
+ },
+ "fn": "http://microformats.org/profile/hcard#fn"
+ },
+ "@type": "vcard",
+ "url": "http://www.markus-lanthaler.com/",
+ "fn": "Markus Lanthaler"
+</ins>
+}
+</pre>
+</div>
+<div class="section" id="microdata">
+<h3>
+<span class="secno">
+A.4
+</span>
+Microdata
+</h3>
+<p>
+The
+microdata
+example
+below
+expresses
+book
+information
+as
+a
+microdata
+Work
+item.
+</p>
+<del class="diff-old"><dl itemscope
+ itemtype="http://purl.org/vocab/frbr/core#Work"
+ itemid="http://purl.oreilly.com/works/45U8QJGZSQKDH8N">
+ <dt>Title</dt>
+ <dd><cite itemprop="http://purl.org/dc/terms/title">Just a Geek</cite></dd>
+ <dt>By</dt>
+ <dd><span itemprop="http://purl.org/dc/terms/creator">Wil Wheaton</span></dd>
+ <dt>Format</dt>
+ <dd itemprop="http://purl.org/vocab/frbr/core#realization"
+ itemscope
+ itemtype="http://purl.org/vocab/frbr/core#Expression"
+ itemid="http://purl.oreilly.com/products/9780596007683.BOOK">
+ <link itemprop="http://purl.org/dc/terms/type" href="http://purl.oreilly.com/product-types/BOOK">
+ Print
+ </dd>
+ <dd itemprop="http://purl.org/vocab/frbr/core#realization"
+ itemscope
+ itemtype="http://purl.org/vocab/frbr/core#Expression"
+ itemid="http://purl.oreilly.com/products/9780596802189.EBOOK">
+ <link itemprop="http://purl.org/dc/terms/type" href="http://purl.oreilly.com/product-types/EBOOK">
+ Ebook
+ </dd>
+</del>
+<pre class="example"><dl itemscope
+<ins class="diff-chg"> itemtype="http://purl.org/vocab/frbr/core#Work"
+ itemid="http://purl.oreilly.com/works/45U8QJGZSQKDH8N">
+ <dt>Title</dt>
+ <dd><cite itemprop="http://purl.org/dc/terms/title">Just a Geek</cite></dd>
+ <dt>By</dt>
+ <dd><span itemprop="http://purl.org/dc/terms/creator">Wil Wheaton</span></dd>
+ <dt>Format</dt>
+ <dd itemprop="http://purl.org/vocab/frbr/core#realization"
+ itemscope
+ itemtype="http://purl.org/vocab/frbr/core#Expression"
+ itemid="http://purl.oreilly.com/products/9780596007683.BOOK">
+ <link itemprop="http://purl.org/dc/terms/type" href="http://purl.oreilly.com/product-types/BOOK">
+ Print
+ </dd>
+ <dd itemprop="http://purl.org/vocab/frbr/core#realization"
+ itemscope
+ itemtype="http://purl.org/vocab/frbr/core#Expression"
+ itemid="http://purl.oreilly.com/products/9780596802189.EBOOK">
+ <link itemprop="http://purl.org/dc/terms/type" href="http://purl.oreilly.com/product-types/EBOOK">
+ Ebook
+ </dd>
+</ins>
+</dl>
+</pre>
+<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 href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+</p>
+<del class="diff-old">[
+ {
+ "@id": "http://purl.oreilly.com/works/45U8QJGZSQKDH8N",
+ "@type": "http://purl.org/vocab/frbr/core#Work",
+ "http://purl.org/dc/terms/title": "Just a Geek",
+ "http://purl.org/dc/terms/creator": "Whil Wheaton",
+ "http://purl.org/vocab/frbr/core#realization":
+ [ "http://purl.oreilly.com/products/9780596007683.BOOK", "http://purl.oreilly.com/products/9780596802189.EBOOK" ]
+ },
+ {
+ "@id": "http://purl.oreilly.com/products/9780596007683.BOOK",
+ "@type": "http://purl.org/vocab/frbr/core#Expression",
+ "http://purl.org/dc/terms/type": "http://purl.oreilly.com/product-types/BOOK"
+ },
+ {
+ "@id": "http://purl.oreilly.com/products/9780596802189.EBOOK",
+ "@type": "http://purl.org/vocab/frbr/core#Expression",
+ "http://purl.org/dc/terms/type": "http://purl.oreilly.com/product-types/EBOOK"
+ }
+</del>
+<pre class="example">[
+<ins class="diff-chg"> {
+ "@id": "http://purl.oreilly.com/works/45U8QJGZSQKDH8N",
+ "@type": "http://purl.org/vocab/frbr/core#Work",
+ "http://purl.org/dc/terms/title": "Just a Geek",
+ "http://purl.org/dc/terms/creator": "Whil Wheaton",
+ "http://purl.org/vocab/frbr/core#realization":
+ [
+ "http://purl.oreilly.com/products/9780596007683.BOOK",
+ "http://purl.oreilly.com/products/9780596802189.EBOOK"
+ ]
+ },
+ {
+ "@id": "http://purl.oreilly.com/products/9780596007683.BOOK",
+ "@type": "http://purl.org/vocab/frbr/core#Expression",
+ "http://purl.org/dc/terms/type": "http://purl.oreilly.com/product-types/BOOK"
+ },
+ {
+ "@id": "http://purl.oreilly.com/products/9780596802189.EBOOK",
+ "@type": "http://purl.org/vocab/frbr/core#Expression",
+ "http://purl.org/dc/terms/type": "http://purl.oreilly.com/product-types/EBOOK"
+ }
+</ins>
+]
+</pre>
+</div>
+</div>
+<div id="linked-data" class="appendix section">
+<h2>
+<span class="secno">
+B.
+</span>
+Linked
+Data
+</h2>
+<p>
+The
+following
+definition
+for
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+is
+the
+one
+that
+will
+be
+used
+for
+this
+specification.
+</p>
+<ol>
+<li>
+<dfn id="dfn-linked_data" title="linked_data">
+Linked
+Data
+</dfn>
+is
+a
+set
+of
+documents,
+each
+containing
+a
+representation
+of
+a
+linked
+data
+graph.
+</li>
+<li>
+A
+<dfn id="dfn-linked_data_graph" title="linked_data_graph">
+linked
+data
+graph
+</dfn>
+is
+an
+unordered
+labeled
+directed
+graph,
+where
+nodes
+are
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>
+s
+or
+<a href="#dfn-object" title="object" class="tref internalDFN">
+object
+</a>
+s,
+and
+edges
+are
+properties.
+</li>
+<li>
+A
+<dfn id="dfn-subject" title="subject">
+subject
+</dfn>
+is
+any
+node
+in
+a
+<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
+linked
+data
+graph
+</a>
+with
+at
+least
+one
+outgoing
+edge.
+</li>
+<li>
+A
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>
+<em title="should" class="rfc2119">
+should
+</em>
+be
+labeled
+with
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+(an
+Internationalized
+Resource
+Identifier
+as
+described
+in
+[
+<cite>
+<a href="#bib-RFC3987" rel="biblioentry" class="bibref">
+RFC3987
+</a>
+</cite>
+]).
+</li>
+<li>
+An
+<dfn id="dfn-object" title="object">
+object
+</dfn>
+is
+a
+node
+in
+a
+<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
+linked
+data
+graph
+</a>
+with
+at
+least
+one
+incoming
+edge.
+</li>
+<li>
+An
+<a href="#dfn-object" title="object" class="tref internalDFN">
+object
+</a>
+<em title="may" class="rfc2119">
+may
+</em>
+be
+labeled
+with
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+</li>
+<li>
+<del class="diff-old">An
+object
+</del>
+<ins class="diff-chg">A
+node
+</ins><em title="may" class="rfc2119">
+may
+</em>
+be
+a
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>
+and
+<a href="#dfn-object" title="object" class="tref internalDFN">
+object
+</a>
+at
+the
+same
+time.
+</li>
+<li>
+A
+<dfn id="dfn-property" title="property">
+property
+</dfn>
+is
+an
+edge
+of
+the
+<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
+linked
+data
+graph
+</a>.
+</li>
+<li>
+A
+<a href="#dfn-property" title="property" class="tref internalDFN">
+property
+</a>
+<em title="should" class="rfc2119">
+should
+</em>
+be
+labeled
+with
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>.
+</li>
+<li>
+An
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+that
+is
+a
+label
+in
+a
+<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
+linked
+data
+graph
+</a>
+<em title="should" class="rfc2119">
+should
+</em>
+be
+dereferencable
+to
+a
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+document
+describing
+the
+labeled
+<a href="#dfn-subject" title="subject" class="tref internalDFN">
+subject
+</a>,
+<a href="#dfn-object" title="object" class="tref internalDFN">
+object
+</a>
+or
+<a href="#dfn-property" title="property" class="tref internalDFN">
+property
+</a>.
+</li>
+<li>
+A
+<dfn id="dfn-value" title="value">
+value
+</dfn>
+is
+an
+<a href="#dfn-object" title="object" class="tref internalDFN">
+object
+</a>
+with
+a
+label
+that
+is
+not
+an
+<a href="#dfn-iri" title="iri" class="tref internalDFN">
+<abbr title="Internationalized Resource Identifier">
+IRI
+</abbr>
+</a>
+</li>
+</ol>
+<p>
+Note
+that
+the
+definition
+for
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>
+above
+is
+silent
+on
+the
+topic
+of
+unlabeled
+nodes.
+Unlabeled
+nodes
+are
+not
+considered
+<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
+Linked
+Data
+</a>.
+However,
+this
+specification
+allows
+for
+the
+expression
+of
+unlabled
+nodes,
+as
+most
+graph-based
+data
+sets
+on
+the
+Web
+contain
+a
+number
+of
+associated
+nodes
+that
+are
+not
+named
+and
+thus
+are
+not
+directly
+de-referenceable.
+</p>
+</div>
+<div id="mashing-up-vocabularies" class="appendix informative section">
+<h2>
+<span class="secno">
+C.
+</span>
+Mashing
+Up
+Vocabularies
+</h2>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+Developers
+benefit
+by
+being
+able
+to
+mash
+other
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabularies
+</a>
+into
+their
+JSON-LD
+markup.
+There
+are
+over
+200
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabularies
+</a>
+that
+are
+available
+for
+use
+on
+the
+Web
+today.
+Some
+of
+these
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabularies
+</a>
+include:
+</p>
+<ul>
+<li>
+RDF
+-
+for
+describing
+information
+about
+objects
+and
+concepts
+on
+the
+Web.
+</li>
+<li>
+RDFS
+-
+for
+expressing
+things
+like
+labels
+and
+comments.
+</li>
+<li>
+XSD
+-
+for
+specifying
+basic
+types
+like
+strings,
+integers,
+dates
+and
+times.
+</li>
+<li>
+Dublin
+Core
+-
+for
+describing
+creative
+works.
+</li>
+<li>
+FOAF
+-
+for
+describing
+social
+networks.
+</li>
+<li>
+Calendar
+-
+for
+specifying
+events.
+</li>
+<li>
+SIOC
+-
+for
+describing
+discussions
+on
+blogs
+and
+websites.
+</li>
+<li>
+CCrel
+-
+for
+describing
+Creative
+Commons
+and
+other
+types
+of
+licenses.
+</li>
+<li>
+GEO
+-
+for
+describing
+geographic
+location.
+</li>
+<li>
+VCard
+-
+for
+describing
+organizations
+and
+people.
+</li>
+<li>
+DOAP
+-
+for
+describing
+projects.
+</li>
+</ul>
+<p>
+You
+can
+use
+these
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabularies
+</a>
+in
+combination,
+like
+so:
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/",
+ "sioc": "http://rdfs.org/sioc/ns#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#"
+ },
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:homepage": "http://manu.sporny.org/",
+ "sioc:avatar": "http://twitter.com/account/profile_image/manusporny",
+ "rdfs:comment": "Likes puppies, unicorns and rainbows."
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/",<span class="diff">
+ "sioc": "http://rdfs.org/sioc/ns#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#"</span>
+ },
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:homepage": "http://manu.sporny.org/",<span class="diff">
+ "sioc:avatar": "http://twitter.com/account/profile_image/manusporny",
+ "rdfs:comment": "Likes puppies, unicorns and rainbows."</span>
+</ins>
+}
+</pre>
+<p>
+Developers
+can
+also
+specify
+their
+own
+<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
+vocabulary
+</a>
+documents
+by
+modifying
+the
+<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
+active
+context
+</a>
+in-line
+using
+the
+<code>
+@context
+</code>
+keyword,
+like
+so:
+</p>
+<del class="diff-old">{
+ "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/",
+ "sioc": "http://rdfs.org/sioc/ns#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+
+ },
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:homepage": "http://manu.sporny.org/",
+ "sioc:avatar": "http://twitter.com/account/profile_image/manusporny",
+ "rdfs:comment": "Likes puppies, unicorns and rainbows."
+
+</del>
+<pre class="example">{
+<ins class="diff-chg"> "@context":
+ {
+ "foaf": "http://xmlns.com/foaf/0.1/",
+ "sioc": "http://rdfs.org/sioc/ns#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+</ins> <span class="diff">"myvocab": "http://example.org/myvocab#"</span>
+<ins class="diff-chg">
+ },
+ "@type": "foaf:Person",
+ "foaf:name": "Manu Sporny",
+ "foaf:homepage": "http://manu.sporny.org/",
+ "sioc:avatar": "http://twitter.com/account/profile_image/manusporny",
+ "rdfs:comment": "Likes puppies, unicorns and rainbows."
+</ins> <span class="diff">"myvocab:personality": "friendly"</span>
+}
+</pre>
+</div>
+<div id="iana-considerations" class="appendix informative section">
+<h2>
+<span class="secno">
+D.
+</span>
+IANA
+Considerations
+</h2>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+This
+section
+is
+included
+merely
+for
+standards
+community
+review
+and
+will
+be
+submitted
+to
+the
+Internet
+Engineering
+Steering
+Group
+if
+this
+specification
+becomes
+a
+W3C
+Recommendation.
+</p>
+<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>
+form
+</code>
+</dt>
+<dd>
+Determines
+the
+serialization
+form
+for
+the
+JSON-LD
+document.
+Valid
+values
+<del class="diff-old">include;
+compacted
+,
+</del>
+<ins class="diff-chg">are
+</ins>
+<code>
+expanded
+<del class="diff-old">,
+</del>
+</code>
+and
+<code>
+normalized
+</code>.
+If
+no
+form
+is
+specified
+in
+an
+HTTP
+request
+header
+to
+an
+HTTP
+server,
+the
+server
+<em title="may" class="rfc2119">
+may
+</em>
+choose
+any
+form.
+If
+no
+form
+is
+specified
+for
+an
+HTTP
+client,
+the
+form
+<em title="must not" class="rfc2119">
+must
+not
+</em>
+be
+assumed
+to
+take
+any
+particular
+form.
+</dd>
+</dl>
+</dd>
+<dt>
+Encoding
+considerations:
+</dt>
+<dd>
+The
+same
+as
+the
+<code>
+application/json
+</code>
+MIME
+media
+type.
+</dd>
+<dt>
+Security
+considerations:
+</dt>
+<dd>
+Since
+JSON-LD
+is
+intended
+to
+be
+a
+pure
+data
+exchange
+format
+for
+directed
+graphs,
+the
+serialization
+<em title="should not" class="rfc2119">
+should
+not
+</em>
+be
+passed
+through
+a
+code
+execution
+mechanism
+such
+as
+JavaScript's
+<code>
+eval()
+</code>
+function.
+It
+is
+<em title="recommended" class="rfc2119">
+recommended
+</em>
+that
+a
+conforming
+parser
+does
+not
+attempt
+to
+directly
+evaluate
+the
+JSON-LD
+serialization
+and
+instead
+purely
+parse
+the
+input
+into
+a
+language-native
+data
+structure.
+</dd>
+<dt>
+Interoperability
+considerations:
+</dt>
+<dd>
+Not
+Applicable
+</dd>
+<dt>
+Published
+specification:
+</dt>
+<dd>
+The
+<a href="http://json-ld.org/spec/latest/">
+JSON-LD
+</a>
+specification.
+</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
+&
+email
+address
+to
+contact
+for
+further
+information:
+</dt>
+<dd>
+Manu
+Sporny
+<msporny@digitalbazaar.com>
+</dd>
+<dt>
+Intended
+usage:
+</dt>
+<dd>
+Common
+</dd>
+<dt>
+Restrictions
+on
+usage:
+</dt>
+<dd>
+None
+</dd>
+<dt>
+Author(s):
+</dt>
+<dd>
+Manu
+Sporny,
+Gregg
+Kellogg,
+<ins class="diff-new">Markus
+Lanthaler,
+</ins>
+Dave
+Longley
+</dd>
+<dt>
+Change
+controller:
+</dt>
+<dd>
+W3C
+</dd>
+</dl>
+</div>
+<div id="acknowledgements" class="appendix informative section">
+<h2>
+<span class="secno">
+E.
+</span>
+Acknowledgements
+</h2>
+<p>
+<em>
+This
+section
+is
+non-normative.
+</em>
+</p>
+<p>
+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,
+Dave
+Longley,
+Dave
+Lehn
+and
+Mike
+Johnson
+who
+reviewed,
+provided
+feedback,
+and
+performed
+several
+implementations
+of
+the
+specification,
+and
+Ian
+Davis,
+who
+created
+RDF/JSON.
+Thanks
+also
+to
+Nathan
+Rixham,
+Bradley
+P.
+Allen,
+Kingsley
+Idehen,
+Glenn
+McDonald,
+Alexandre
+Passant,
+Danny
+Ayers,
+Ted
+Thibodeau
+Jr.,
+Olivier
+Grisel,
+Niklas
+Lindström,
+Markus
+Lanthaler,
+and
+Richard
+Cyganiak
+for
+their
+input
+on
+the
+specification.
+</p>
+</div>
+<div class="appendix section" id="references">
+<h2>
+<span class="secno">
+F.
+</span>
+References
+</h2>
+<div class="section" id="normative-references">
+<h3>
+<span class="secno">
+F.1
+</span>
+Normative
+references
+</h3>
+<dl class="bibliography">
+<dt id="bib-BCP47">
+[BCP47]
+</dt>
+<dd>
+A.
+Phillips,
+M.
+Davis.
+<a href="http://tools.ietf.org/rfc/bcp/bcp47.txt">
+<cite>
+Tags
+for
+Identifying
+Languages
+</cite>
+</a>
+September
+2009.
+IETF
+Best
+Current
+Practice.
+URL:
+<a href="http://tools.ietf.org/rfc/bcp/bcp47.txt">
+http://tools.ietf.org/rfc/bcp/bcp47.txt
+</a>
+</dd>
+<dt id="bib-RFC3987">
+[RFC3987]
+</dt>
+<dd>
+M.
+Dürst;
+M.
+Suignard.
+<a href="http://www.ietf.org/rfc/rfc3987.txt">
+<cite>
+Internationalized
+Resource
+Identifiers
+(IRIs).
+</cite>
+</a>
+January
+2005.
+Internet
+RFC
+3987.
+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>
+D.
+Crockford.
+<a href="http://www.ietf.org/rfc/rfc4627.txt">
+<cite>
+The
+application/json
+Media
+Type
+for
+JavaScript
+Object
+Notation
+(JSON)
+</cite>
+</a>
+July
+2006.
+Internet
+RFC
+4627.
+URL:
+<a href="http://www.ietf.org/rfc/rfc4627.txt">
+http://www.ietf.org/rfc/rfc4627.txt
+</a>
+</dd>
+<dt id="bib-RFC5988">
+<ins class="diff-new">[RFC5988]
+</ins></dt><dd><ins class="diff-new">
+M.
+Nottingham.
+</ins><a href="http://tools.ietf.org/rfc/rfc5988"><cite><ins class="diff-new">
+Web
+Linking
+</ins></cite></a><ins class="diff-new">
+October
+2010.
+IETF
+Standard.
+URL:
+</ins><a href="http://tools.ietf.org/rfc/rfc5988.txt"><ins class="diff-new">
+http://tools.ietf.org/rfc/rfc5988.txt
+</ins></a></dd>
+<dt id="bib-WEBIDL">
+[WEBIDL]
+</dt>
+<dd>
+Cameron
+McCormack.
+<a href="http://www.w3.org/TR/2011/WD-WebIDL-20110927/">
+<cite>
+Web
+IDL.
+</cite>
+</a>
+27
+September
+2011.
+W3C
+Working
+Draft.
+(Work
+in
+progress.)
+URL:
+<a href="http://www.w3.org/TR/2011/WD-WebIDL-20110927/">
+http://www.w3.org/TR/2011/WD-WebIDL-20110927/
+</a>
+</dd>
+</dl>
+</div>
+<div class="section" id="informative-references">
+<h3>
+<span class="secno">
+F.2
+</span>
+Informative
+references
+</h3>
+<dl class="bibliography">
+<dt id="bib-ECMA-262">
+[ECMA-262]
+</dt>
+<dd>
+<a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">
+<cite>
+ECMAScript
+Language
+Specification.
+</cite>
+</a>
+December
+1999.
+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-HTML-RDFA">
+[HTML-RDFA]
+</dt>
+<dd>
+Manu
+Sporny;
+et
+al.
+<a href="http://www.w3.org/TR/rdfa-in-html/">
+<cite>
+HTML+RDFa
+</cite>
+</a>
+04
+March
+2010.
+W3C
+Working
+Draft.
+URL:
+<a href="http://www.w3.org/TR/rdfa-in-html/">
+http://www.w3.org/TR/rdfa-in-html/
+</a>
+</dd>
+<dt id="bib-JSON-LD-API">
+[JSON-LD-API]
+</dt>
+<dd>
+Manu
+Sporny,
+Gregg
+Kellogg,
+Dave
+Longley,
+Eds.
+<cite>
+<a href="http://json-ld.org/spec/latest/json-ld-api/">
+JSON-LD
+API
+</a>
+</cite>
+Latest.
+W3C
+Editor's
+Draft.
+URL:
+<a href="http://json-ld.org/spec/latest/json-ld-api/">
+http://json-ld.org/spec/latest/json-ld-api/
+</a>
+</dd>
+<dt id="bib-RDF-PRIMER">
+[RDF-PRIMER]
+</dt>
+<dd>
+Frank
+Manola;
+Eric
+Miller.
+<a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">
+<cite>
+RDF
+Primer.
+</cite>
+</a>
+10
+February
+2004.
+W3C
+Recommendation.
+URL:
+<a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">
+http://www.w3.org/TR/2004/REC-rdf-primer-20040210/
+</a>
+</dd>
+<dt id="bib-RDFA-CORE">
+[RDFA-CORE]
+</dt>
+<dd>
+Shane
+McCarron;
+et
+al.
+<a href="http://www.w3.org/TR/2011/WD-rdfa-core-20111215">
+<cite>
+RDFa
+Core
+1.1:
+Syntax
+and
+processing
+rules
+for
+embedding
+RDF
+through
+attributes.
+</cite>
+</a>
+15
+December
+2011.
+W3C
+Working
+Draft.
+URL:
+<a href="http://www.w3.org/TR/2011/WD-rdfa-core-20111215">
+http://www.w3.org/TR/2011/WD-rdfa-core-20111215
+</a>
+</dd>
+<dt id="bib-TURTLE">
+[TURTLE]
+</dt>
+<dd>
+David
+Beckett,
+Tim
+Berners-Lee.
+<a href="http://www.w3.org/TeamSubmission/turtle/">
+<cite>
+Turtle:
+Terse
+RDF
+Triple
+Language.
+</cite>
+</a>
+January
+2008.
+W3C
+Team
+Submission.
+URL:
+<a href="http://www.w3.org/TeamSubmission/turtle/">
+http://www.w3.org/TeamSubmission/turtle/
+</a>
+</dd>
+<dt id="bib-XML-NAMES">
+[XML-NAMES]
+</dt>
+<dd>
+Richard
+Tobin;
+et
+al.
+<a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/">
+<cite>
+Namespaces
+in
+XML
+1.0
+(Third
+Edition).
+</cite>
+</a>
+8
+December
+2009.
+W3C
+Recommendation.
+URL:
+<a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/">
+http://www.w3.org/TR/2009/REC-xml-names-20091208/
+</a>
+</dd>
+</dl>
+</div>
+</div>
+</body>
+</html>
--- a/spec/ED/json-ld-syntax/20120318/diff-20120318.html Sun Mar 18 20:40:45 2012 +0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13538 +0,0 @@
-<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
-<html lang="en" dir="ltr">
-<head>
-<title>JSON-LD Syntax 1.0</title>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8">
-<!--
- === NOTA BENE ===
- For the three scripts below, if your spec resides on dev.w3 you can check them
- out in the same tree and use relative links so that they'll work offline,
- -->
-
-
-<style>
-.diff { font-weight:bold; color:#0a3; }
-ol.algorithm.update { margin-left: 2em; }
-ol.algorithm.update>li { list-style-type: none; }
-ol.algorithm.update>li>span.list-number {
- display:block;
- float: left;
- margin-left: -3.5em;
-}
-</style>
-<style type="text/css">
-/*****************************************************************
- * ReSpec CSS
- * Robin Berjon (robin at berjon dot com)
- * v0.05 - 2009-07-31
- *****************************************************************/
-
-
-/* --- 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;
-}
-
-code {
- color: #ff4500;
-}
-
-
-/* --- 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 {
- font-weight: bold;
- color: #005a9c;
-}
-
-.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 {
- color: #005a9c;
-}
-.idlMethName {
- color: #ff4500;
-}
-.idlMethName a {
- color: #ff4500;
- border-bottom: 1px dotted #ff4500;
- text-decoration: none;
-}
-
-/*.idlParam*/
-.idlParamType {
- color: #005a9c;
-}
-.idlParamName {
- font-style: italic;
-}
-
-.extAttr {
- color: #666;
-}
-
-/*.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.fields, dl.dictionary-members {
- margin-left: 2em;
-}
-
-.attributes dt, .methods dt, .constants dt, .fields dt, .dictionary-members dt {
- font-weight: normal;
-}
-
-.attributes dt code, .methods dt code, .constants 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;
-}
-
-.attributes dd, .methods dd, .constants 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%;
-}
-
-/* --- TOC --- */
-.toc a {
- text-decoration: none;
-}
-
-a .secno {
- color: #000;
-}
-
-/* --- 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;
-}
-
-/* --- EXAMPLES --- */
-pre.example {
- border-top: 1px solid #ff4500;
- border-bottom: 1px solid #ff4500;
- padding: 1em;
- margin-top: 1em;
-}
-
-pre.example::before {
- content: "Example";
- display: block;
- width: 150px;
- background: #ff4500;
- color: #fff;
- font-family: initial;
- padding: 3px;
- font-weight: bold;
- margin: -1em 0 1em -1em;
-}
-
-/* --- EDITORIAL NOTES --- */
-.issue {
- padding: 1em;
- margin: 1em 0em 0em;
- border: 1px solid #f00;
- background: #ffc;
-}
-
-.issue::before {
- content: "Issue";
- display: block;
- width: 150px;
- margin: -1.5em 0 0.5em 0;
- font-weight: bold;
- border: 1px solid #f00;
- background: #fff;
- padding: 3px 1em;
-}
-
-.note {
- margin: 1em 0em 0em;
- padding: 1em;
- border: 2px solid #cff6d9;
- background: #e2fff0;
-}
-
-.note::before {
- content: "Note";
- display: block;
- width: 150px;
- margin: -1.5em 0 0.5em 0;
- font-weight: bold;
- border: 1px solid #cff6d9;
- background: #fff;
- padding: 3px 1em;
-}
-
-/* --- Best Practices --- */
-div.practice {
- border: solid #bebebe 1px;
- margin: 2em 1em 1em 2em;
-}
-
-span.practicelab {
- margin: 1.5em 0.5em 1em 1em;
- font-weight: bold;
- font-style: italic;
-}
-
-span.practicelab { background: #dfffff; }
-
-span.practicelab {
- position: relative;
- padding: 0 0.5em;
- top: -1.5em;
-}
-
-p.practicedesc {
- margin: 1.5em 0.5em 1em 1em;
-}
-
-@media screen {
- p.practicedesc {
- position: relative;
- top: -2em;
- padding: 0;
- margin: 1.5em 0.5em -1em 1em;
- }
-}
-
-/* --- SYNTAX HIGHLIGHTING --- */
-pre.sh_sourceCode {
- background-color: white;
- color: black;
- font-style: normal;
- font-weight: normal;
-}
-
-pre.sh_sourceCode .sh_keyword { color: #005a9c; font-weight: bold; } /* language keywords */
-pre.sh_sourceCode .sh_type { color: #666; } /* basic types */
-pre.sh_sourceCode .sh_usertype { color: teal; } /* user defined types */
-pre.sh_sourceCode .sh_string { color: red; font-family: monospace; } /* strings and chars */
-pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; } /* regular expressions */
-pre.sh_sourceCode .sh_specialchar { color: #ffc0cb; font-family: monospace; } /* e.g., \n, \t, \\ */
-pre.sh_sourceCode .sh_comment { color: #A52A2A; font-style: italic; } /* comments */
-pre.sh_sourceCode .sh_number { color: purple; } /* literal numbers */
-pre.sh_sourceCode .sh_preproc { color: #00008B; font-weight: bold; } /* e.g., #include, import */
-pre.sh_sourceCode .sh_symbol { color: blue; } /* e.g., *, + */
-pre.sh_sourceCode .sh_function { color: black; font-weight: bold; } /* function calls and declarations */
-pre.sh_sourceCode .sh_cbracket { color: red; } /* block brackets (e.g., {, }) */
-pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: #00FFFF; } /* TODO and FIXME */
-
-/* Predefined variables and functions (for instance glsl) */
-pre.sh_sourceCode .sh_predef_var { color: #00008B; }
-pre.sh_sourceCode .sh_predef_func { color: #00008B; font-weight: bold; }
-
-/* for OOP */
-pre.sh_sourceCode .sh_classname { color: teal; }
-
-/* line numbers (not yet implemented) */
-pre.sh_sourceCode .sh_linenum { display: none; }
-
-/* Internet related */
-pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
-
-/* for ChangeLog and Log files */
-pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
-pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: #00008B; font-weight: bold; }
-pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: #006400; }
-
-/* for Prolog, Perl... */
-pre.sh_sourceCode .sh_variable { color: #006400; }
-
-/* for LaTeX */
-pre.sh_sourceCode .sh_italics { color: #006400; font-style: italic; }
-pre.sh_sourceCode .sh_bold { color: #006400; font-weight: bold; }
-pre.sh_sourceCode .sh_underline { color: #006400; text-decoration: underline; }
-pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
-pre.sh_sourceCode .sh_argument { color: #006400; }
-pre.sh_sourceCode .sh_optionalargument { color: purple; }
-pre.sh_sourceCode .sh_math { color: orange; }
-pre.sh_sourceCode .sh_bibtex { color: blue; }
-
-/* for diffs */
-pre.sh_sourceCode .sh_oldfile { color: orange; }
-pre.sh_sourceCode .sh_newfile { color: #006400; }
-pre.sh_sourceCode .sh_difflines { color: blue; }
-
-/* for css */
-pre.sh_sourceCode .sh_selector { color: purple; }
-pre.sh_sourceCode .sh_property { color: blue; }
-pre.sh_sourceCode .sh_value { color: #006400; font-style: italic; }
-
-/* other */
-pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
-pre.sh_sourceCode .sh_paren { color: red; }
-pre.sh_sourceCode .sh_attribute { color: #006400; }
-
-</style><style type="text/css">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, ".") ") "; }
-
-</style><link charset="utf-8" type="text/css" rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/w3c-unofficial"><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 style="display: inherit;">
-<div class="head">
-<p>
-</p>
-<h1 class="title" id="title">
-JSON-LD
-Syntax
-1.0
-</h1>
-<h2 id="subtitle">
-A
-Context-based
-JSON
-Serialization
-for
-Linking
-Data
-</h2>
-<h2 id="unofficial-draft-18-march-2012">
-Unofficial
-Draft
-<del class="diff-old">22
-January
-</del>
-<ins class="diff-chg">18
-March
-</ins>
-2012
-</h2>
-<dl>
-<dt>
-Editors:
-</dt>
-<dd>
-<a href="http://manu.sporny.org/">
-Manu
-Sporny
-</a>,
-<a href="http://digitalbazaar.com/">
-Digital
-Bazaar
-</a>
-</dd>
-<dd>
-<a href="http://greggkellogg.net/">
-Gregg
-Kellogg
-</a>,
-<a href="http://kellogg-assoc.com/">
-Kellogg
-Associates
-</a>
-</dd>
-<dt>
-Authors:
-</dt>
-<dd>
-<a href="http://digitalbazaar.com/">
-Manu
-Sporny
-</a>,
-<a href="http://digitalbazaar.com/">
-Digital
-Bazaar
-</a>
-</dd>
-<dd>
-<a href="http://digitalbazaar.com/">
-Dave
-Longley
-</a>,
-<a href="http://digitalbazaar.com/">
-Digital
-Bazaar
-</a>
-</dd>
-<dd>
-<a href="http://greggkellogg.net/">
-Gregg
-Kellogg
-</a>,
-<a href="http://kellogg-assoc.com/">
-Kellogg
-Associates
-</a>
-</dd>
-<dd>
-<a href="http://www.markus-lanthaler.com/">
-Markus
-Lanthaler
-</a>,
-<a href="http://www.tugraz.at/">
-Graz
-University
-of
-Technology
-</a>
-</dd>
-<dd>
-<a href="http://webbackplane.com/">
-Mark
-Birbeck
-</a>,
-<a href="http://webbackplane.com/">
-Backplane
-Ltd.
-</a>
-</dd>
-</dl>
-<p>
-This
-document
-is
-also
-available
-in
-this
-non-normative
-format:
-<a href="diff-20120112.html">
-diff
-to
-previous
-version
-</a>.
-</p>
-<p class="copyright">
-This
-document
-is
-licensed
-under
-a
-<a class="subfoot" href="http://creativecommons.org/licenses/by/3.0/" rel="license">
-Creative
-Commons
-Attribution
-3.0
-License
-</a>.
-</p>
-<hr>
-</div>
-<div class="introductory section" id="abstract">
-<h2>
-Abstract
-</h2>
-<p>
-JSON
-[
-<cite>
-<a href="#bib-RFC4627" rel="biblioentry" class="bibref">
-RFC4627
-</a>
-</cite>
-]
-has
-proven
-to
-be
-a
-highly
-useful
-object
-serialization
-and
-messaging
-format.
-In
-an
-attempt
-to
-harmonize
-the
-representation
-of
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-in
-JSON,
-this
-specification
-outlines
-a
-common
-JSON
-representation
-format
-for
-expressing
-directed
-graphs;
-mixing
-both
-Linked
-Data
-and
-non-Linked
-Data
-in
-a
-single
-document.
-</p>
-</div>
-<div id="sotd" class="introductory section">
-<h2>
-Status
-of
-This
-Document
-</h2>
-<p>
-This
-document
-is
-merely
-a
-public
-working
-draft
-of
-a
-potential
-specification.
-It
-has
-no
-official
-standing
-of
-any
-kind
-and
-does
-not
-represent
-the
-support
-or
-consensus
-of
-any
-standards
-organisation.
-</p>
-<p>
-This
-document
-is
-an
-experimental
-work
-in
-progress.
-</p>
-</div>
-<div class="section" id="toc">
-<h2 class="introductory">
-Table
-of
-Contents
-</h2>
-<ul class="toc">
-<li class="tocline">
-<a class="tocxref" href="#introduction">
-<span class="secno">
-1.
-</span>
-Introduction
-</a>
-<ul class="toc">
-<li class="tocline">
-<a class="tocxref" href="#how-to-read-this-document">
-<span class="secno">
-1.1
-</span>
-How
-to
-Read
-this
-Document
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#syntax-tokens-and-keywords">
-<span class="secno">
-1.2
-</span>
-Syntax
-Tokens
-and
-Keywords
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#contributing">
-<span class="secno">
-1.3
-</span>
-Contributing
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#design">
-<span class="secno">
-2.
-</span>
-Design
-</a>
-<ul class="toc">
-<li class="tocline">
-<a class="tocxref" href="#goals-and-rationale">
-<span class="secno">
-2.1
-</span>
-Goals
-and
-Rationale
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#linking-data">
-<span class="secno">
-2.2
-</span>
-Linking
-Data
-</a>
-<ul class="toc">
-<li class="tocline">
-<a class="tocxref" href="#the-context">
-<span class="secno">
-2.2.1
-</span>
-The
-Context
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#from-json-to-json-ld">
-<span class="secno">
-2.2.2
-</span>
-From
-JSON
-to
-JSON-LD
-</a>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#basic-concepts">
-<span class="secno">
-3.
-</span>
-Basic
-Concepts
-</a>
-<ul class="toc">
-<li class="tocline">
-<a class="tocxref" href="#iris">
-<span class="secno">
-3.1
-</span>
-IRIs
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#identifying-the-subject">
-<span class="secno">
-3.2
-</span>
-Identifying
-the
-Subject
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#specifying-the-type">
-<span class="secno">
-3.3
-</span>
-Specifying
-the
-Type
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#strings">
-<span class="secno">
-3.4
-</span>
-Strings
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#string-internationalization">
-<span class="secno">
-3.5
-</span>
-String
-Internationalization
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#typed-values">
-<span class="secno">
-3.6
-</span>
-Typed
-Values
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#multiple-objects-for-a-single-property">
-<span class="secno">
-3.7
-</span>
-Multiple
-Objects
-for
-a
-Single
-Property
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#multiple-values-for-a-single-property">
-<span class="secno">
-3.8
-</span>
-Multiple
-Values
-for
-a
-Single
-Property
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#lists">
-<span class="secno">
-3.9
-</span>
-Lists
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#advanced-concepts">
-<span class="secno">
-4.
-</span>
-Advanced
-Concepts
-</a>
-<ul class="toc">
-<li class="tocline">
-<a class="tocxref" href="#compact-iris">
-<span class="secno">
-4.1
-</span>
-<del class="diff-old">Prefixes
-</del>
-<ins class="diff-chg">Compact
-IRIs
-</ins>
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#external-contexts">
-<span class="secno">
-4.2
-</span>
-External
-Contexts
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#referencing-contexts-from-json-documents">
-<span class="secno">
-4.3
-</span>
-<ins class="diff-new">Referencing
-Contexts
-from
-JSON
-Documents
-</ins></a></li><li class="tocline"><a class="tocxref" href="#default-language"><span class="secno"><ins class="diff-new">
-4.4
-</ins></span>
-Default
-Language
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#expanded-term-definition">
-<span class="secno">
-<del class="diff-old">4.4
-</del>
-<ins class="diff-chg">4.5
-</ins>
-</span>
-Expanded
-Term
-Definition
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#automatic-typing">
-<span class="secno">
-<del class="diff-old">4.5
-</del>
-<ins class="diff-chg">4.6
-</ins>
-</span>
-Automatic
-Typing
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#type-coercion">
-<span class="secno">
-<del class="diff-old">4.6
-</del>
-<ins class="diff-chg">4.7
-</ins>
-</span>
-Type
-Coercion
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#iri-expansion-within-a-context">
-<span class="secno">
-<del class="diff-old">4.7
-</del>
-<ins class="diff-chg">4.8
-</ins>
-</span>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-Expansion
-Within
-a
-Context
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#embedding">
-<span class="secno">
-<del class="diff-old">4.8
-</del>
-<ins class="diff-chg">4.9
-</ins>
-</span>
-Embedding
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#identifying-unlabeled-nodes">
-<span class="secno">
-<del class="diff-old">4.9
-</del>
-<ins class="diff-chg">4.10
-</ins>
-</span>
-Identifying
-Unlabeled
-Nodes
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#aliasing-keywords">
-<span class="secno">
-<del class="diff-old">4.10
-</del>
-<ins class="diff-chg">4.11
-</ins>
-</span>
-Aliasing
-Keywords
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#expansion">
-<span class="secno">
-<ins class="diff-new">4.12
-</ins></span><ins class="diff-new">
-Expansion
-</ins></a></li><li class="tocline"><a class="tocxref" href="#compaction"><span class="secno"><ins class="diff-new">
-4.13
-</ins></span><ins class="diff-new">
-Compaction
-</ins></a></li><li class="tocline"><a class="tocxref" href="#framing"><span class="secno"><ins class="diff-new">
-4.14
-</ins></span><ins class="diff-new">
-Framing
-</ins></a></li><li class="tocline"><a class="tocxref" href="#normalization"><span class="secno"><ins class="diff-new">
-4.15
-</ins></span><ins class="diff-new">
-Normalization
-</ins></a></li>
-</ul>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#markup-examples">
-<span class="secno">
-A.
-</span>
-Markup
-Examples
-</a>
-<ul class="toc">
-<li class="tocline">
-<a class="tocxref" href="#turtle">
-<span class="secno">
-A.1
-</span>
-Turtle
-</a>
-<ul class="toc">
-<li class="tocline">
-<a class="tocxref" href="#prefix-definitions">
-<span class="secno">
-A.1.1
-</span>
-Prefix
-definitions
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#embedding-1">
-<span class="secno">
-A.1.2
-</span>
-Embedding
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#lists-1">
-<span class="secno">
-A.1.3
-</span>
-Lists
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#rdfa">
-<span class="secno">
-A.2
-</span>
-RDFa
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#microformats">
-<span class="secno">
-A.3
-</span>
-Microformats
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#microdata">
-<span class="secno">
-A.4
-</span>
-Microdata
-</a>
-</li>
-</ul>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#linked-data">
-<span class="secno">
-B.
-</span>
-Linked
-Data
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#mashing-up-vocabularies">
-<span class="secno">
-C.
-</span>
-Mashing
-Up
-Vocabularies
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#iana-considerations">
-<span class="secno">
-D.
-</span>
-IANA
-Considerations
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#acknowledgements">
-<span class="secno">
-E.
-</span>
-Acknowledgements
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#references">
-<span class="secno">
-F.
-</span>
-References
-</a>
-<ul class="toc">
-<li class="tocline">
-<a class="tocxref" href="#normative-references">
-<span class="secno">
-F.1
-</span>
-Normative
-references
-</a>
-</li>
-<li class="tocline">
-<a class="tocxref" href="#informative-references">
-<span class="secno">
-F.2
-</span>
-Informative
-references
-</a>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div id="introduction" class="informative section">
-<h2>
-<span class="secno">
-1.
-</span>
-Introduction
-</h2>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-JSON,
-as
-specified
-in
-[
-<cite>
-<a href="#bib-RFC4627" rel="biblioentry" class="bibref">
-RFC4627
-</a>
-</cite>
-],
-is
-a
-simple
-language
-for
-representing
-data
-on
-the
-Web.
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-is
-a
-technique
-for
-creating
-a
-graph
-of
-interlinked
-data
-across
-different
-documents
-or
-Web
-sites.
-Data
-entities
-are
-described
-using
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s,
-which
-are
-typically
-dereferencable
-and
-thus
-may
-be
-used
-to
-find
-more
-information
-about
-an
-entity,
-creating
-a
-<del class="diff-old">"Web
-</del>
-<ins class="diff-chg">"Web
-</ins>
-of
-<del class="diff-old">Knowledge".
-</del>
-<ins class="diff-chg">Knowledge".
-</ins>
-JSON-LD
-is
-intended
-to
-be
-a
-simple
-publishing
-method
-for
-expressing
-not
-only
-Linked
-Data
-in
-JSON,
-but
-also
-for
-adding
-semantics
-to
-existing
-JSON.
-</p>
-<p>
-JSON-LD
-is
-designed
-as
-a
-lightweight
-syntax
-that
-can
-be
-used
-to
-express
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>.
-It
-is
-primarily
-intended
-to
-be
-a
-way
-to
-use
-Linked
-Data
-in
-Javascript
-and
-other
-Web-based
-programming
-environments.
-It
-is
-also
-useful
-when
-building
-interoperable
-Web
-services
-and
-when
-storing
-Linked
-Data
-in
-JSON-based
-document
-storage
-engines.
-It
-is
-practical
-and
-designed
-to
-be
-as
-simple
-as
-possible,
-utilizing
-the
-large
-number
-of
-JSON
-parsers
-and
-libraries
-available
-today.
-</p>
-<p>
-The
-syntax
-does
-not
-necessarily
-require
-applications
-to
-change
-their
-JSON,
-but
-allows
-one
-to
-easily
-add
-meaning
-by
-simply
-adding
-or
-referencing
-a
-context.
-The
-syntax
-is
-designed
-to
-not
-disturb
-already
-deployed
-systems
-running
-on
-JSON,
-but
-provide
-a
-smooth
-upgrade
-path
-from
-JSON
-to
-JSON-LD
-with
-added
-semantics.
-Finally,
-the
-format
-is
-intended
-to
-be
-easy
-to
-parse,
-efficient
-to
-generate,
-and
-only
-requires
-a
-very
-small
-memory
-footprint
-in
-order
-to
-operate.
-</p>
-<div class="section" id="how-to-read-this-document">
-<h3>
-<span class="secno">
-1.1
-</span>
-How
-to
-Read
-this
-Document
-</h3>
-<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
-that
-want
-to
-encode
-Linked
-Data
-in
-a
-way
-that
-is
-cross-language
-compatible
-via
-JSON.
-</li>
-<li>
-Software
-developers
-that
-want
-to
-understand
-the
-design
-decisions
-and
-language
-syntax
-for
-JSON-LD.
-</li>
-<li>
-Software
-developers
-that
-want
-to
-implement
-processors
-and
-APIs
-for
-JSON-LD.
-</li>
-</ul>
-<p>
-This
-specification
-does
-not
-describe
-the
-programming
-interfaces
-for
-the
-JSON-LD
-Syntax.
-The
-specification
-that
-describes
-the
-programming
-interfaces
-for
-JSON-LD
-documents
-is
-the
-JSON-LD
-Application
-Programming
-Interface
-[
-<cite>
-<a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref">
-JSON-LD-API
-</a>
-</cite>
-].
-</p>
-<p>
-To
-understand
-the
-basics
-in
-this
-specification
-you
-must
-first
-be
-familiar
-with
-JSON,
-which
-is
-detailed
-in
-[
-<cite>
-<a href="#bib-RFC4627" rel="biblioentry" class="bibref">
-RFC4627
-</a>
-</cite>
-].
-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 href="#bib-ECMA-262" rel="biblioentry" class="bibref">
-ECMA-262
-</a>
-</cite>
-]
-and
-WebIDL
-[
-<cite>
-<a href="#bib-WEBIDL" rel="biblioentry" class="bibref">
-WEBIDL
-</a>
-</cite>
-].
-</p>
-<p>
-JSON
-[
-<cite>
-<a href="#bib-RFC4627" rel="biblioentry" class="bibref">
-RFC4627
-</a>
-</cite>
-]
-defines
-several
-terms
-which
-are
-used
-throughout
-this
-document:
-</p>
-<dl>
-<dt>
-<dfn id="dfn-json_object" title="json_object">
-JSON
-Object
-</dfn>
-</dt>
-<dd>
-An
-object
-structure
-is
-represented
-as
-a
-pair
-of
-curly
-brackets
-surrounding
-zero
-or
-more
-name/value
-pairs
-(or
-members).
-A
-name
-is
-a
-<a href="#dfn-string" title="string" class="tref internalDFN">
-string
-</a>.
-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
-<em title="should" class="rfc2119">
-should
-</em>
-be
-unique.
-</dd>
-<dt>
-<dfn id="dfn-array" title="array">
-array
-</dfn>
-</dt>
-<dd>
-An
-array
-is
-an
-ordered
-collection
-of
-values.
-An
-array
-structure
-is
-represented
-as
-square
-brackets
-surrounding
-zero
-or
-more
-values
-(or
-elements).
-Elements
-are
-separated
-by
-commas.
-Within
-JSON-LD,
-array
-order
-is
-not
-preserved
-by
-default,
-unless
-specific
-markup
-is
-provided
-(see
-<a href="#lists">
-Lists
-</a>
-).
-This
-is
-because
-the
-basic
-data
-model
-of
-JSON-LD
-is
-a
-<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
-linked
-data
-graph
-</a>,
-which
-is
-inherently
-unordered.
-</dd>
-<dt>
-<dfn id="dfn-string" title="string">
-string
-</dfn>
-</dt>
-<dd>
-A
-string
-is
-a
-sequence
-of
-zero
-or
-more
-Unicode
-characters,
-wrapped
-in
-double
-quotes,
-using
-backslash
-escapes.
-A
-character
-is
-represented
-as
-a
-single
-character
-string.
-</dd>
-<dt>
-<dfn id="dfn-number" title="number">
-number
-</dfn>
-</dt>
-<dd>
-A
-number
-is
-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 id="dfn-true" title="true">
-true
-</dfn>
-and
-<dfn id="dfn-false" title="false">
-false
-</dfn>
-</dt>
-<dd>
-Values
-that
-are
-used
-to
-express
-one
-of
-two
-possible
-boolean
-states.
-</dd>
-<dt>
-<dfn id="dfn-null" title="null">
-null
-</dfn>
-</dt>
-<dd>
-The
-use
-of
-the
-<em>
-null
-</em>
-value
-is
-undefined
-within
-JSON-LD.
-</dd>
-</dl>
-<p>
-</p>
-</div>
-<div class="section" id="syntax-tokens-and-keywords">
-<h3>
-<span class="secno">
-1.2
-</span>
-Syntax
-Tokens
-and
-Keywords
-</h3>
-<p>
-JSON-LD
-specifies
-a
-number
-of
-syntax
-tokens
-and
-keywords
-that
-are
-using
-in
-all
-algorithms
-described
-in
-this
-section:
-</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 href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-and
-help
-developers
-express
-specific
-identifiers
-in
-a
-compact
-manner.
-The
-<code>
-@context
-</code>
-keyword
-is
-described
-in
-detail
-in
-the
-section
-titled
-<a href="#the-context">
-The
-Context
-</a>.
-</dd>
-<dt>
-<code>
-@id
-</code>
-</dt>
-<dd>
-Used
-to
-uniquely
-identify
-things
-that
-are
-being
-described
-in
-the
-document.
-This
-keyword
-is
-described
-in
-the
-section
-titled
-<a href="#identifying-the-subject">
-Identifying
-the
-Subject
-</a>.
-</dd>
-<dt>
-<code>
-@value
-</code>
-</dt>
-<dd>
-Used
-to
-specify
-the
-data
-that
-is
-associated
-with
-a
-particular
-<a href="#dfn-property" title="property" class="tref internalDFN">
-property
-</a>
-in
-the
-graph.
-This
-keyword
-is
-described
-in
-the
-sections
-titled
-<a href="#string-internationalization">
-String
-Internationalization
-</a>
-and
-<a href="#typed-values">
-Typed
-Values
-</a>.
-</dd>
-<dt>
-<code>
-@language
-</code>
-</dt>
-<dd>
-Used
-to
-specify
-the
-native
-language
-for
-a
-particular
-value.
-This
-keyword
-is
-described
-in
-the
-section
-titled
-<a href="#string-internationalization">
-String
-Internationalization
-</a>.
-</dd>
-<dt>
-<code>
-@type
-</code>
-</dt>
-<dd>
-Used
-to
-set
-the
-data
-type
-of
-a
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>
-or
-<a href="#dfn-typed_value" title="typed_value" class="tref internalDFN">
-typed
-value
-</a>.
-This
-keyword
-is
-described
-in
-the
-section
-titled
-<a href="#typed-values">
-Typed
-Values
-</a>.
-</dd>
-<dt>
-<code>
-<ins class="diff-new">@container
-</ins></code></dt><dd><ins class="diff-new">
-Used
-to
-set
-the
-container
-of
-a
-particular
-value.
-This
-keyword
-is
-described
-in
-the
-section
-titled
-</ins><a href="#lists"><ins class="diff-new">
-Lists
-</ins></a>.</dd><dt><code>
-@list
-</code>
-</dt>
-<dd>
-Used
-to
-express
-an
-ordered
-set
-of
-data.
-This
-keyword
-is
-described
-in
-the
-section
-titled
-<a href="#lists">
-Lists
-</a>.
-</dd>
-<dt>
-<code>:
-</code>
-</dt>
-<dd>
-The
-separator
-for
-JSON
-keys
-and
-values
-that
-use
-<del class="diff-old">the
-prefix
-mechanism.
-</del>
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-<ins class="diff-chg">compact
-IRIs
-</ins></a>.
-</dd>
-</dl>
-<p>
-<ins class="diff-new">For
-the
-avoidance
-of
-doubt,
-all
-keys,
-keywords
-and
-values
-in
-JSON-LD
-are
-case-sensitive.
-</ins></p>
-</div>
-<div class="section" id="contributing">
-<h3>
-<span class="secno">
-1.3
-</span>
-Contributing
-</h3>
-<p>
-There
-are
-a
-number
-of
-ways
-that
-one
-may
-participate
-in
-the
-development
-of
-this
-specification:
-</p>
-<ul>
-<li>
-Technical
-discussion
-typically
-occurs
-on
-the
-public
-mailing
-list:
-<a href="http://lists.w3.org/Archives/Public/public-linked-json/">
-public-linked-json@w3.org
-</a>
-</li>
-<li>
-<a href="http://json-ld.org/minutes/">
-Public
-teleconferences
-</a>
-are
-held
-every
-week
-on
-Tuesdays
-at
-1500
-UTC.
-</li>
-<li>
-Specification
-bugs
-and
-issues
-should
-be
-reported
-in
-the
-<a href="https://github.com/json-ld/json-ld.org/issues">
-issue
-tracker
-</a>.
-</li>
-<li>
-<a href="https://github.com/json-ld/json-ld.org/tree/master/spec">
-Source
-code
-</a>
-for
-the
-specification
-can
-be
-found
-on
-Github.
-</li>
-<li>
-The
-<a href="http://webchat.freenode.net/?channels=#json-ld">
-#json-ld
-</a>
-IRC
-channel
-is
-available
-for
-real-time
-discussion
-on
-irc.freenode.net.
-</li>
-</ul>
-</div>
-</div>
-<div id="design" class="informative section">
-<h2>
-<span class="secno">
-2.
-</span>
-Design
-</h2>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-The
-following
-section
-outlines
-the
-design
-goals
-and
-rationale
-behind
-the
-JSON-LD
-markup
-language.
-</p>
-<div class="section" id="goals-and-rationale">
-<h3>
-<span class="secno">
-2.1
-</span>
-Goals
-and
-Rationale
-</h3>
-<p>
-A
-number
-of
-design
-considerations
-were
-explored
-during
-the
-creation
-of
-this
-markup
-language:
-</p>
-<dl>
-<dt>
-Simplicity
-</dt>
-<dd>
-Developers
-need
-only
-know
-JSON
-and
-two
-keywords
-(
-<code>
-@context
-</code>
-and
-<code>
-@id
-</code>
-)
-to
-use
-the
-basic
-functionality
-in
-JSON-LD.
-No
-extra
-processors
-or
-software
-libraries
-are
-necessary
-to
-use
-JSON-LD
-in
-its
-most
-basic
-form.
-The
-language
-attempts
-to
-ensure
-that
-developers
-have
-an
-easy
-learning
-curve.
-</dd>
-<dt>
-Compatibility
-</dt>
-<dd>
-The
-JSON-LD
-markup
-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
-express
-directed
-graphs,
-which
-have
-been
-proven
-to
-be
-able
-to
-simply
-express
-almost
-every
-real
-world
-data
-model.
-</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
-provides
-a
-mechanism
-that
-allows
-developers
-to
-specify
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-in
-a
-way
-that
-is
-out-of-band.
-This
-allows
-organizations
-that
-have
-already
-deployed
-large
-JSON-based
-infrastructure
-to
-add
-meaning
-to
-their
-JSON
-documents
-in
-a
-way
-that
-is
-not
-disruptive
-to
-their
-day-to-day
-operations
-and
-is
-transparent
-to
-their
-current
-customers.
-At
-times,
-mapping
-JSON
-to
-a
-graph
-representation
-can
-become
-difficult.
-In
-these
-instances,
-rather
-than
-having
-JSON-LD
-support
-esoteric
-markup,
-we
-chose
-not
-to
-support
-the
-use
-case
-and
-support
-a
-simplified
-syntax
-instead.
-So,
-while
-Zero
-Edits
-is
-a
-goal,
-it
-is
-not
-always
-possible
-without
-adding
-great
-complexity
-to
-the
-language.
-</dd>
-<dt>
-One-pass
-Processing
-</dt>
-<dd>
-JSON-LD
-supports
-one-pass
-processing,
-which
-results
-in
-a
-very
-small
-memory
-footprint
-when
-processing
-documents.
-For
-example,
-to
-expand
-a
-JSON-LD
-document
-from
-a
-compacted
-form,
-only
-one
-pass
-is
-required
-over
-the
-data.
-</dd>
-</dl>
-</div>
-<div class="section" id="linking-data">
-<h3>
-<span class="secno">
-2.2
-</span>
-Linking
-Data
-</h3>
-<p>
-An
-Internationalized
-Resource
-Identifier
-(
-<dfn id="dfn-iri" title="iri">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</dfn>
-),
-as
-described
-in
-[
-<cite>
-<a href="#bib-RFC3987" rel="biblioentry" class="bibref">
-RFC3987
-</a>
-</cite>
-],
-is
-a
-mechanism
-for
-representing
-unique
-identifiers
-on
-the
-web.
-In
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>,
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-is
-commonly
-used
-for
-expressing
-a
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>,
-a
-<a href="#dfn-property" title="property" class="tref internalDFN">
-property
-</a>
-or
-an
-<a href="#dfn-object" title="object" class="tref internalDFN">
-object
-</a>.
-</p>
-<p>
-JSON-LD
-defines
-a
-mechanism
-to
-map
-JSON
-terms,
-i.e.,
-keys
-and
-values,
-to
-IRIs.
-This
-does
-not
-mean
-that
-JSON-LD
-requires
-every
-key
-or
-value
-to
-be
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>,
-but
-rather
-ensures
-that
-keys
-and
-values
-can
-be
-mapped
-to
-IRIs
-if
-the
-developer
-desires
-to
-transform
-their
-data
-into
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>.
-There
-are
-a
-few
-techniques
-that
-can
-ensure
-that
-developers
-will
-generate
-good
-Linked
-Data
-for
-the
-Web.
-JSON-LD
-formalizes
-those
-techniques.
-</p>
-<p>
-We
-will
-be
-using
-the
-following
-JSON
-markup
-as
-the
-example
-for
-the
-rest
-of
-this
-section:
-</p>
-<del class="diff-old">{
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</ins>
-}
-</pre>
-<div class="section" id="the-context">
-<h4>
-<span class="secno">
-2.2.1
-</span>
-The
-Context
-</h4>
-<p>
-In
-JSON-LD,
-a
-<dfn id="dfn-context" title="context">
-context
-</dfn>
-is
-used
-to
-map
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s,
-i.e.,
-keys
-with
-associated
-values
-in
-an
-JSON
-document,
-to
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s.
-A
-<dfn id="dfn-term" title="term">
-term
-</dfn>
-is
-a
-short
-word
-that
-<em title="may" class="rfc2119">
-may
-</em>
-be
-expanded
-to
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-A
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-<em title="must" class="rfc2119">
-must
-</em>
-have
-the
-lexical
-form
-of
-<cite>
-<a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">
-NCName
-</a>
-</cite>
-(see
-[
-<cite>
-<a href="#bib-XML-NAMES" rel="biblioentry" class="bibref">
-XML-NAMES
-</a>
-</cite>
-]),
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-<ins class="diff-new">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>,<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN"><ins class="diff-new">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a>,
-or
-be
-an
-empty
-string.
-</p>
-<p>
-The
-Web
-uses
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-IRIs
-</a>
-for
-unambiguous
-identification.
-The
-idea
-is
-that
-these
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-mean
-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 href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-to
-expand
-to
-IRIs
-so
-that
-developers
-don't
-accidentally
-step
-on
-each
-other's
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-terms.
-For
-example,
-the
-term
-<code>
-name
-</code>
-may
-map
-directly
-to
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<code>
-http://xmlns.com/foaf/0.1/name
-</code>.
-This
-allows
-JSON-LD
-documents
-to
-be
-constructed
-using
-the
-common
-JSON
-practice
-of
-simple
-name/value
-pairs
-while
-ensuring
-that
-the
-data
-is
-useful
-outside
-of
-the
-page,
-API
-or
-database
-in
-which
-it
-resides.
-The
-value
-of
-a
-term
-mapping
-<em title="must" class="rfc2119">
-must
-</em>
-be
-either;
-1)
-a
-simple
-string
-with
-the
-lexical
-form
-of
-an
-absolute
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-or,
-2)
-an
-<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
-JSON
-object
-</a>
-containing
-an
-<code>
-@id
-</code>,
-<code>
-@type
-</code>,
-<code>
-<ins class="diff-new">@language
-</ins></code>,
-or
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@container
-</ins>
-</code>
-keyword.
-</p>
-<p>
-These
-Linked
-Data
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-are
-typically
-collected
-in
-a
-context
-document
-that
-would
-look
-something
-like
-this:
-</p>
-<del class="diff-old">{
- "@context":
- {
- "name": "http://xmlns.com/foaf/0.1/name",
- "depiction":
- {
- "@id": "http://xmlns.com/foaf/0.1/depiction",
- "@type": "@id"
- },
- "homepage":
- {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- },
- }
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "name": "http://xmlns.com/foaf/0.1/name",
- "depiction":
- {
- "@id": "http://xmlns.com/foaf/0.1/depiction",
- "@type": "@id"
- },
- "homepage":
- {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- },
- }
-</ins>
-}
-</pre>
-<p>
-This
-context
-document
-can
-then
-be
-used
-in
-an
-JSON-LD
-document
-by
-adding
-a
-single
-line.
-The
-JSON
-markup
-as
-shown
-in
-the
-previous
-section
-could
-be
-changed
-as
-follows
-to
-link
-to
-the
-context
-document:
-</p>
-<del class="diff-old">{
-
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</del>
-<pre class="example">{
- <span class="diff">"@context": "http://json-ld.org/contexts/person",</span>
-<ins class="diff-chg"> "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</ins>
-}
-</pre>
-<p>
-The
-additions
-above
-transform
-the
-previous
-JSON
-document
-into
-a
-JSON
-document
-with
-added
-semantics
-because
-the
-<code>
-@context
-</code>
-specifies
-how
-the
-<strong>
-name
-</strong>,
-<strong>
-homepage
-</strong>,
-and
-<strong>
-depiction
-</strong>
-terms
-map
-to
-<del class="diff-old">IRIs.
-</del>
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<ins class="diff-chg">IRIs
-</ins></a>.
-Mapping
-those
-keys
-to
-IRIs
-gives
-the
-data
-global
-context.
-If
-two
-developers
-use
-the
-same
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-to
-describe
-a
-property,
-they
-are
-more
-than
-likely
-expressing
-the
-same
-concept.
-This
-allows
-both
-developers
-to
-re-use
-each
-others
-data
-without
-having
-to
-agree
-to
-how
-their
-data
-will
-interoperate
-on
-a
-site-by-site
-basis.
-Contexts
-may
-also
-contain
-type
-information
-for
-certain
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-as
-well
-as
-other
-processing
-instructions
-for
-the
-JSON-LD
-processor.
-</p>
-<p>
-Contexts
-may
-be
-specified
-in-line.
-This
-ensures
-that
-JSON-LD
-documents
-can
-be
-processed
-when
-a
-JSON-LD
-processor
-does
-not
-have
-access
-to
-the
-Web.
-</p>
-<del class="diff-old">{
- "@context":
- {
- "name": "http://xmlns.com/foaf/0.1/name",
- "depiction":
- {
- "@id": "http://xmlns.com/foaf/0.1/depiction",
- "@type": "@id"
- },
- "homepage":
- {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- },
- },
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</del>
-<pre class="example">{
- <span class="diff">"@context":
-<ins class="diff-chg"> {
- "name": "http://xmlns.com/foaf/0.1/name",
- "depiction":
- {
- "@id": "http://xmlns.com/foaf/0.1/depiction",
- "@type": "@id"
- },
- "homepage":
- {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- },
- },</span>
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</ins>
-}
-</pre>
-<p>
-Contexts
-<em title="may" class="rfc2119">
-may
-</em>
-be
-used
-at
-any
-time
-a
-<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
-JSON
-object
-</a>
-is
-defined.
-A
-<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
-JSON
-object
-</a>
-<em title="may" class="rfc2119">
-may
-</em>
-specify
-multiple
-contexts,
-using
-an
-<a href="#dfn-array" title="array" class="tref internalDFN">
-array
-</a>,
-which
-is
-processed
-in
-array-order.
-This
-is
-useful
-when
-an
-author
-would
-like
-to
-use
-an
-existing
-context
-and
-add
-application-specific
-terms
-to
-the
-existing
-context.
-Duplicate
-context
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-<em title="must" class="rfc2119">
-must
-</em>
-be
-overridden
-using
-a
-last-defined-overrides
-mechanism.
-</p>
-<p>
-The
-set
-of
-contexts
-defined
-within
-a
-specific
-<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
-JSON
-Object
-</a>
-are
-referred
-to
-as
-<dfn id="dfn-local_context" title="local_context">
-local
-context
-</dfn>
-s.
-The
-<dfn id="dfn-active_context" title="active_context">
-active
-context
-</dfn>
-refers
-to
-the
-accumulation
-of
-<a href="#dfn-local_context" title="local_context" class="tref internalDFN">
-local
-context
-</a>
-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:
-</p>
-<del class="diff-old">{
- "@context": [
- "http://json-ld.org/contexts/person",
- {
- "pic": "http://xmlns.com/foaf/0.1/depiction"
- }
- ],
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
-
-</del>
-<pre class="example">{
- <span class="diff">"@context": [
-<ins class="diff-chg"> "http://json-ld.org/contexts/person",
- {
- "pic": "http://xmlns.com/foaf/0.1/depiction"
- }
- ],</span>
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
-</ins> <span class="diff">"pic": "http://twitter.com/account/profile_image/manusporny"</span>
-}
-</pre>
-<p>
-JSON-LD
-uses
-a
-special
-type
-of
-machine-readable
-document
-called
-a
-<dfn id="dfn-vocabulary" title="vocabulary">
-vocabulary
-</dfn>
-to
-define
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-that
-are
-then
-used
-to
-describe
-concepts
-and
-<del class="diff-old">"things"
-</del>
-<ins class="diff-chg">"things"
-</ins>
-in
-the
-world.
-Typically,
-these
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-documents
-have
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-prefix
-</a>
-es
-associated
-with
-them
-and
-contain
-a
-number
-of
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-declarations.
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-Prefix
-</a>
-es
-are
-helpful
-when
-a
-developer
-wants
-to
-mix
-multiple
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabularies
-</a>
-together
-in
-a
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>,
-but
-does
-not
-want
-to
-go
-to
-the
-trouble
-of
-defining
-every
-single
-term
-in
-every
-single
-vocabulary.
-Some
-<del class="diff-old">Web
-Vocabularies
-</del>
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-<ins class="diff-chg">vocabularies
-</ins></a>
-may
-have
-dozens
-of
-terms
-defined.
-If
-a
-developer
-wants
-to
-use
-3-4
-different
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabularies
-</a>,
-the
-number
-of
-terms
-that
-would
-have
-to
-be
-declared
-in
-a
-single
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-could
-become
-quite
-large.
-To
-reduce
-the
-number
-of
-different
-terms
-that
-must
-be
-defined,
-JSON-LD
-also
-allows
-prefixes
-to
-be
-used
-to
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-compact
-<del class="diff-old">IRIs.
-</del>
-<ins class="diff-chg">IRIs
-</ins></a>.
-</p>
-<p>
-For
-example,
-the
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<code>
-http://xmlns.com/foaf/0.1/
-</code>
-specifies
-a
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-which
-may
-be
-represented
-using
-the
-<code>
-foaf
-</code>
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-prefix
-</a>.
-The
-<code>
-foaf
-</code>
-vocabulary
-contains
-a
-term
-called
-<strong>
-name
-</strong>.
-If
-you
-join
-the
-<code>
-foaf
-</code>
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-prefix
-</a>
-with
-the
-<strong>
-name
-</strong>
-suffix,
-you
-can
-build
-a
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-compact
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-that
-will
-expand
-out
-into
-an
-<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-for
-the
-<code>
-http://xmlns.com/foaf/0.1/name
-</code>
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-term.
-That
-is,
-the
-compact
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-(or
-short-form),
-is
-<code>
-foaf:name
-</code>
-and
-the
-expanded-form
-is
-<code>
-http://xmlns.com/foaf/0.1/name
-</code>.
-This
-vocabulary
-term
-is
-used
-to
-specify
-a
-person's
-name.
-</p>
-<p>
-Developers,
-and
-machines,
-are
-able
-to
-use
-this
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-(by
-plugging
-it
-directly
-into
-a
-web
-browser,
-for
-instance)
-to
-go
-to
-the
-term
-and
-get
-a
-definition
-of
-what
-the
-term
-means.
-Much
-like
-we
-can
-use
-<a href="http://wordnet.princeton.edu/">
-WordNet
-</a>
-today
-to
-see
-the
-definition
-of
-words
-in
-the
-English
-language.
-Developers
-and
-machines
-need
-the
-same
-sort
-of
-definition
-of
-terms.
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-IRIs
-</a>
-provide
-a
-way
-to
-ensure
-that
-these
-terms
-are
-unambiguous.
-</p>
-<p>
-The
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-provides
-a
-collection
-of
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-<del class="diff-old">and
-prefix
-es
-</del>
-that
-can
-be
-used
-to
-expand
-JSON
-keys
-and
-values
-into
-<del class="diff-old">IRI
-s.
-</del>
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<ins class="diff-chg">IRIs
-</ins></a>.
-</p>
-<p class="note">
-To
-ensure
-the
-best
-possible
-performance,
-it
-is
-a
-best
-practice
-to
-put
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-definition
-at
-the
-top
-of
-the
-JSON-LD
-document.
-If
-it
-isn't
-listed
-first,
-processors
-have
-to
-save
-each
-key-value
-pair
-until
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-is
-processed.
-This
-creates
-a
-memory
-and
-complexity
-burden
-for
-one-pass
-processors.
-</p>
-</div>
-<div class="section" id="from-json-to-json-ld">
-<h4>
-<span class="secno">
-2.2.2
-</span>
-From
-JSON
-to
-JSON-LD
-</h4>
-<p>
-If
-a
-set
-of
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-such
-as,
-<strong>
-name
-</strong>,
-<strong>
-homepage
-</strong>,
-and
-<strong>
-depiction
-</strong>,
-are
-defined
-in
-a
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>,
-and
-that
-context
-is
-used
-to
-resolve
-the
-names
-in
-JSON
-objects,
-machines
-are
-able
-to
-automatically
-expand
-the
-terms
-to
-something
-meaningful
-and
-unambiguous,
-like
-this:
-</p>
-<del class="diff-old">{
- "": "Manu Sporny",
- "": "http://manu.sporny.org"
- "": "http://twitter.com/account/profile_image/manusporny"
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "<span class="diff">http://xmlns.com/foaf/0.1/name</span>": "Manu Sporny",
- "<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>": "http://manu.sporny.org"
- "<span class="diff">http://rdfs.org/sioc/ns#avatar</span>": "http://twitter.com/account/profile_image/manusporny"
-</ins>
-}
-</pre>
-<p>
-Doing
-this
-allows
-JSON
-to
-be
-unambiguously
-machine-readable
-without
-requiring
-developers
-to
-drastically
-change
-their
-workflow.
-</p>
-<p class="note">
-The
-example
-above
-does
-not
-use
-the
-<code>
-@id
-</code>
-keyword
-to
-set
-the
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>
-of
-the
-node
-being
-described
-above.
-This
-type
-of
-node
-is
-called
-an
-<dfn id="dfn-unlabeled_node" title="unlabeled_node">
-unlabeled
-node
-</dfn>
-and
-is
-considered
-to
-be
-a
-weaker
-form
-of
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>.
-It
-is
-advised
-that
-all
-nodes
-described
-in
-JSON-LD
-are
-given
-unique
-identifiers
-via
-the
-<code>
-@id
-</code>
-keyword
-unless
-the
-data
-is
-not
-intended
-to
-be
-linked
-to
-from
-other
-data
-sets.
-</p>
-</div>
-</div>
-</div>
-<div class="section" id="basic-concepts">
-<h2>
-<span class="secno">
-3.
-</span>
-Basic
-Concepts
-</h2>
-<p>
-JSON-LD
-is
-designed
-to
-ensure
-that
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-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
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>.
-As
-more
-JSON-LD
-features
-are
-used,
-more
-semantics
-are
-added
-to
-the
-JSON
-markup.
-</p>
-<div class="section" id="iris">
-<h3>
-<span class="secno">
-3.1
-</span>
-IRIs
-</h3>
-<p>
-Expressing
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s
-are
-fundamental
-to
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-as
-that
-is
-how
-most
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>
-s,
-all
-<a href="#dfn-property" title="property" class="tref internalDFN">
-properties
-</a>
-and
-many
-<a href="#dfn-object" title="object" class="tref internalDFN">
-object
-</a>
-s
-are
-identified.
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s
-can
-be
-expressed
-in
-a
-variety
-of
-different
-ways
-in
-JSON-LD.
-</p>
-<ol>
-<li>
-Except
-within
-a
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-definition,
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-in
-the
-key
-position
-in
-a
-<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
-JSON
-object
-</a>
-that
-have
-a
-mapping
-to
-an
-<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
-<ins class="diff-chg">absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-or
-another
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-in
-the
-<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
-active
-context
-</a>
-are
-expanded
-to
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-by
-JSON-LD
-processors.
-</li>
-<li>
-An
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-is
-generated
-for
-the
-<a href="#dfn-string" title="string" class="tref internalDFN">
-string
-</a>
-value
-specified
-using
-<code>
-@id
-</code>
-or
-<code>
-@type
-</code>.
-</li>
-<li>
-An
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-is
-generated
-for
-the
-<a href="#dfn-string" title="string" class="tref internalDFN">
-string
-</a>
-value
-of
-any
-key
-for
-which
-there
-are
-<a href="#dfn-coercion" title="coercion" class="tref internalDFN">
-coercion
-</a>
-rules
-in
-effect
-that
-identify
-the
-value
-as
-an
-<code>
-@id
-</code>.
-</li>
-</ol>
-<p>
-IRIs
-may
-be
-represented
-as
-an
-<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-<del class="diff-old">,
-</del>
-</abbr>
-</a>,
-<ins class="diff-chg">a
-</ins><a href="#dfn-relative_iri" title="relative_iri" class="tref internalDFN"><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 href="#dfn-term" title="term" class="tref internalDFN"><ins class="diff-chg">
-term
-</ins></a>,<ins class="diff-chg">
-or
-a
-</ins><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><ins class="diff-chg">
-compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>.</p><p><ins class="diff-chg">
-An
-</ins><dfn id="dfn-absolute_iri" title="absolute_iri"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></dfn><ins class="diff-chg">
-is
-defined
-in
-[
-</ins><cite><a href="#bib-RFC3987" rel="biblioentry" class="bibref"><ins class="diff-chg">
-RFC3987
-</ins></a></cite><ins class="diff-chg">
-]
-containing
-a
-</ins><em><ins class="diff-chg">
-scheme
-</ins></em><ins class="diff-chg">
-along
-with
-</ins><em><ins class="diff-chg">
-path
-</ins></em><ins class="diff-chg">
-and
-optional
-</ins><em><ins class="diff-chg">
-query
-</ins></em><ins class="diff-chg">
-and
-fragment
-segments.
-A
-</ins><dfn id="dfn-relative_iri" title="relative_iri"><ins class="diff-chg">
-relative
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></dfn><ins class="diff-chg">
-is
-</ins>
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-that
-is
-relative
-<del class="diff-old">to
-</del>
-<ins class="diff-chg">some
-other
-</ins><a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN"><ins class="diff-chg">
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a><ins class="diff-chg">
-;
-in
-the
-case
-of
-JSON-LD
-this
-is
-</ins>
-the
-base
-location
-of
-the
-<del class="diff-old">document,
-a
-term
-,
-or
-a
-prefix
-:suffix
-construct.
-</del>
-<ins class="diff-chg">document.
-</ins>
-</p>
-<p>
-IRIs
-can
-be
-expressed
-directly
-in
-the
-key
-position
-like
-so:
-</p>
-<del class="diff-old">{
-...
- "": "Manu Sporny",
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "<span class="diff">http://xmlns.com/foaf/0.1/name</span>": "Manu Sporny",
-...
-</ins>
-}
-</pre>
-<p>
-In
-the
-example
-above,
-the
-key
-<code>
-http://xmlns.com/foaf/0.1/name
-</code>
-is
-interpreted
-as
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>,
-as
-opposed
-to
-being
-interpreted
-as
-a
-string.
-</p>
-<p>
-Term
-expansion
-occurs
-for
-IRIs
-if
-the
-value
-matches
-a
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-defined
-within
-the
-<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
-active
-context
-</a>:
-</p>
-<del class="diff-old">{
- "" },
-...
- "": "Manu Sporny",
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "<span class="diff">@context</span>":
- {
- "<span class="diff">name</span>": "<span class="diff">http://xmlns.com/foaf/0.1/name</span>"
-...
- },
- "<span class="diff">name</span>": "Manu Sporny",
-...
-</ins>
-}
-</pre>
-<p>
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-Prefix
-</a>
-es
-are
-expanded
-when
-the
-form
-of
-the
-value
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-<ins class="diff-new">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-represented
-as
-</ins>
-is
-<code>
-prefix:suffix
-</code>,
-and
-the
-prefix
-matches
-a
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-defined
-within
-the
-<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
-active
-context
-</a>:
-</p>
-<del class="diff-old">{
- "" },
-...
- "": "Manu Sporny",
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "<span class="diff">@context</span>":
- {
- "<span class="diff">foaf</span>": "<span class="diff">http://xmlns.com/foaf/0.1/</span>"
-...
- },
- "<span class="diff">foaf:name</span>": "Manu Sporny",
-...
-</ins>
-}
-</pre>
-<p>
-<a href="#dfn-term" title="term" class="tref internalDFN">
-Term
-</a>
-s
-are
-case
-sensitive,
-and
-<em title="must" class="rfc2119">
-must
-</em>
-be
-matched
-using
-a
-case-sensitive
-comparison.
-</p>
-<p>
-<ins class="diff-new">Keys
-that
-do
-not
-expand
-to
-an
-absolute
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr><ins class="diff-new">
-are
-ignored.
-</ins></p><p class="issue"><ins class="diff-new">
-It
-is
-not
-determined
-if
-processing
-proceeds
-into
-values
-of
-undefined
-keys.
-If
-so,
-this
-would
-result
-in
-a
-graph
-which
-is
-not
-</ins><a href="#dfn-embedding" title="embedding" class="tref internalDFN"><ins class="diff-new">
-embedded
-</ins></a>.</p><p>
-<code>
-foaf:name
-</code>
-above
-will
-automatically
-expand
-out
-to
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<code>
-http://xmlns.com/foaf/0.1/name
-</code>.
-See
-<del class="diff-old">Prefixes
-</del>
-<a href="#compact-iris">
-<ins class="diff-chg">Compact
-IRIs
-</ins>
-</a>
-for
-more
-details.
-</p>
-<p>
-An
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-is
-generated
-when
-a
-value
-is
-associated
-with
-a
-key
-using
-the
-<code>
-@id
-</code>
-keyword:
-</p>
-<del class="diff-old">{
-...
- "homepage": { "": "http://manu.sporny.org" }
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "homepage": { "<span class="diff">@id</span>": "http://manu.sporny.org" }
-...
-</ins>
-}
-</pre>
-<p class="note">
-Specifying
-a
-<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
-JSON
-Object
-</a>
-with
-an
-<code>
-@id
-</code>
-key
-is
-used
-to
-identify
-that
-object
-using
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-This
-facility
-<em title="may" class="rfc2119">
-may
-</em>
-also
-be
-used
-to
-link
-a
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>
-with
-an
-<a href="#dfn-object" title="object" class="tref internalDFN">
-object
-</a>
-using
-a
-mechanism
-called
-<a href="#dfn-embedding" title="embedding" class="tref internalDFN">
-embedding
-</a>,
-which
-is
-covered
-in
-the
-section
-titled
-<a href="#embedding">
-Embedding
-</a>.
-</p>
-<p>
-If
-type
-<a href="#dfn-coercion" title="coercion" class="tref internalDFN">
-coercion
-</a>
-rules
-are
-specified
-in
-the
-<code>
-@context
-</code>
-for
-a
-particular
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-or
-property
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>,
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-is
-generated:
-</p>
-<del class="diff-old"> "@context":
- {
- ...
- "homepage":
- {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- }
- ...
- }
-...
- "homepage": "http://manu.sporny.org/",
-...
-</del>
-<pre class="example">{<span class="diff">
-<ins class="diff-chg"> "@context":
- {
- ...
- "homepage":
- {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- }
- ...
- }</span>
-...
- "homepage": "http://manu.sporny.org/",
-...
-</ins>
-}
-</pre>
-<p>
-Even
-though
-the
-value
-<code>
-http://manu.sporny.org/
-</code>
-is
-a
-<a href="#dfn-string" title="string" class="tref internalDFN">
-string
-</a>,
-the
-type
-<a href="#dfn-coercion" title="coercion" class="tref internalDFN">
-coercion
-</a>
-rules
-will
-transform
-the
-value
-into
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-when
-processed
-by
-a
-JSON-LD
-Processor.
-</p>
-</div>
-<div class="section" id="identifying-the-subject">
-<h3>
-<span class="secno">
-3.2
-</span>
-Identifying
-the
-Subject
-</h3>
-<p>
-To
-be
-able
-to
-externally
-reference
-nodes,
-it
-is
-important
-that
-each
-node
-has
-an
-unambiguous
-identifier.
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s
-are
-a
-fundamental
-concept
-of
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>,
-and
-nodes
-should
-have
-a
-de-referencable
-identifier
-used
-to
-name
-and
-locate
-them.
-For
-nodes
-to
-be
-truly
-linked,
-de-referencing
-the
-identifier
-should
-result
-in
-a
-representation
-of
-that
-node.
-Associating
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-with
-a
-node
-tells
-an
-application
-that
-the
-returned
-document
-contains
-a
-description
-of
-the
-node
-requested.
-</p>
-<p>
-JSON-LD
-documents
-may
-also
-contain
-descriptions
-of
-other
-nodes,
-so
-it
-is
-necessary
-to
-be
-able
-to
-uniquely
-identify
-each
-node
-which
-may
-be
-externally
-referenced.
-</p>
-<p>
-A
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>
-of
-an
-object
-in
-JSON
-is
-declared
-using
-the
-<code>
-@id
-</code>
-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.
-</p>
-<del class="diff-old">{
-...
- "",
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "<span class="diff">@id</span>": "<span class="diff">http://example.org/people#joebob</span>",
-...
-</ins>
-}
-</pre>
-<p>
-The
-example
-above
-would
-set
-the
-subject
-to
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<code>
-http://example.org/people#joebob
-</code>.
-</p>
-<p class="note">
-To
-ensure
-the
-best
-possible
-performance,
-it
-is
-a
-best
-practice
-to
-put
-the
-<code>
-@id
-</code>
-keyword
-before
-other
-key-value
-pairs
-in
-an
-object.
-If
-it
-isn't
-listed
-first,
-processors
-have
-to
-save
-each
-key-value
-pair
-until
-<code>
-@id
-</code>
-is
-processed
-before
-they
-can
-start
-generating
-triples.
-Not
-specifying
-the
-<code>
-@id
-</code>
-keyword
-first
-creates
-a
-memory
-and
-complexity
-burden
-for
-one-pass
-processors.
-</p>
-</div>
-<div class="section" id="specifying-the-type">
-<h3>
-<span class="secno">
-3.3
-</span>
-Specifying
-the
-Type
-</h3>
-<p>
-The
-type
-of
-a
-particular
-subject
-can
-be
-specified
-using
-the
-<code>
-@type
-</code>
-keyword.
-Specifying
-the
-type
-in
-this
-way
-will
-generate
-a
-triple
-of
-the
-form
-(subject,
-type,
-type-
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-).
-To
-be
-considered
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>,
-types
-<em title="must" class="rfc2119">
-must
-</em>
-be
-uniquely
-identified
-by
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-</p>
-<del class="diff-old">{
-...
- "@id": "http://example.org/people#joebob",
- "",
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "@id": "http://example.org/people#joebob",
- "<span class="diff">@type</span>": "<span class="diff">http://xmlns.com/foaf/0.1/Person</span>",
-...
-</ins>
-}
-</pre>
-</div>
-<div class="section" id="strings">
-<h3>
-<span class="secno">
-3.4
-</span>
-Strings
-</h3>
-<p>
-Regular
-text
-strings,
-also
-referred
-to
-as
-<dfn id="dfn-string_value" title="string_value">
-string
-value
-</dfn>
-s,
-are
-easily
-expressed
-using
-regular
-JSON
-<a href="#dfn-string" title="string" class="tref internalDFN">
-string
-</a>
-s.
-</p>
-<del class="diff-old">{
-...
- "name": "",
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "name": "<span class="diff">Mark Birbeck</span>",
-...
-</ins>
-}
-</pre>
-</div>
-<div class="section" id="string-internationalization">
-<h3>
-<span class="secno">
-3.5
-</span>
-String
-Internationalization
-</h3>
-<p>
-JSON-LD
-makes
-an
-assumption
-that
-strings
-with
-associated
-language
-encoding
-information
-are
-not
-very
-common
-when
-used
-in
-JavaScript
-and
-Web
-Services.
-Thus,
-it
-takes
-a
-little
-more
-effort
-to
-express
-strings
-with
-associated
-language
-information.
-</p>
-<del class="diff-old">{
-...
- "name":
- {
- "@value": "花澄",
- "@language": "ja"
- }
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "name": <span class="diff">
- {
- "@value": "花澄",
- "@language": "ja"
- }</span>
-...
-</ins>
-}
-</pre>
-<p>
-The
-example
-above
-would
-generate
-a
-<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
-string
-value
-</a>
-for
-<em>
-花澄
-</em>
-and
-associate
-the
-<code>
-ja
-</code>
-language
-code
-with
-the
-triple
-that
-is
-generated.
-Languages
-<em title="must" class="rfc2119">
-must
-</em>
-be
-expressed
-in
-[
-<cite>
-<a href="#bib-BCP47" rel="biblioentry" class="bibref">
-BCP47
-</a>
-</cite>
-]
-format.
-</p>
-</div>
-<div class="section" id="typed-values">
-<h3>
-<span class="secno">
-3.6
-</span>
-Typed
-Values
-</h3>
-<p>
-A
-value
-with
-an
-associated
-type,
-also
-known
-as
-a
-<dfn id="dfn-typed_value" title="typed_value">
-typed
-value
-</dfn>,
-is
-indicated
-by
-associating
-a
-value
-with
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<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>
-keyword
-when
-defining
-a
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-within
-a
-<code>
-@context
-</code>
-section.
-</li>
-<li>
-By
-utilizing
-the
-expanded
-form
-for
-specifying
-objects.
-</li>
-<li>
-By
-using
-a
-native
-JSON
-type.
-</li>
-</ol>
-<p>
-The
-first
-example
-uses
-the
-<code>
-@type
-</code>
-keyword
-to
-express
-a
-typed
-value:
-</p>
-<del class="diff-old">{
- "@context": {
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "modified": {
- "@id": "http://purl.org/dc/terms/modified",
- "@type": "xsd:dateTime"
- }
- }
-...
- "modified": "2010-05-29T14:17:39+02:00",
-...
-</del>
-<pre class="example">{
- <span class="diff">"@context":
-<ins class="diff-chg"> {
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "modified":
- {
- "@id": "http://purl.org/dc/terms/modified",
- "@type": "xsd:dateTime"
- }
- }</span>
-...
- "modified": "2010-05-29T14:17:39+02:00",
-...
-</ins>
-}
-</pre>
-<p>
-The
-second
-example
-uses
-the
-expanded
-form
-for
-specifying
-objects:
-</p>
-<del class="diff-old">{
-...
- "modified": {
- "@value": "2010-05-29T14:17:39+02:00",
- "@type": "xsd:dateTime"
- }
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "modified":
-</ins> <span class="diff">{
-<ins class="diff-chg">
- "@value": "2010-05-29T14:17:39+02:00",
- "@type": "xsd:dateTime"
- }</span>
-...
-</ins>
-}
-</pre>
-<p>
-Both
-examples
-above
-would
-generate
-an
-object
-with
-the
-value
-of
-<code>
-2010-05-29T14:17:39+02:00
-</code>
-and
-the
-type
-of
-<code>
-http://www.w3.org/2001/XMLSchema#dateTime
-</code>.
-</p>
-<p>
-The
-third
-example
-uses
-a
-built-in
-native
-JSON
-type,
-a
-<a href="#dfn-number" title="number" class="tref internalDFN">
-number
-</a>,
-to
-express
-a
-type:
-</p>
-<del class="diff-old">{
-...
- "@id": "http://example.org/people#joebob",
- "age":
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "@id": "http://example.org/people#joebob",
- "age": <span class="diff">31</span>
-...
-</ins>
-}
-</pre>
-<p>
-The
-example
-above
-is
-really
-just
-a
-shorthand
-for
-the
-following:
-</p>
-<del class="diff-old">{
-...
- "@id": "http://example.org/people#joebob",
- "age": {
- "@value": "31",
- "@type": "http://www.w3.org/2001/XMLSchema#integer"
- }
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "@id": "http://example.org/people#joebob",
- "age":
-</ins> <span class="diff">{
-<ins class="diff-chg">
- "@value": "31",
- "@type": "http://www.w3.org/2001/XMLSchema#integer"
- }</span>
-...
-</ins>
-}
-</pre>
-<p class="note">
-The
-<code>
-@type
-</code>
-keyword
-is
-also
-used
-to
-associate
-a
-type
-with
-a
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>.
-Although
-the
-same
-keyword
-is
-used
-in
-both
-places,
-the
-concept
-of
-an
-<em>
-object
-type
-</em>
-and
-a
-<em>
-value
-type
-</em>
-are
-different.
-This
-is
-similar
-to
-object-oriented
-programming
-languages
-where
-both
-scalar
-and
-structured
-types
-use
-the
-same
-class
-inheritance
-mechanism,
-even
-though
-scalar
-types
-and
-structured
-types
-are
-inherently
-different.
-</p>
-</div>
-<div class="section" id="multiple-objects-for-a-single-property">
-<h3>
-<span class="secno">
-3.7
-</span>
-Multiple
-Objects
-for
-a
-Single
-Property
-</h3>
-<p>
-A
-JSON-LD
-author
-can
-express
-multiple
-values
-in
-a
-compact
-way
-by
-using
-<a href="#dfn-array" title="array" class="tref internalDFN">
-array
-</a>
-s.
-If
-a
-subject
-has
-multiple
-values
-for
-the
-same
-property,
-the
-author
-<em title="may" class="rfc2119">
-may
-</em>
-express
-each
-property
-as
-an
-<a href="#dfn-array" title="array" class="tref internalDFN">
-array
-</a>.
-</p>
-<p class="note">
-In
-JSON-LD,
-multiple
-objects
-on
-a
-property
-are
-not
-ordered.
-This
-is
-because
-graphs
-are
-inherently
-unordered
-data
-structures.
-To
-learn
-more
-about
-creating
-ordered
-collections
-in
-JSON-LD,
-see
-the
-section
-on
-<a href="#lists">
-Lists
-</a>.
-</p>
-<del class="diff-old">{
-...
- "@id": "http://example.org/people#joebob",
- "nick": ,
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "@id": "http://example.org/people#joebob",
- "nick": <span class="diff">[ "joe", "bob", "jaybee" ]</span>,
-...
-</ins>
-}
-</pre>
-<p>
-The
-markup
-shown
-above
-would
-generate
-the
-following
-triples:
-</p>
-<del class="diff-old"><http://example.org/people#joebob>
- <http://xmlns.com/foaf/0.1/nick>
- "joe" .
-<http://example.org/people#joebob>
- <http://xmlns.com/foaf/0.1/nick>
- "bob" .
-<http://example.org/people#joebob>
- <http://xmlns.com/foaf/0.1/nick>
-"jaybee"
-</del>
-<pre class="example"><http://example.org/people#joebob>
-<ins class="diff-chg"> <http://xmlns.com/foaf/0.1/nick>
- "joe" .
-<http://example.org/people#joebob>
- <http://xmlns.com/foaf/0.1/nick>
- "bob" .
-<http://example.org/people#joebob>
- <http://xmlns.com/foaf/0.1/nick>
-"jaybee"
-</ins>
-.
-</pre>
-</div>
-<div class="section" id="multiple-values-for-a-single-property">
-<h3>
-<span class="secno">
-3.8
-</span>
-Multiple
-Values
-for
-a
-Single
-Property
-</h3>
-<p>
-Multiple
-<a href="#dfn-value" title="value" class="tref internalDFN">
-value
-</a>
-s
-may
-also
-be
-expressed
-using
-the
-expanded
-form
-for
-<a href="#dfn-object" title="object" class="tref internalDFN">
-object
-</a>
-s:
-</p>
-<del class="diff-old">{
- "@id": "http://example.org/articles/8",
- "dc:title":
- [
- {"@value": "Das Kapital", "@language": "de"},
- {"@value": "Capital", "@language": "en"}
- ]
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@id": "http://example.org/articles/8",
- "dc:title": <span class="diff">
- [
- {
- "@value": "Das Kapital",
- "@language": "de"
- },
- {
- "@value": "Capital",
- "@language": "en"
- }
- ]</span>
-</ins>
-}
-</pre>
-<p>
-The
-markup
-shown
-above
-would
-generate
-the
-following
-triples:
-</p>
-<del class="diff-old"><http://example.org/articles/8>
- <http://purl.org/dc/terms/title>
- "Das Kapital"@de .
-<http://example.org/articles/8>
- <http://purl.org/dc/terms/title>
-"Capital"@en
-</del>
-<pre class="example"><http://example.org/articles/8>
-<ins class="diff-chg"> <http://purl.org/dc/terms/title>
- "Das Kapital"@de .
-<http://example.org/articles/8>
- <http://purl.org/dc/terms/title>
-"Capital"@en
-</ins>
-.
-</pre>
-</div>
-<div class="section" id="lists">
-<h3>
-<span class="secno">
-3.9
-</span>
-Lists
-</h3>
-<p>
-Because
-graphs
-do
-not
-describe
-ordering
-for
-links
-between
-nodes,
-in
-contrast
-to
-plain
-JSON,
-multi-valued
-properties
-in
-JSON-LD
-do
-not
-provide
-an
-ordering
-of
-the
-listed
-objects.
-For
-example,
-consider
-the
-following
-simple
-document:
-</p>
-<del class="diff-old"> {
-...
- "@id": "http://example.org/people#joebob",
- "nick": ,
-...
-</del>
- <pre class="example">{
-<ins class="diff-chg">...
- "@id": "http://example.org/people#joebob",
- "nick": <span class="diff">[ "joe", "bob", "jaybee" ]</span>,
-...
-</ins>
-}
-</pre>
-<p>
-This
-results
-in
-three
-triples
-being
-generated,
-each
-relating
-the
-subject
-to
-an
-individual
-object,
-with
-no
-inherent
-order.
-</p>
-<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>
-keyword
-as
-follows:
-</p>
-<del class="diff-old"> {
-...
- "@id": "http://example.org/people#joebob",
- "foaf:nick": ,
-...
-</del>
- <pre class="example">{
-<ins class="diff-chg">...
- "@id": "http://example.org/people#joebob",
- "foaf:nick":
-</ins> <span class="diff">{
-<ins class="diff-chg">
- "@list": [ "joe", "bob", "jaybee" ]
- }</span>,
-...
-</ins>
-}
-</pre>
-<p>
-This
-describes
-the
-use
-of
-this
-<a href="#dfn-array" title="array" class="tref internalDFN">
-array
-</a>
-as
-being
-ordered,
-and
-order
-is
-maintained
-through
-alternate
-representations
-as
-described
-in
-[
-<cite>
-<a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref">
-JSON-LD-API
-</a>
-</cite>
-].
-If
-every
-use
-of
-a
-given
-multi-valued
-property
-is
-a
-list,
-this
-may
-be
-abbreviated
-by
-<del class="diff-old">adding
-a
-</del>
-<ins class="diff-chg">setting
-</ins>
-<code>
-<del class="diff-old">@type
-</del>
-<ins class="diff-chg">@container
-</ins>
-</code>
-<del class="diff-old">coercion
-</del>
-<ins class="diff-chg">to
-</ins><code><ins class="diff-chg">
-@list
-</ins></code><ins class="diff-chg">
-in
-the
-</ins><a href="#dfn-context" title="context" class="tref internalDFN"><ins class="diff-chg">
-context
-</ins>
-</a>:
-</p>
-<del class="diff-old"> {
- "@context": {
- ...
- "nick": {
- "@id": "http://xmlns.com/foaf/0.1/nick",
- "@list": true
- }
-},
-...
- "@id": "http://example.org/people#joebob",
- "nick": ,
-...
-</del>
- <pre class="example">{
- <span class="diff">"@context":
-<ins class="diff-chg"> {
- ...
- "nick":
- {
- "@id": "http://xmlns.com/foaf/0.1/nick",
- "@container": "@list"
- }
- }</span>,
-...
- "@id": "http://example.org/people#joebob",
- "nick": <span class="diff">[ "joe", "bob", "jaybee" ]</span>,
-...
-</ins>
-}
-</pre>
-<p>
-List
-coercion
-is
-specified
-within
-an
-expanded
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-definition
-using
-the
-<code>
-<del class="diff-old">@list
-</del>
-<ins class="diff-chg">@container
-</ins>
-</code>
-key.
-The
-value
-of
-this
-key,
-if
-present,
-<em title="must" class="rfc2119">
-must
-</em>
-be
-<code>
-<del class="diff-old">true
-</del>
-<ins class="diff-chg">@list
-</ins>
-</code>.
-This
-indicates
-that
-array
-values
-of
-keys
-coerced
-as
-<code>
-@list
-</code>
-are
-to
-be
-serialized
-as
-a
-<a href="#lists">
-List
-</a>.
-</p>
-<p class="note">
-<ins class="diff-new">List
-of
-lists
-are
-not
-allowed
-in
-this
-version
-of
-JSON-LD.
-If
-a
-list
-of
-lists
-is
-detected,
-a
-JSON-LD
-processor
-will
-throw
-an
-exception.
-</ins></p>
-</div>
-</div>
-<div class="section" id="advanced-concepts">
-<h2>
-<span class="secno">
-4.
-</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
-sections
-outline
-the
-features
-that
-are
-specific
-to
-JSON-LD.
-</p>
-<div class="section" id="compact-iris">
-<h3>
-<span class="secno">
-4.1
-</span>
-<del class="diff-old">Prefixes
-</del>
-<ins class="diff-chg">Compact
-IRIs
-</ins>
-</h3>
-<p>
-<a href="#dfn-term" title="term" class="tref internalDFN">
-Term
-</a>
-s
-in
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-documents
-may
-draw
-from
-a
-number
-of
-different
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabularies
-</a>.
-At
-times,
-declaring
-every
-single
-term
-that
-a
-document
-uses
-can
-require
-the
-developer
-to
-declare
-tens,
-if
-not
-hundreds
-of
-potential
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-that
-are
-used
-across
-an
-application.
-This
-is
-a
-concern
-for
-at
-least
-three
-reasons;
-the
-first
-is
-the
-cognitive
-load
-on
-the
-developer
-of
-remembering
-all
-of
-the
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s,
-the
-second
-is
-the
-serialized
-size
-of
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-if
-it
-is
-specified
-inline,
-the
-third
-is
-future-proofing
-embedded
-application
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-s
-that
-may
-not
-be
-easy
-to
-change
-after
-they
-are
-deployed.
-In
-order
-to
-address
-these
-issues,
-the
-concept
-of
-a
-<del class="diff-old">prefix
-</del>
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-<ins class="diff-chg">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</a>
-<del class="diff-old">mechanism
-</del>
-is
-introduced.
-</p>
-<p>
-A
-<del class="diff-old">prefix
-</del>
-<dfn id="dfn-compact_iri" title="compact_iri">
-<ins class="diff-chg">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr>
-</dfn>
-is
-a
-<del class="diff-old">compact
-</del>
-way
-of
-expressing
-<del class="diff-old">a
-base
-</del>
-<ins class="diff-chg">an
-</ins><a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">for
-</del>
-<ins class="diff-chg">using
-</ins>
-a
-<del class="diff-old">vocabulary
-.
-</del>
-<em>
-<ins class="diff-chg">prefix
-</ins></em><ins class="diff-chg">
-and
-</ins><em><ins class="diff-chg">
-suffix
-</ins></em>.
-Generally,
-these
-prefixes
-are
-used
-by
-concatenating
-the
-<em>
-prefix
-</em>
-and
-a
-<em>
-suffix
-</em>,
-which
-is
-separated
-by
-a
-colon
-(
-<code>:
-</code>
-).
-The
-<dfn id="dfn-prefix" title="prefix">
-prefix
-</dfn>
-is
-a
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-taken
-from
-the
-<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
-active
-context
-</a>
-and
-is
-a
-short
-string
-identifying
-a
-particular
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<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
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<code>
-http://xmlns.com/foaf/0.1/
-</code>.
-A
-developer
-may
-append
-any
-of
-the
-FOAF
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-terms
-to
-the
-end
-of
-the
-prefix
-to
-specify
-a
-short-hand
-version
-of
-the
-<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-for
-the
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-term.
-For
-example,
-<code>
-foaf:name
-</code>
-would
-be
-expanded
-out
-to
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<code>
-http://xmlns.com/foaf/0.1/name
-</code>.
-Instead
-of
-having
-to
-remember
-and
-type
-out
-the
-entire
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>,
-the
-developer
-can
-instead
-use
-the
-prefix
-in
-their
-JSON-LD
-markup.
-</p>
-<p>
-<del class="diff-old">To
-generate
-an
-</del>
-<ins class="diff-chg">Terms
-are
-interpreted
-as
-</ins><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><ins class="diff-chg">
-compact
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-<del class="diff-old">out
-of
-a
-</del>
-<ins class="diff-chg">s
-if
-they
-contain
-at
-least
-one
-colon
-and
-the
-first
-colon
-is
-not
-followed
-by
-two
-slashes
-(
-</ins>
-<code>
-<del class="diff-old">prefix:suffix
-</del>
-<ins class="diff-chg">//
-</ins></code>,<ins class="diff-chg">
-as
-in
-</ins><code><ins class="diff-chg">
-http://example.com
-</ins>
-</code>
-<del class="diff-old">construct,
-</del>
-<ins class="diff-chg">).
-To
-generate
-the
-full
-</ins><a href="#dfn-iri" title="iri" class="tref internalDFN"><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,
-the
-value
-is
-first
-split
-into
-a
-<em>
-prefix
-</em>
-and
-<em>
-suffix
-</em>
-at
-the
-first
-occurrence
-of
-a
-colon
-(
-<code>:
-</code>
-).
-If
-the
-<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
-active
-context
-</a>
-contains
-a
-term
-mapping
-for
-<em>
-prefix
-</em>,
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-is
-generated
-by
-prepending
-the
-mapped
-<em>
-prefix
-</em>
-to
-the
-(possibly
-empty)
-<em>
-suffix
-</em>
-using
-textual
-concatenation.
-If
-no
-prefix
-mapping
-is
-defined,
-the
-value
-is
-used
-directly
-as
-an
-<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
-<ins class="diff-new">absolute
-</ins>
-<abbr title="Internationalized Resource Identifier">
-IRI
-<del class="diff-old">.
-</del>
-</abbr>
-</a>.
-If
-the
-prefix
-is
-an
-underscore
-(
-<code>
-_
-</code>
-),
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-remains
-unchanged.
-<ins class="diff-new">This
-effectively
-means
-that
-every
-term
-containing
-a
-colon
-will
-be
-interpreted
-by
-a
-JSON-LD
-processor
-as
-an
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>.
-</p>
-<p>
-The
-ability
-to
-use
-<del class="diff-old">prefix
-</del>
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-<ins class="diff-chg">compact
-IRIs
-</ins>
-</a>
-<del class="diff-old">es
-</del>
-reduces
-the
-need
-for
-developers
-to
-declare
-every
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-term
-that
-they
-intend
-to
-use
-in
-the
-JSON-LD
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>.
-This
-reduces
-stand-alone
-JSON-LD
-document
-serialization
-size
-because
-every
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-term
-need
-not
-be
-declared
-in
-the
-embedded
-context.
-<del class="diff-old">Prefix
-</del>
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-<ins class="diff-chg">Compact
-IRIs
-</ins>
-</a>
-also
-reduces
-the
-cognitive
-load
-on
-the
-developer.
-It
-is
-far
-easier
-to
-remember
-<code>
-foaf:name
-</code>
-than
-it
-is
-to
-remember
-<code>
-http://xmlns.com/foaf/0.1/name
-</code>.
-The
-use
-of
-prefixes
-also
-ensures
-that
-a
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-document
-does
-not
-have
-to
-be
-updated
-in
-lock-step
-with
-an
-externally
-defined
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>.
-Without
-prefixes,
-a
-developer
-would
-need
-to
-keep
-their
-application
-context
-terms
-in
-lock-step
-with
-an
-externally
-defined
-vocabulary.
-Rather,
-by
-just
-declaring
-the
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-prefix,
-one
-can
-use
-new
-terms
-as
-they're
-declared
-without
-having
-to
-update
-the
-application's
-JSON-LD
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>.
-</p>
-<p>
-Consider
-the
-following
-example:
-</p>
-<del class="diff-old"> {
- "@context": {
-
-
- },
- "@id": "http://example.org/library",
- "@type": ,
- : {
- "@id": "http://example.org/library/the-republic",
- "@type": ,
- : "Plato",
- : "The Republic",
- : {
- "@id": "http://example.org/library/the-republic#introduction",
- "@type": ,
- : "An introductory chapter on The Republic.",
- : "The Introduction"
- }
- }
-</del>
- <pre class="example">{
-<ins class="diff-chg"> "@context":
- {
-</ins> <span class="diff">"dc": "http://purl.org/dc/elements/1.1/",</span>
- <span class="diff">"ex": "http://example.org/vocab#"</span>
-<ins class="diff-chg">
- },
- "@id": "http://example.org/library",
- "@type": <span class="diff">"ex:Library"</span>,
-</ins> <span class="diff">"ex:contains"</span>:
-<ins class="diff-chg">
- {
- "@id": "http://example.org/library/the-republic",
- "@type": <span class="diff">"ex:Book"</span>,
-</ins> <span class="diff">"dc:creator"</span>: "Plato",
- <span class="diff">"dc:title"</span>: "The Republic",
- <span class="diff">"ex:contains"</span>:
-<ins class="diff-chg">
- {
- "@id": "http://example.org/library/the-republic#introduction",
- "@type": <span class="diff">"ex:Chapter"</span>,
-</ins> <span class="diff">"dc:description"</span>: "An introductory chapter on The Republic.",
- <span class="diff">"dc:title"</span>: "The Introduction"
-<ins class="diff-chg">
- }
- }
-</ins>
-}
-</pre>
-<p>
-In
-this
-example,
-two
-different
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabularies
-</a>
-are
-referred
-to
-using
-prefixes.
-Those
-prefixes
-are
-then
-used
-as
-type
-and
-property
-values
-using
-the
-<ins class="diff-new">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>
-<code>
-prefix:suffix
-</code>
-notation.
-</p>
-<p>
-<del class="diff-old">Prefixes,
-</del>
-<ins class="diff-chg">It's
-also
-possible
-to
-use
-compact
-IRIs
-within
-the
-context
-as
-shown
-in
-the
-following
-example:
-</ins></p><p> </p><pre class="example">{
-<ins class="diff-chg">
- "@context":
- {
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "foaf": "http://xmlns.com/foaf/0.1/",
-</ins> <span class="diff">"foaf:homepage"</span>: { "@type": "@id" },
-<ins class="diff-chg">
- "picture": { "@id": <span class="diff">"foaf:depiction"</span>, "@type": "@id" }
- },
- "@subject": "http://me.markus-lanthaler.com/",
- "@type": "foaf:Person",
- "foaf:name": "Markus Lanthaler",
- "foaf:homepage": "http://www.markus-lanthaler.com/",
- "picture": "http://twitter.com/account/profile_image/markuslanthaler"
-}
-</ins></pre><p><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><ins class="diff-chg">
-Compact
-IRIs
-</ins></a>,
-also
-known
-as
-CURIEs,
-are
-defined
-more
-formally
-in
-RDFa
-Core
-1.1,
-<cite>
-<a href="http://www.w3.org/TR/rdfa-core/#s_curies">
-Section
-6
-<del class="diff-old">"CURIE
-</del>
-<ins class="diff-chg">"CURIE
-</ins>
-Syntax
-<del class="diff-old">Definition"
-</del>
-<ins class="diff-chg">Definition"
-</ins>
-</a>
-</cite>
-[
-<cite>
-<a href="#bib-RDFA-CORE" rel="biblioentry" class="bibref">
-RDFA-CORE
-</a>
-</cite>
-].
-JSON-LD
-does
-not
-support
-the
-square-bracketed
-CURIE
-syntax
-as
-the
-mechanism
-is
-not
-required
-to
-disambiguate
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s
-in
-a
-JSON-LD
-document
-like
-it
-is
-in
-HTML
-documents.
-</p>
-</div>
-<div class="section" id="external-contexts">
-<h3>
-<span class="secno">
-4.2
-</span>
-External
-Contexts
-</h3>
-<p>
-Authors
-may
-choose
-to
-declare
-JSON-LD
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-s
-in
-external
-documents
-to
-promote
-re-use
-of
-contexts
-as
-well
-as
-reduce
-the
-size
-of
-JSON-LD
-documents.
-</p>
-<p>
-In
-order
-to
-use
-an
-external
-context,
-an
-author
-<del class="diff-old">may
-</del>
-<em title="must" class="rfc2119">
-<ins class="diff-chg">must
-</ins>
-</em>
-specify
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-to
-a
-valid
-JSON-LD
-document.
-The
-referenced
-document
-<em title="must" class="rfc2119">
-must
-</em>
-have
-a
-top-level
-<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
-JSON
-Object
-</a>.
-The
-value
-of
-any
-<code>
-@context
-</code>
-key
-within
-that
-object
-is
-substituted
-for
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-within
-the
-referencing
-document
-to
-have
-the
-same
-effect
-as
-if
-the
-value
-were
-specified
-inline
-within
-the
-referencing
-document.
-</p>
-<p>
-The
-following
-example
-demonstrates
-the
-use
-of
-an
-external
-context:
-</p>
-<del class="diff-old">{
- ,
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</del>
-<pre class="example">{
- <span class="diff">"@context": "http://json-ld.org/contexts/person"</span>,
-<ins class="diff-chg"> "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</ins>
-}
-</pre>
-<p>
-Authors
-may
-also
-import
-multiple
-contexts
-or
-a
-combination
-of
-external
-and
-local
-contexts
-by
-specifying
-a
-list
-of
-contexts:
-</p>
-<del class="diff-old">{
- "@context":
- [
- "http://json-ld.org/contexts/person",
- { "foaf": "http://xmlns.com/foaf/0.1/" },
- "http://json-ld.org/contexts/event",
- ]
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
- "celebrates":
- {
- "@type": "Event",
- "description": "International Talk Like a Pirate Day",
- "date": "R/2011-09-19"
- }
-</del>
-<pre class="example">{
- <span class="diff">"@context":
-<ins class="diff-chg"> [
- "http://json-ld.org/contexts/person",
- {
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "http://json-ld.org/contexts/event",
- ]</span>
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</ins> <span class="diff">"celebrates":
-<ins class="diff-chg">
- {
- "@type": "Event",
- "description": "International Talk Like a Pirate Day",
- "date": "R/2011-09-19"
- }</span>
-</ins>
-}
-</pre>
-<p>
-Each
-context
-in
-a
-list
-will
-be
-evaluated
-in-order.
-Duplicate
-mappings
-among
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-s
-<em title="must" class="rfc2119">
-must
-</em>
-be
-overwritten
-on
-a
-last-defined-overrides
-basis.
-The
-context
-list
-<em title="must" class="rfc2119">
-must
-</em>
-contain
-either
-de-referenceable
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s
-or
-<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
-JSON
-Object
-</a>
-s
-that
-conform
-to
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-syntax
-as
-described
-in
-this
-document.
-</p>
-<p>
-An
-author
-may
-nest
-contexts
-within
-<a href="#dfn-json_object" title="json_object" class="tref internalDFN">
-JSON
-object
-</a>
-s,
-with
-the
-more
-deeply
-nested
-contexts
-overriding
-the
-values
-in
-previously
-defined
-contexts:
-</p>
-<del class="diff-old">{
- "@context":
- {
- "name": "http://example.com/person#name",
- "details": "http://example.com/person#details"
- },
- "": "Markus",
- ...
- "details":
- {
-
- "": "Acme, Ltd."
- }
-</del>
-<pre class="example">{
- <span class="diff">"@context":
-<ins class="diff-chg"> {
- "name": "http://example.com/person#name",
- "details": "http://example.com/person#details"
- },</span>
- "<span class="diff">name</span>": "Markus Lanthaler",
- ...
- "details":
- {
-</ins> <span class="diff">"@context": { "name": "http://example.com/organization#name" },</span>
-<ins class="diff-chg">
- "<span class="diff">name</span>": "Graz University of Technology"
- }
-</ins>
-}
-</pre>
-<p>
-In
-the
-example
-above,
-the
-<code>
-name
-</code>
-prefix
-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
-the
-JSON
-object
-has
-legacy
-applications
-using
-the
-structure
-of
-the
-object.
-</p>
-<p>
-External
-JSON-LD
-context
-documents
-<em title="may" class="rfc2119">
-may
-</em>
-contain
-extra
-information
-located
-outside
-of
-the
-<code>
-@context
-</code>
-key,
-such
-as
-documentation
-about
-the
-<del class="diff-old">prefix
-</del>
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-<ins class="diff-chg">prefixes
-</ins>
-</a>
-<del class="diff-old">es
-</del>
-declared
-in
-the
-document.
-When
-importing
-a
-<code>
-@context
-</code>
-value
-from
-an
-external
-JSON-LD
-context
-document,
-any
-extra
-information
-contained
-outside
-of
-the
-<code>
-@context
-</code>
-value
-<em title="must" class="rfc2119">
-must
-</em>
-be
-discarded.
-It
-is
-also
-<em title="recommended" class="rfc2119">
-recommended
-</em>
-that
-a
-human-readable
-document
-encoded
-in
-HTML+RDFa
-[
-<cite>
-<a href="#bib-HTML-RDFA" rel="biblioentry" class="bibref">
-HTML-RDFA
-</a>
-</cite>
-]
-or
-other
-Linked
-Data
-compatible
-format
-is
-served
-as
-well
-to
-explain
-the
-correct
-usage
-of
-the
-JSON-LD
-context
-document.
-</p>
-</div>
-<div class="section" id="referencing-contexts-from-json-documents">
-<h3>
-<span class="secno">
-4.3
-</span>
-<ins class="diff-new">Referencing
-Contexts
-from
-JSON
-Documents
-</ins></h3><p><ins class="diff-new">
-Ordinary
-JSON
-documents
-can
-be
-transformed
-in
-JSON-LD
-documents
-by
-referencing
-to
-an
-external
-JSON-LD
-</ins><a href="#dfn-context" title="context" class="tref internalDFN"><ins class="diff-new">
-context
-</ins></a><ins class="diff-new">
-in
-an
-HTTP
-Link
-Header.
-Doing
-this
-allows
-JSON
-to
-be
-unambiguously
-machine-readable
-without
-requiring
-developers
-to
-drastically
-change
-their
-workflow
-and
-provides
-an
-upgrade
-path
-for
-existing
-infrastructure
-without
-breaking
-existing
-clients
-that
-rely
-on
-the
-</ins><code><ins class="diff-new">
-application/json
-</ins></code><ins class="diff-new">
-media
-type.
-</ins></p><p><ins class="diff-new">
-In
-order
-to
-use
-an
-external
-context
-with
-an
-ordinary
-JSON
-document,
-an
-author
-</ins><em title="must" class="rfc2119"><ins class="diff-new">
-must
-</ins></em><ins class="diff-new">
-specify
-an
-</ins><a href="#dfn-iri" title="iri" class="tref internalDFN"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-to
-a
-valid
-JSON-LD
-document
-in
-an
-HTTP
-Link
-Header
-[
-</ins><cite><a href="#bib-RFC5988" rel="biblioentry" class="bibref"><ins class="diff-new">
-RFC5988
-</ins></a></cite><ins class="diff-new">
-]
-using
-the
-</ins><code><ins class="diff-new">
-describedby
-</ins></code><ins class="diff-new">
-link
-relation.
-The
-referenced
-document
-</ins><em title="must" class="rfc2119"><ins class="diff-new">
-must
-</ins></em><ins class="diff-new">
-have
-a
-top-level
-</ins><a href="#dfn-json_object" title="json_object" class="tref internalDFN"><ins class="diff-new">
-JSON
-Object
-</ins></a>.<ins class="diff-new">
-The
-</ins><code><ins class="diff-new">
-@context
-</ins></code><ins class="diff-new">
-subtree
-within
-that
-object
-is
-added
-to
-the
-top-level
-object
-of
-the
-referencing
-document.
-If
-an
-array
-is
-at
-the
-top-level
-of
-the
-referencing
-document
-and
-its
-items
-are
-objects,
-the
-</ins><code><ins class="diff-new">
-@context
-</ins></code><ins class="diff-new">
-subtree
-is
-added
-to
-all
-array
-items.
-All
-extra
-information
-located
-outside
-of
-the
-</ins><code><ins class="diff-new">
-@context
-</ins></code><ins class="diff-new">
-subtree
-in
-the
-referenced
-document
-</ins><em title="must" class="rfc2119"><ins class="diff-new">
-must
-</ins></em><ins class="diff-new">
-be
-discarded.
-</ins></p><p><ins class="diff-new">
-The
-following
-example
-demonstrates
-the
-use
-of
-an
-external
-context
-with
-an
-ordinary
-JSON
-document:
-</ins></p><pre class="example">GET /ordinary-json-document.json HTTP/1.1
-<ins class="diff-new">
-Host: example.com
-Accept: application/json,*/*;q=0.1
-
-----------------------------------------------------
-
-HTTP/1.0 200 OK
-...
-Content-Type: application/json
-</ins><span class="diff">Link: <http://json-ld.org/contexts/person>; rel="describedby"; type="application/ld+json"</span>
-<ins class="diff-new">
-
-{
- "name": "Markus Lanthaler",
- "homepage": "http://www.markus-lanthaler.com/",
- "depiction": "http://twitter.com/account/profile_image/markuslanthaler"
-}
-</ins></pre><p class="note"><ins class="diff-new">
-JSON-LD
-documents
-</ins><em title="must" class="rfc2119"><ins class="diff-new">
-must
-</ins></em><ins class="diff-new">
-have
-all
-context
-information,
-including
-references
-to
-external
-contexts,
-within
-the
-body
-of
-the
-document.
-</ins></p></div><div class="section" id="default-language"><h3><span class="secno"><ins class="diff-new">
-4.4
-</ins></span>
-Default
-Language
-</h3>
-<p>
-JSON-LD
-allows
-a
-default
-value
-to
-use
-as
-the
-language
-for
-<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
-string
-value
-</a>
-s.
-It
-is
-commonly
-the
-case
-that
-documents
-are
-written
-using
-a
-single
-language.
-As
-described
-in
-<a href="string-internationalization">
-String
-Internationalization
-</a>,
-a
-language-tagged
-value
-<em title="may" class="rfc2119">
-may
-</em>
-be
-specified
-as
-follows:
-</p>
-<del class="diff-old">{
-...
- "name":
- {
- "@value": "花澄",
- "@language": "ja"
- }
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> ...
- "name":
-</ins> <span class="diff">{
-<ins class="diff-chg">
- "@value": "花澄",
- "@language": "ja"
- }</span>
-</ins>
-}
-</pre>
-<p>
-It
-is
-also
-possible
-to
-apply
-a
-particular
-language
-code
-to
-all
-<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
-string
-value
-</a>
-s
-by
-setting
-the
-<code>
-@language
-</code>
-key
-in
-the
-<code>
-@context
-</code>:
-</p>
-<del class="diff-old">{
- "@context:"
- {
- "@language": "ja"
- },
-...
- "name":
- "occupation":
-...
-</del>
-<pre class="example">{
- <span class="diff">"@context":
-<ins class="diff-chg"> {
- ...
- "@language": "ja"
- },</span>
- "name": <span class="diff">"花澄"</span>,
- "occupation": <span class="diff">"科学者"</span>
-</ins>
-}
-</pre>
-<p>
-The
-example
-above
-would
-generate
-a
-<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
-string
-value
-</a>
-for
-<em>
-花澄
-</em>
-and
-<em>
-科学者
-</em>
-and
-associate
-the
-<code>
-ja
-</code>
-language
-code
-with
-each
-value.
-</p>
-<p>
-It
-is
-possible
-to
-override
-the
-default
-language
-by
-using
-the
-expanded
-form
-of
-a
-value:
-</p>
-<del class="diff-old">{
- "@context:"
- {
- "@language": "ja"
- },
-...
- "name": "花澄"
- "occupation":
- {
- "@value": "Scientist",
- "@language": "en"
- }
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- ...
- "@language": "ja"
- },
- "name": "花澄",
- "occupation":
-</ins> <span class="diff">{
-<ins class="diff-chg">
- "@value": "Scientist",
- "@language": "en"
- }</span>
-</ins>
-}
-</pre>
-<p>
-It
-is
-also
-possible
-to
-override
-the
-default
-language
-and
-specify
-a
-plain
-value
-by
-omitting
-the
-<code>
-@language
-</code>
-tag
-when
-expressing
-the
-expanded
-value:
-</p>
-<del class="diff-old">{
- "@context:"
- {
- "@language": "ja"
- },
-...
- "name": "花澄"
- "occupation":
- {
- "@value": "Ninja"
- }
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- ...
- "@language": "ja"
- },
- "name": "花澄",
- "occupation": <span class="diff">
- {
- "@value": "Ninja"
- }</span>
-</ins>
-}
-</pre>
-<p>
-Object
-<a href="#dfn-property" title="property" class="tref internalDFN">
-properties
-</a>
-that
-use
-the
-expanded
-form
-are
-considered
-explicitly
-defined.
-The
-<code>
-@language
-</code>
-keyword,
-when
-used
-in
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>,
-<em title="must" class="rfc2119">
-must
-</em>
-only
-be
-applied
-to
-<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
-string
-value
-</a>
-s.
-That
-is,
-<a href="#dfn-string_value" title="string_value" class="tref internalDFN">
-string
-value
-</a>
-s
-expressed
-in
-expanded
-form
-are
-not
-affected
-by
-the
-<code>
-@language
-</code>
-keyword,
-when
-it
-is
-used
-in
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>.
-</p>
-<p>
-<ins class="diff-new">To
-clear
-the
-default
-language
-for
-a
-subtree,
-</ins><code><ins class="diff-new">
-@language
-</ins></code><ins class="diff-new">
-can
-be
-set
-to
-</ins><code><ins class="diff-new">
-null
-</ins></code><ins class="diff-new">
-in
-a
-</ins><a href="#dfn-local_context" title="local_context" class="tref internalDFN"><ins class="diff-new">
-local
-context
-</ins></a><ins class="diff-new">
-as
-follows:
-</ins></p><pre class="example">{
-<ins class="diff-new">
- "@context":
- {
- ...
- "@language": "ja"
- },
- "name": "花澄",
- "details":
- {
-</ins><span class="diff"> "@context":
-<ins class="diff-new">
- {
- "@language": null
- },</span>
- "occupation": "Ninja"
- }
-}
-</ins></pre>
-</div>
-<div class="section" id="expanded-term-definition">
-<h3>
-<span class="secno">
-<del class="diff-old">4.4
-</del>
-<ins class="diff-chg">4.5
-</ins>
-</span>
-Expanded
-Term
-Definition
-</h3>
-<p>
-Within
-a
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-definition,
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-<em title="may" class="rfc2119">
-may
-</em>
-be
-defined
-using
-an
-expanded
-notation
-to
-allow
-for
-additional
-information
-associated
-with
-the
-term
-to
-be
-specified
-(see
-<a href="#type-coerceion">
-Type
-Coercion
-</a>
-and
-<a href="#lists">
-Lists
-</a>
-).
-</p>
-<p>
-Instead
-of
-using
-a
-string
-representation
-of
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>,
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<em title="may" class="rfc2119">
-may
-</em>
-be
-specified
-using
-an
-object
-having
-an
-<code>
-@id
-</code>
-key.
-The
-value
-of
-the
-<code>
-@id
-</code>
-key
-<em title="must" class="rfc2119">
-must
-</em>
-be
-either
-a
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-prefix
-</a>:suffix
-value,
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-Type
-information
-may
-be
-specified
-</p>
-<del class="diff-old">{
- "@context": {
- "foaf": ,
- "name": ,
- "homepage": ,
- "depiction":
- },
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "foaf": <span class="diff">{ "@id": "http://xmlns.com/foaf/0.1/" }</span>,
- "name": <span class="diff">{ "@id": "http://xmlns.com/foaf/0.1/name" }</span>,
- "homepage": <span class="diff">{ "@id": "foaf:homepage" }</span>,
- "depiction": <span class="diff">{ "@id": "foaf:depiction" }</span>
- },
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/",
- "depiction": "http://twitter.com/account/profile_image/manusporny"
-</ins>
-}
-</pre>
-</div>
-<div class="section" id="automatic-typing">
-<h3>
-<span class="secno">
-<del class="diff-old">4.5
-</del>
-<ins class="diff-chg">4.6
-</ins>
-</span>
-Automatic
-Typing
-</h3>
-<p>
-Since
-JSON
-is
-capable
-of
-expressing
-typed
-information
-such
-as
-doubles,
-integers,
-and
-boolean
-values.
-As
-demonstrated
-below,
-JSON-LD
-utilizes
-that
-information
-to
-create
-<a href="#dfn-typed_value" title="typed_value" class="tref internalDFN">
-typed
-value
-</a>
-s:
-</p>
-<del class="diff-old">{
-...
- // The following two values are automatically converted to a type of xsd:double
- // and both values are equivalent to each other.
- "measure:cups": ,
- "measure:cups": ,
- // The following value is automatically converted to a type of xsd:double as well
- "space:astronomicUnits": ,
- // The following value is never converted to a language-native type
- "measure:stones": ,
- // This value is automatically converted to having a type of xsd:integer
- "chem:protons": ,
- // This value is automatically converted to having a type of xsd:boolean
- "sensor:active": ,
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- // The following two values are automatically converted to a type of xsd:double
- // and both values are equivalent to each other.
- "measure:cups": <span class="diff">5.3</span>,
- "measure:cups": <span class="diff">5.3e0</span>,
- // The following value is automatically converted to a type of xsd:double as well
- "space:astronomicUnits": <span class="diff">6.5e73</span>,
- // The following value is never converted to a language-native type
- "measure:stones": <span class="diff">{ "@value": "4.8", "@type": "xsd:decimal" }</span>,
- // This value is automatically converted to having a type of xsd:integer
- "chem:protons": <span class="diff">12</span>,
- // This value is automatically converted to having a type of xsd:boolean
- "sensor:active": <span class="diff">true</span>,
-...
-</ins>
-}
-</pre>
-<p class="note">
-When
-dealing
-with
-a
-number
-of
-modern
-programming
-languages,
-including
-JavaScript
-ECMA-262,
-there
-is
-no
-distinction
-between
-<strong>
-xsd:decimal
-</strong>
-and
-<strong>
-xsd:double
-</strong>
-values.
-That
-is,
-the
-<a href="#dfn-number" title="number" class="tref internalDFN">
-number
-</a>
-<code>
-5.3
-</code>
-and
-the
-<a href="#dfn-number" title="number" class="tref internalDFN">
-number
-</a>
-<code>
-5.3e0
-</code>
-are
-treated
-as
-if
-they
-were
-the
-same.
-When
-converting
-from
-JSON-LD
-to
-a
-language-native
-format
-and
-back,
-type
-information
-is
-lost
-in
-a
-number
-of
-these
-languages.
-Thus,
-one
-could
-say
-that
-<code>
-5.3
-</code>
-is
-a
-<strong>
-xsd:decimal
-</strong>
-and
-<code>
-5.3e0
-</code>
-is
-an
-<strong>
-xsd:double
-</strong>
-in
-JSON-LD,
-but
-when
-both
-values
-are
-converted
-to
-a
-language-native
-format
-the
-type
-difference
-between
-the
-two
-is
-lost
-because
-the
-machine-level
-representation
-will
-almost
-always
-be
-a
-<strong>
-double
-</strong>.
-Implementers
-should
-be
-aware
-of
-this
-potential
-round-tripping
-issue
-between
-<strong>
-xsd:decimal
-</strong>
-and
-<strong>
-xsd:double
-</strong>.
-Specifically
-objects
-with
-a
-type
-of
-<strong>
-xsd:decimal
-</strong>
-<em title="must not" class="rfc2119">
-must
-not
-</em>
-be
-converted
-to
-a
-language
-native
-type.
-</p>
-</div>
-<div class="section" id="type-coercion">
-<h3>
-<span class="secno">
-<del class="diff-old">4.6
-</del>
-<ins class="diff-chg">4.7
-</ins>
-</span>
-Type
-Coercion
-</h3>
-<p>
-JSON-LD
-supports
-the
-coercion
-of
-values
-to
-particular
-data
-types.
-Type
-<dfn id="dfn-coercion" title="coercion">
-coercion
-</dfn>
-allows
-someone
-deploying
-JSON-LD
-to
-coerce
-the
-incoming
-or
-outgoing
-types
-to
-the
-proper
-data
-type
-based
-on
-a
-mapping
-of
-data
-type
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s
-to
-property
-types.
-Using
-type
-coercion,
-value
-representation
-is
-preserved
-without
-requiring
-the
-data
-type
-to
-be
-specified
-with
-each
-usage.
-</p>
-<p>
-Type
-coercion
-is
-specified
-within
-an
-<a href="#expanded-term-definition">
-expanded
-term
-definition
-</a>
-using
-the
-<code>
-@type
-</code>
-key.
-The
-values
-of
-this
-key
-represent
-type
-IRIs
-and
-<em title="must" class="rfc2119">
-must
-</em>
-take
-the
-form
-of
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>,
-<del class="diff-old">prefix
-:suffix,
-</del>
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-<ins class="diff-chg">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>,<a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN">
-absolute
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-or
-the
-keyword
-<code>
-@id
-</code>.
-Specifying
-<code>
-@id
-</code>
-indicates
-that
-within
-the
-body
-of
-a
-JSON-LD
-document,
-string
-values
-of
-keys
-coerced
-as
-<code>
-@id
-</code>
-are
-to
-be
-interpreted
-as
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s.
-</p>
-<p>
-<a href="#dfn-term" title="term" class="tref internalDFN">
-Terms
-</a>
-or
-<del class="diff-old">prefixes
-</del>
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-<ins class="diff-chg">compact
-IRIs
-</ins>
-</a>
-used
-as
-the
-value
-of
-a
-<code>
-@type
-</code>
-key
-<em title="may" class="rfc2119">
-may
-</em>
-be
-defined
-within
-the
-same
-context.
-</p>
-<p>
-The
-example
-below
-demonstrates
-how
-a
-JSON-LD
-author
-can
-coerce
-values
-to
-<a href="#dfn-typed_value" title="typed_value" class="tref internalDFN">
-typed
-value
-</a>
-s,
-IRIs
-and
-lists.
-</p>
-<del class="diff-old">{
- "@context":
- {
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "name": "http://xmlns.com/foaf/0.1/name",
- "age": ,
- "homepage":
- },
- "name": "John Smith",
- "age": ,
- "homepage":
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "name": "http://xmlns.com/foaf/0.1/name",
- "age":
-</ins> <span class="diff">{
-<ins class="diff-chg">
- "@id": "http://xmlns.com/foaf/0.1/age",
- "@type": "xsd:integer"
- }</span>,
- "homepage":
-</ins> <span class="diff">{
-<ins class="diff-chg">
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id",
- "@container": "@list"
- }</span>
- },
- "name": "John Smith",
- "age": <span class="diff">"41"</span>,
- "homepage":
-</ins> <span class="diff">[
-<ins class="diff-chg">
- "http://personal.example.org/",
- "http://work.example.com/jsmith/"
- ]</span>
-</ins>
-}
-</pre>
-<p>
-The
-example
-above
-would
-generate
-the
-following
-Turtle:
-</p>
-<del class="diff-old">@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-[ foaf:name "John Smith";
- foaf:age "41"^^xsd:integer;
- foaf:homepage ( <http://personal.example.org/> <http://work.example.com/jsmith/> )
-</del>
-<pre class="example">@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-<ins class="diff-chg">
-[ foaf:name "John Smith";
- foaf:age "41"^^xsd:integer;
- foaf:homepage ( <http://personal.example.org/> <http://work.example.com/jsmith/> )
-</ins>
-]
-.
-</pre>
-<p>
-<ins class="diff-new">Terms
-may
-also
-be
-defined
-using
-</ins><a href="#dfn-absolute_iri" title="absolute_iri" class="tref internalDFN"><ins class="diff-new">
-absolute
-IRIs
-</ins></a><ins class="diff-new">
-or
-</ins><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><ins class="diff-new">
-compact
-IRIs
-</ins></a>.<ins class="diff-new">
-This
-allows
-coercion
-rules
-to
-by
-applied
-to
-keys
-which
-are
-not
-represented
-as
-a
-simple
-</ins><a href="#dfn-term" title="term" class="tref internalDFN"><ins class="diff-new">
-term
-</ins></a>.<ins class="diff-new">
-For
-example:
-</ins></p><pre class="example">{
-<ins class="diff-new">
- "@context":
- {
-</ins> <span class="diff">"foaf": "http://xmlns.com/foaf/0.1/"</span>,
-<ins class="diff-new">
- "<span class="diff">foaf:age</span>":
- {
- "@id": "http://xmlns.com/foaf/0.1/"",
- "@type": "xsd:integer"
- },
- "<span class="diff">foaf:homepage</span>":
-</ins> <span class="diff">{
-<ins class="diff-new">
- "@type": "@id"
- }</span>
-}
-</ins></pre><p><ins class="diff-new">
-In
-this
-case,
-the
-</ins><code><ins class="diff-new">
-@id
-</ins></code><ins class="diff-new">
-definition
-is
-optional,
-but
-if
-it
-does
-exist,
-the
-</ins><a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN"><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 href="#dfn-iri" title="iri" class="tref internalDFN"><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr></a><ins class="diff-new">
-is
-treated
-as
-a
-term
-so
-that
-the
-actual
-definition
-of
-a
-</ins><a href="#dfn-prefix" title="prefix" class="tref internalDFN"><ins class="diff-new">
-prefix
-</ins></a><ins class="diff-new">
-becomes
-unnecessary.
-</ins></p>
-</div>
-<div class="section" id="iri-expansion-within-a-context">
-<h3>
-<span class="secno">
-<del class="diff-old">4.7
-</del>
-<ins class="diff-chg">4.8
-</ins>
-</span>
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-Expansion
-Within
-a
-Context
-</h3>
-<p>
-To
-be
-consistent
-with
-JSON-LD,
-in
-general,
-anywhere
-an
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-is
-expected,
-normal
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-expansion
-rules
-apply
-(see
-<a href="#iris">
-IRIs
-</a>
-).
-Within
-a
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-definition,
-this
-can
-mean
-that
-terms
-defined
-within
-a
-given
-context
-<em title="may" class="rfc2119">
-may
-</em>
-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 href="#dfn-typed_value" title="typed_value" class="tref internalDFN">
-typed
-value
-</a>
-s:
-</p>
-<del class="diff-old">{
- "@context": {
- ,
- "name": "http://xmlns.com/foaf/0.1/name",
- "age": {"@id": "http://xmlns.com/foaf/0.1/age", "@type": },
- "homepage": {"@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@id"}
- },
- ...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
-</ins> <span class="diff">"xsd": "http://www.w3.org/2001/XMLSchema#"</span>,
-<ins class="diff-chg">
- "name": "http://xmlns.com/foaf/0.1/name",
- "age":
- {
- "@id": "http://xmlns.com/foaf/0.1/age",
- "@type": <span class="diff">"xsd:integer"</span>
- },
- "homepage":
- {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- }
- },
- ...
-</ins>
-}
-</pre>
-<p>
-In
-this
-example,
-the
-<code>
-xsd
-</code>
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-is
-defined,
-and
-used
-as
-a
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-prefix
-</a>
-for
-the
-<code>
-@type
-</code>
-coercion
-of
-the
-<code>
-age
-</code>
-property.
-</p>
-<p>
-<a href="#dfn-term" title="term" class="tref internalDFN">
-Term
-</a>
-s
-<em title="may" class="rfc2119">
-may
-</em>
-also
-be
-used
-when
-defining
-the
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-of
-another
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>:
-</p>
-<del class="diff-old">{
- "@context":
- {
- ,
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "name": ,
- "age": {"@id": , "@type": xsd:integer"},
- "homepage": {"@id": , "@type": "@id"}
- },
- ...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
-</ins> <span class="diff">"foaf": "http://xmlns.com/foaf/0.1/"</span>,
-<ins class="diff-chg">
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "name": <span class="diff">"foaf:name"</span>,
- "age":
- {
- "@id": <span class="diff">"foaf:age"</span>,
- "@type": "xsd:integer"
- },
- "homepage":
- {
- "@id": <span class="diff">"foaf:homepage"</span>,
- "@type": "@id"
- }
- },
- ...
-</ins>
-}
-</pre>
-<p>
-<a href="#dfn-term" title="term" class="tref internalDFN">
-Term
-</a>
-s
-<em title="may" class="rfc2119">
-may
-</em>
-also
-be
-used
-on
-the
-left-hand
-side
-of
-a
-definition.
-</p>
-<del class="diff-old">{
- "@context":
- {
- ,
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "name": "foaf:name",
- "": {"@id": "foaf:age", "@type": xsd:integer"},
- "
- },
- ...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
-</ins> <span class="diff">"foaf": "http://xmlns.com/foaf/0.1/"</span>,
-<ins class="diff-chg">
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "name": "foaf:name",
- "<span class="diff">foaf:age</span>":
- {
- "@id": "foaf:age",
- "@type": "xsd:integer"
- },
- "<span class="diff">foaf:homepage</span>":
-</ins> <span class="diff">{
-<ins class="diff-chg">
- "@type": "@id"
- }</span>
- },
- ...
-</ins>
-}
-</pre>
-<p>
-Note
-that
-in
-this
-example,
-the
-<del class="diff-old">prefixed
-</del>
-<a href="#dfn-compact_iri" title="compact_iri" class="tref internalDFN">
-<ins class="diff-chg">compact
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-chg">
-IRI
-</ins></abbr></a>
-form
-is
-used
-in
-two
-different
-ways.
-The
-first
-way,
-as
-shown
-with
-<code>
-foaf:age
-</code>
-declares
-both
-the
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-for
-the
-term
-(using
-short-form)
-as
-well
-as
-the
-<code>
-@type
-</code>
-associated
-with
-the
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>.
-The
-second
-way,
-only
-declares
-the
-<code>
-@type
-</code>
-associated
-with
-the
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>.
-In
-the
-second
-case,
-the
-JSON-LD
-processor
-will
-still
-derive
-the
-full
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-by
-looking
-up
-the
-<code>
-foaf
-</code>
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-prefix
-</a>
-in
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-for
-<code>
-foaf:homepage
-</code>.
-</p>
-<p>
-Full
-IRIs
-<em title="may" class="rfc2119">
-may
-</em>
-also
-be
-used
-on
-the
-left-hand
-side
-of
-a
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>:
-</p>
-<del class="diff-old">{
- "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/",
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "name": "foaf:name",
- "foaf:age": {"@id": "foaf:age", "@type": xsd:integer"},
- "": { "@type": "@id" }
- },
- ...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/",
- "xsd": "http://www.w3.org/2001/XMLSchema#",
- "name": "foaf:name",
- "foaf:age":
- {
- "@id": "foaf:age",
- "@type": "xsd:integer"
- },
- "<span class="diff">http://xmlns.com/foaf/0.1/homepage</span>":
- {
- "@type": "@id"
- }
- },
- ...
-</ins>
-}
-</pre>
-<p>
-Note
-that
-in
-order
-for
-the
-full
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-to
-match
-above,
-the
-full
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-<em title="must" class="rfc2119">
-must
-</em>
-also
-be
-used
-in
-the
-JSON-LD
-document.
-Also
-note
-that
-<code>
-foaf:homepage
-</code>
-will
-not
-use
-the
-<code>
-{
-<del class="diff-old">"@type":
-"@id"
-</del>
-<ins class="diff-chg">"@type":
-"@id"
-</ins>
-}
-</code>
-declaration
-because
-<code>
-foaf:homepage
-</code>
-is
-not
-the
-same
-as
-<code>
-http://xmlns.com/foaf/0.1/homepage
-</code>.
-That
-is,
-a
-JSON-LD
-processor
-will
-use
-direct
-string
-comparison
-when
-looking
-up
-<a href="#dfn-term" title="term" class="tref internalDFN">
-term
-</a>
-s
-in
-a
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-before
-it
-applies
-the
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-prefix
-</a>
-lookup
-mechanism.
-</p>
-<p>
-The
-only
-exception
-for
-using
-terms
-in
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-is
-that
-they
-<em title="must not" class="rfc2119">
-must
-not
-</em>
-be
-used
-in
-a
-circular
-manner.
-That
-is,
-a
-definition
-of
-<em>
-term-1
-</em>
-<em title="must not" class="rfc2119">
-must
-not
-</em>
-depend
-on
-the
-definition
-of
-<em>
-term-2
-</em>
-if
-<em>
-term-2
-</em>
-also
-depends
-on
-<em>
-term-1
-</em>.
-For
-example,
-the
-following
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>
-definition
-is
-illegal:
-</p>
-<del class="diff-old">{
- "@context":
- {
- "term1": {"@id": "term2:foo"},
- "term2": {"@id": "term1:bar"}
- },
- ...
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
-</ins> <span class="diff">"term1": "term2:foo",
-<ins class="diff-chg">
- "term2": "term1:bar"</span>
- },
- ...
-</ins>
-}
-</pre>
-</div>
-<div class="section" id="embedding">
-<h3>
-<span class="secno">
-<del class="diff-old">4.8
-</del>
-<ins class="diff-chg">4.9
-</ins>
-</span>
-Embedding
-</h3>
-<p>
-Object
-<dfn id="dfn-embedding" title="embedding">
-embedding
-</dfn>
-is
-a
-JSON-LD
-feature
-that
-allows
-an
-author
-to
-use
-the
-definition
-of
-JSON-LD
-objects
-as
-<a href="#dfn-property" title="property" class="tref internalDFN">
-property
-</a>
-values.
-This
-is
-a
-commonly
-used
-mechanism
-for
-creating
-a
-parent-child
-relationship
-between
-two
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>
-s.
-</p>
-<p>
-The
-example
-shows
-<del class="diff-old">an
-</del>
-two
-subjects
-related
-by
-a
-property
-from
-the
-first
-subject:
-</p>
-<del class="diff-old"> {
-...
- "name": "Manu Sporny",
- "": {
- "",
- "",
- }
-...
-</del>
- <pre class="example">{
-<ins class="diff-chg">...
- "name": "Manu Sporny",
- "<span class="diff">knows</span>":
- {
- "<span class="diff">@type</span>": "<span class="diff">Person</span>",
- "<span class="diff">name</span>": "<span class="diff">Gregg Kellogg</span>",
- }
-...
-</ins>
-}
-</pre>
-<p>
-An
-object
-definition,
-like
-the
-one
-used
-above,
-<em title="may" class="rfc2119">
-may
-</em>
-be
-used
-as
-a
-JSON
-value
-at
-any
-point
-in
-JSON-LD.
-</p>
-</div>
-<div class="section" id="identifying-unlabeled-nodes">
-<h3>
-<span class="secno">
-<del class="diff-old">4.9
-</del>
-<ins class="diff-chg">4.10
-</ins>
-</span>
-Identifying
-Unlabeled
-Nodes
-</h3>
-<p>
-At
-times,
-it
-becomes
-necessary
-to
-be
-able
-to
-express
-information
-without
-being
-able
-to
-specify
-the
-subject.
-Typically,
-this
-type
-of
-node
-is
-called
-an
-unlabeled
-node
-or
-a
-blank
-node.
-In
-JSON-LD,
-unlabeled
-node
-identifiers
-are
-automatically
-created
-if
-a
-subject
-is
-not
-specified
-using
-the
-<code>
-@id
-</code>
-keyword.
-However,
-authors
-may
-provide
-identifiers
-for
-unlabeled
-nodes
-by
-using
-the
-special
-<code>
-_
-</code>
-(underscore)
-<a href="#dfn-prefix" title="prefix" class="tref internalDFN">
-prefix
-</a>.
-This
-allows
-to
-reference
-the
-node
-locally
-within
-the
-document
-but
-not
-in
-an
-external
-document.
-</p>
-<del class="diff-old">{
-...
- "@id": "",
-...
-</del>
-<pre class="example">{
-<ins class="diff-chg">...
- "@id": "<span class="diff">_:foo</span>",
-...
-</ins>
-}
-</pre>
-<p>
-The
-example
-above
-would
-set
-the
-subject
-to
-<code>
-_:foo
-</code>,
-which
-can
-then
-be
-used
-later
-on
-in
-the
-JSON-LD
-markup
-to
-refer
-back
-to
-the
-unlabeled
-node.
-This
-practice,
-however,
-is
-usually
-frowned
-upon
-when
-generating
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>.
-If
-a
-developer
-finds
-that
-they
-refer
-to
-the
-unlabeled
-node
-more
-than
-once,
-they
-should
-consider
-naming
-the
-node
-using
-a
-resolve-able
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-</p>
-</div>
-<div class="section" id="aliasing-keywords">
-<h3>
-<span class="secno">
-<del class="diff-old">4.10
-</del>
-<ins class="diff-chg">4.11
-</ins>
-</span>
-Aliasing
-Keywords
-</h3>
-<p>
-JSON-LD
-allows
-all
-of
-the
-syntax
-keywords,
-except
-for
-<code>
-@context
-</code>,
-to
-be
-aliased.
-This
-feature
-allows
-more
-legacy
-JSON
-content
-to
-be
-supported
-by
-JSON-LD.
-It
-also
-allows
-developers
-to
-design
-domain-specific
-implementations
-using
-only
-the
-JSON-LD
-<a href="#dfn-context" title="context" class="tref internalDFN">
-context
-</a>.
-</p>
-<del class="diff-old">{
- "@context":
- {
- ,
- ,
- "name": "http://schema.org/name"
- },
- "url": "http://example.com/about#gregg",
- "a": "http://schema.org/Person",
- "name": "Gregg Kellogg"
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
-</ins> <span class="diff">"url": "@id"</span>,
- <span class="diff">"a": "@type"</span>,
-<ins class="diff-chg">
- "name": "http://schema.org/name"
- },
- "url": "http://example.com/about#gregg",
- "a": "http://schema.org/Person",
- "name": "Gregg Kellogg"
-</ins>
-}
-</pre>
-<p>
-In
-the
-example
-above,
-the
-<code>
-@id
-</code>
-and
-<code>
-@type
-</code>
-keywords
-have
-been
-given
-the
-aliases
-<strong>
-url
-</strong>
-and
-<strong>
-a
-</strong>,
-respectively.
-</p>
-</div>
-<div class="section" id="expansion">
-<h3>
-<span class="secno">
-<ins class="diff-new">4.12
-</ins></span><ins class="diff-new">
-Expansion
-</ins></h3><p><ins class="diff-new">
-The
-JSON-LD
-API
-[
-</ins><cite><a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref"><ins class="diff-new">
-JSON-LD-API
-</ins></a></cite><ins class="diff-new">
-]
-defines
-an
-method
-for
-</ins><em><ins class="diff-new">
-expanding
-</ins></em><ins class="diff-new">
-a
-JSON-LD
-document.
-Expansion
-is
-the
-process
-of
-taking
-a
-JSON-LD
-document
-and
-applying
-a
-context
-such
-that
-all
-</ins><abbr title="Internationalized Resource Identifier"><ins class="diff-new">
-IRI
-</ins></abbr>,<ins class="diff-new">
-datatypes,
-and
-literal
-values
-are
-expanded
-so
-that
-the
-context
-is
-no
-longer
-necessary.
-JSON-LD
-document
-expansion
-is
-typically
-used
-as
-a
-part
-of
-</ins><a href="#framing"><ins class="diff-new">
-Framing
-</ins></a>.</p><p><ins class="diff-new">
-For
-example,
-assume
-the
-following
-JSON-LD
-input
-document:
-</ins></p><pre class="example">{
-<ins class="diff-new">
- "@context":
- {
- "name": "http://xmlns.com/foaf/0.1/name",
- "homepage": {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type", "@id"
- }
- },
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/"
-}
-</ins></pre><p><ins class="diff-new">
-Running
-the
-JSON-LD
-Expansion
-algorithm
-against
-the
-JSON-LD
-input
-document
-provided
-above
-would
-result
-in
-the
-following
-output:
-</ins></p><pre class="example">{
-<ins class="diff-new">
- "http://xmlns.com/foaf/0.1/name": "Manu Sporny",
- "http://xmlns.com/foaf/0.1/homepage": {
- "@id": "http://manu.sporny.org/"
- }
-}
-</ins></pre>
-</div>
-<div class="section" id="compaction">
-<h3>
-<span class="secno">
-<ins class="diff-chg">4.13
-</ins></span><ins class="diff-chg">
-Compaction
-</ins></h3><p><ins class="diff-chg">
-The
-JSON-LD
-API
-[
-</ins><cite><a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref"><ins class="diff-chg">
-JSON-LD-API
-</ins></a></cite><ins class="diff-chg">
-]
-defines
-an
-method
-for
-</ins><em><ins class="diff-chg">
-compacting
-</ins></em><ins class="diff-chg">
-a
-JSON-LD
-document.
-Compaction
-is
-the
-process
-of
-taking
-a
-JSON-LD
-document
-and
-applying
-a
-context
-such
-that
-the
-most
-compact
-form
-of
-the
-document
-is
-generated.
-JSON
-is
-typically
-expressed
-in
-a
-very
-compact,
-key-value
-format.
-That
-is,
-full
-IRIs
-are
-rarely
-used
-as
-keys.
-At
-times,
-a
-JSON-LD
-document
-may
-be
-received
-that
-is
-not
-in
-its
-most
-compact
-form.
-JSON-LD,
-via
-the
-API,
-provides
-a
-way
-to
-compact
-a
-JSON-LD
-document.
-</ins></p><p><ins class="diff-chg">
-For
-example,
-assume
-the
-following
-JSON-LD
-input
-document:
-</ins></p><pre class="example">{
-<ins class="diff-chg">
- "http://xmlns.com/foaf/0.1/name": "Manu Sporny",
- "http://xmlns.com/foaf/0.1/homepage": {
- "@id": "http://manu.sporny.org/"
- }
-}
-</ins></pre><p><ins class="diff-chg">
-Additionally,
-assume
-the
-following
-developer-supplied
-JSON-LD
-context:
-</ins></p><pre class="example">{
-<ins class="diff-chg">
- "name": "http://xmlns.com/foaf/0.1/name",
- "homepage": {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- }
-}
-</ins></pre><p><ins class="diff-chg">
-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:
-</ins></p><pre class="example">{
-<ins class="diff-chg">
- "@context": {
- "name": "http://xmlns.com/foaf/0.1/name",
- "homepage": {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- }
- },
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/"
-}
-</ins></pre><p><ins class="diff-chg">
-The
-compaction
-algorithm
-also
-enables
-the
-developer
-to
-map
-any
-expanded
-format
-into
-an
-application-specific
-compacted
-format.
-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><strong><ins class="diff-chg">
-name
-</ins></strong>,<ins class="diff-chg">
-it
-could
-have
-also
-mapped
-it
-to
-any
-arbitrary
-string
-provided
-by
-the
-developer.
-</ins></p></div><div class="section" id="framing"><h3><span class="secno"><ins class="diff-chg">
-4.14
-</ins></span><ins class="diff-chg">
-Framing
-</ins></h3><p><ins class="diff-chg">
-The
-JSON-LD
-API
-[
-</ins><cite><a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref"><ins class="diff-chg">
-JSON-LD-API
-</ins></a></cite><ins class="diff-chg">
-]
-defines
-an
-method
-for
-</ins><em><ins class="diff-chg">
-framing
-</ins></em><ins class="diff-chg">
-a
-JSON-LD
-document.
-This
-allows
-developers
-to
-query
-by
-example
-and
-force
-a
-specific
-tree
-layout
-to
-a
-JSON-LD
-document.
-</ins></p><p><ins class="diff-chg">
-A
-JSON-LD
-document
-is
-a
-representation
-of
-a
-directed
-graph.
-A
-single
-directed
-graph
-can
-have
-many
-different
-serializations,
-each
-expressing
-exactly
-the
-same
-information.
-Developers
-typically
-work
-with
-trees,
-represented
-as
-</ins><a href="#dfn-json_object" title="json_object" class="tref internalDFN"><ins class="diff-chg">
-JSON
-object
-</ins></a><ins class="diff-chg">
-s.
-While
-mapping
-a
-graph
-to
-a
-tree
-can
-be
-done,
-the
-layout
-of
-the
-end
-result
-must
-be
-specified
-in
-advance.
-A
-</ins><dfn id="dfn-frame" title="frame"><ins class="diff-chg">
-Frame
-</ins></dfn><ins class="diff-chg">
-can
-be
-used
-by
-a
-developer
-on
-a
-JSON-LD
-document
-to
-specify
-a
-deterministic
-layout
-for
-a
-graph.
-</ins></p><p><ins class="diff-chg">
-Framing
-is
-the
-process
-of
-taking
-a
-JSON-LD
-document,
-which
-expresses
-a
-graph
-of
-information,
-and
-applying
-a
-specific
-graph
-layout
-(called
-a
-</ins><a href="#dfn-frame" title="frame" class="tref internalDFN"><ins class="diff-chg">
-Frame
-</ins></a><ins class="diff-chg">
-).
-</ins></p><p><ins class="diff-chg">
-The
-JSON-LD
-document
-below
-expresses
-a
-library,
-a
-book
-and
-a
-chapter:
-</ins></p><pre class="example">{
-<ins class="diff-chg">
- "@context": {
- "Book": "http://example.org/vocab#Book",
- "Chapter": "http://example.org/vocab#Chapter",
- "contains": {
- "@id": "http://example.org/vocab#contains",
- "@type": "@id"
- },
- "creator": "http://purl.org/dc/terms/creator",
- "description": "http://purl.org/dc/terms/description",
- "Library": "http://example.org/vocab#Library",
- "title": "http://purl.org/dc/terms/title"
- },
- "@id":
- [{
- "@id": "http://example.com/library",
- "@type": "Library",
- "contains": "http://example.org/library/the-republic"
- },
- {
- "@id": "http://example.org/library/the-republic",
- "@type": "Book",
- "creator": "Plato",
- "title": "The Republic",
- "contains": "http://example.org/library/the-republic#introduction"
- },
- {
- "@id": "http://example.org/library/the-republic#introduction",
- "@type": "Chapter",
- "description": "An introductory chapter on The Republic.",
- "title": "The Introduction"
- }]
-}
-</ins></pre><p><ins class="diff-chg">
-Developers
-typically
-like
-to
-operate
-on
-items
-in
-a
-hierarchical,
-tree-based
-fashion.
-Ideally,
-a
-developer
-would
-want
-the
-data
-above
-sorted
-into
-top-level
-libraries,
-then
-the
-books
-that
-are
-contained
-in
-each
-library,
-and
-then
-the
-chapters
-contained
-in
-each
-book.
-To
-achieve
-that
-layout,
-the
-developer
-can
-define
-the
-following
-</ins><a href="#dfn-frame" title="frame" class="tref internalDFN"><ins class="diff-chg">
-frame
-</ins></a>:</p><pre class="example">{
-<ins class="diff-chg">
- "@context": {
- "Book": "http://example.org/vocab#Book",
- "Chapter": "http://example.org/vocab#Chapter",
- "contains": "http://example.org/vocab#contains",
- "creator": "http://purl.org/dc/terms/creator"
- "description": "http://purl.org/dc/terms/description"
- "Library": "http://example.org/vocab#Library",
- "title": "http://purl.org/dc/terms/title"
- },
- "@type": "Library",
- "contains": {
- "@type": "Book",
- "contains": {
- "@type": "Chapter"
- }
- }
-}
-</ins></pre><p><ins class="diff-chg">
-When
-the
-framing
-algorithm
-is
-run
-against
-the
-previously
-defined
-JSON-LD
-document,
-paired
-with
-the
-</ins><a href="#dfn-frame" title="frame" class="tref internalDFN"><ins class="diff-chg">
-frame
-</ins></a><ins class="diff-chg">
-above,
-the
-following
-JSON-LD
-document
-is
-the
-end
-result:
-</ins></p><pre class="example">{
-<ins class="diff-chg">
- "@context": {
- "Book": "http://example.org/vocab#Book",
- "Chapter": "http://example.org/vocab#Chapter",
- "contains": "http://example.org/vocab#contains",
- "creator": "http://purl.org/dc/terms/creator"
- "description": "http://purl.org/dc/terms/description"
- "Library": "http://example.org/vocab#Library",
- "title": "http://purl.org/dc/terms/title"
- },
- "@id": "http://example.org/library",
- "@type": "Library",
- "contains": {
-</ins> <span class="diff">"@id": "http://example.org/library/the-republic",</span>
-<ins class="diff-chg">
- "@type": "Book",
-</ins> <span class="diff">"creator": "Plato",</span>
- <span class="diff">"title": "The Republic",</span>
-<ins class="diff-chg">
- "contains": {
-</ins> <span class="diff">"@id": "http://example.org/library/the-republic#introduction",</span>
-<ins class="diff-chg">
- "@type": "Chapter",
-</ins> <span class="diff">"description": "An introductory chapter on The Republic.",</span>
- <span class="diff">"title": "The Introduction"</span>
-<ins class="diff-chg">
- },
- },
-}
-</ins></pre></div><div class="section" id="normalization"><h3><span class="secno"><ins class="diff-chg">
-4.15
-</ins></span><ins class="diff-chg">
-Normalization
-</ins></h3><p><ins class="diff-chg">
-The
-JSON-LD
-API
-[
-</ins><cite><a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref"><ins class="diff-chg">
-JSON-LD-API
-</ins></a></cite><ins class="diff-chg">
-]
-defines
-an
-method
-for
-</ins><em><ins class="diff-chg">
-normalizing
-</ins></em><ins class="diff-chg">
-a
-JSON-LD
-document.
-Normalization
-is
-the
-process
-of
-performing
-a
-deterministic
-transformation
-on
-a
-JSON-LD
-document
-resulting
-in
-a
-normalized
-representation.
-</ins></p><p><ins class="diff-chg">
-Normalization
-is
-useful
-when
-comparing
-two
-graphs
-against
-one
-another,
-when
-generating
-a
-detailed
-list
-of
-differences
-between
-two
-graphs,
-and
-when
-generating
-a
-cryptographic
-digital
-signature
-for
-information
-contained
-in
-a
-graph
-or
-when
-generating
-a
-hash
-of
-the
-information
-contained
-in
-a
-graph.
-</ins></p><p><ins class="diff-chg">
-The
-example
-below
-is
-an
-un-normalized
-JSON-LD
-document:
-</ins></p><pre class="example">{
-<ins class="diff-chg">
- "@context": {
- "name": "http://xmlns.com/foaf/0.1/name",
- "homepage": {
- "@id": "http://xmlns.com/foaf/0.1/homepage",
- "@type": "@id"
- },
- "xsd": "http://www.w3.org/2001/XMLSchema#"
- },
- "name": "Manu Sporny",
- "homepage": "http://manu.sporny.org/"
-}
-</ins></pre><p><ins class="diff-chg">
-The
-example
-below
-is
-the
-normalized
-form
-of
-the
-JSON-LD
-document
-above:
-</ins></p><pre class="example">[{
-<ins class="diff-chg">
- "@id": "_:c14n0",
- "http://xmlns.com/foaf/0.1/homepage": {
- "@id": "http://manu.sporny.org/"
- },
- "http://xmlns.com/foaf/0.1/name": "Manu Sporny"
-}]
-</ins></pre><p><ins class="diff-chg">
-Notice
-how
-all
-of
-the
-</ins><a href="#dfn-term" title="term" class="tref internalDFN"><ins class="diff-chg">
-term
-</ins></a><ins class="diff-chg">
-s
-have
-been
-expanded
-and
-sorted
-in
-alphabetical
-order.
-Also,
-notice
-how
-the
-</ins><a href="#dfn-subject" title="subject" class="tref internalDFN"><ins class="diff-chg">
-subject
-</ins></a><ins class="diff-chg">
-has
-been
-labeled
-with
-a
-named
-</ins><a href="#dfn-unlabeled_node" title="unlabeled_node" class="tref internalDFN"><ins class="diff-chg">
-unlabeled
-node
-</ins></a>.<ins class="diff-chg">
-Normalization
-ensures
-that
-any
-arbitrary
-graph
-containing
-exactly
-the
-same
-information
-would
-be
-normalized
-to
-exactly
-the
-same
-form
-shown
-above.
-</ins></p></div></div><div id="markup-examples" class="appendix informative section">
-<h2>
-<span class="secno">
-A.
-</span>
-Markup
-Examples
-</h2>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-JSON-LD
-is
-a
-specification
-for
-representing
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-in
-JSON.
-A
-common
-way
-of
-working
-with
-Linked
-Data
-is
-through
-<dfn id="dfn-rdf" title="rdf">
-RDF
-</dfn>,
-the
-Resource
-Description
-Framework.
-RDF
-can
-be
-expressed
-using
-JSON-LD
-by
-associating
-JSON-LD
-concepts
-such
-as
-<code>
-@id
-</code>
-and
-<code>
-@type
-</code>
-with
-the
-equivalent
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-s
-in
-RDF.
-Further
-information
-about
-RDF
-may
-be
-found
-in
-[
-<cite>
-<a href="#bib-RDF-PRIMER" rel="biblioentry" class="bibref">
-RDF-PRIMER
-</a>
-</cite>
-].
-</p>
-<p>
-The
-JSON-LD
-markup
-examples
-below
-demonstrate
-how
-JSON-LD
-can
-be
-used
-to
-express
-semantic
-data
-marked
-up
-in
-other
-languages
-such
-as
-Turtle,
-RDFa,
-Microformats,
-and
-Microdata.
-These
-sections
-are
-merely
-provided
-as
-proof
-that
-JSON-LD
-is
-very
-flexible
-in
-what
-it
-can
-express
-across
-different
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-approaches.
-Details
-of
-transforming
-JSON-LD
-into
-RDF
-are
-defined
-in
-[
-<cite>
-<a href="#bib-JSON-LD-API" rel="biblioentry" class="bibref">
-JSON-LD-API
-</a>
-</cite>
-].
-</p>
-<div class="section" id="turtle">
-<h3>
-<span class="secno">
-A.1
-</span>
-Turtle
-</h3>
-<p>
-The
-following
-are
-examples
-of
-representing
-<a href="#dfn-rdf" title="rdf" class="tref internalDFN">
-RDF
-</a>
-as
-expressed
-in
-[
-<cite>
-<a href="#bib-TURTLE" rel="biblioentry" class="bibref">
-TURTLE
-</a>
-</cite>
-]
-into
-JSON-LD.
-</p>
-<div class="section" id="prefix-definitions">
-<h4>
-<span class="secno">
-A.1.1
-</span>
-Prefix
-definitions
-</h4>
-<p>
-The
-JSON-LD
-context
-has
-direct
-equivalents
-for
-the
-Turtle
-<code>
-@prefix
-</code>
-declaration:
-</p>
-<del class="diff-old">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-<http://manu.sporny.org/i/public> a foaf:Person;
- foaf:name "Manu Sporny";
-</del>
-<pre class="example">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-<ins class="diff-chg">
-<http://manu.sporny.org/i/public> a foaf:Person;
- foaf:name "Manu Sporny";
-</ins>
-foaf:homepage
-<http://manu.sporny.org/>
-.
-</pre>
-<del class="diff-old">{
- "@context": {
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "@id": "http://manu.sporny.org/i/public",
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:homepage": { "@id": "http://manu.sporny.org/" }
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "@id": "http://manu.sporny.org/i/public",
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:homepage": { "@id": "http://manu.sporny.org/" }
-</ins>
-}
-</pre>
-<div class="note">
-<p>
-JSON-LD
-has
-no
-equivalent
-for
-the
-Turtle
-<code>
-@base
-</code>
-declaration.
-Authors
-could,
-of
-course,
-use
-a
-prefix
-definition
-to
-resolve
-<a href="#dfn-relative_iri" title="relative_iri" class="tref internalDFN">
-relative
-<del class="diff-old">IRIs.
-</del>
-<abbr title="Internationalized Resource Identifier">
-<ins class="diff-chg">IRI
-</ins></abbr></a><ins class="diff-chg">
-s.
-</ins>
-For
-example,
-an
-empty
-prefix
-could
-be
-used
-to
-get
-a
-similar
-effect
-to
-<code>
-@base
-</code>:
-</p>
-<del class="diff-old">{
- "@context": {
-
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "@id": ,
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:homepage": { "@id": }
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
-</ins> <span class="diff">"": "http://manu.sporny.org/",</span>
-<ins class="diff-chg">
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "@id": <span class="diff">":i/public"</span>,
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:homepage": { "@id": <span class="diff">":" </span>}
-</ins>
-}
-</pre>
-</div>
-</div>
-<div class="section" id="embedding-1">
-<h4>
-<span class="secno">
-A.1.2
-</span>
-Embedding
-</h4>
-<p>
-Both
-Turtle
-and
-JSON-LD
-allow
-embedding
-of
-objects,
-although
-Turtle
-only
-allows
-embedding
-of
-objects
-which
-use
-unlabeled
-node
-identifiers.
-</p>
-</div>
-<del class="diff-old">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-<http://manu.sporny.org/i/public>
- a foaf:Person;
- foaf:name "Manu Sporny";
-</del>
-<pre class="example">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-<ins class="diff-chg">
-<http://manu.sporny.org/i/public>
- a foaf:Person;
- foaf:name "Manu Sporny";
-</ins>
-foaf:knows
-[
-a
-foaf:Person;
-foaf:name
-<del class="diff-old">"Gregg
-Kellogg"
-</del>
-<ins class="diff-chg">"Gregg
-Kellogg"
-</ins>
-]
-.
-</pre>
-<del class="diff-old">{
- "@context": {
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "@id": "http://manu.sporny.org/i/public",
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:knows": {
- "@type": "foaf:Person",
- "foaf:name": "Gregg Kellogg"
- }
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "@id": "http://manu.sporny.org/i/public",
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:knows":
- {
- "@type": "foaf:Person",
- "foaf:name": "Gregg Kellogg"
- }
-</ins>
-}
-</pre>
-<div class="section" id="lists-1">
-<h4>
-<span class="secno">
-A.1.3
-</span>
-Lists
-</h4>
-<p>
-Both
-JSON-LD
-and
-Turtle
-can
-represent
-sequential
-lists
-of
-values.
-</p>
-<del class="diff-old">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-<http://example.org/people#joebob> a foaf:Person;
- foaf:name "Joe Bob";
-</del>
-<pre class="example">@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-<ins class="diff-chg">
-<http://example.org/people#joebob> a foaf:Person;
- foaf:name "Joe Bob";
-</ins>
-foaf:nick
-(
-<del class="diff-old">"joe"
-"bob"
-"jaybee")
-</del>
-<ins class="diff-chg">"joe"
-"bob"
-"jaybee"
-)
-</ins>
-.
-</pre>
-<del class="diff-old">{
- "@context": {
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "@id": "http://example.org/people#joebob",
- "@type": "foaf:Person",
- "foaf:name": "Joe Bob",
- "foaf:nick": { "@list": [ "joe", "bob", "jaybe" ] }
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "@id": "http://example.org/people#joebob",
- "@type": "foaf:Person",
- "foaf:name": "Joe Bob",
- "foaf:nick":
- {
- "@list": [ "joe", "bob", "jaybe" ]
- }
-</ins>
-}
-</pre>
-</div>
-</div>
-<div class="section" id="rdfa">
-<h3>
-<span class="secno">
-A.2
-</span>
-RDFa
-</h3>
-<p>
-The
-following
-example
-describes
-three
-people
-with
-their
-respective
-names
-and
-homepages.
-</p>
-<del class="diff-old">>
- <ul>
- <li >
- <a >Bob</a>
- </li>
- <li >
- <a >Eve</a>
- </li>
- <li >
- <a >Manu</a>
- </li>
- </ul>
-</del>
-<pre class="example"><div <span class="diff">prefix="foaf: http://xmlns.com/foaf/0.1/"</span>>
-<ins class="diff-chg"> <ul>
- <li <span class="diff">typeof="foaf:Person"</span>>
- <a <span class="diff">rel="foaf:homepage" href="http://example.com/bob/" property="foaf:name" </span>>Bob</a>
- </li>
- <li <span class="diff">typeof="foaf:Person"</span>>
- <a <span class="diff">rel="foaf:homepage" href="http://example.com/eve/" property="foaf:name" </span>>Eve</a>
- </li>
- <li <span class="diff">typeof="foaf:Person"</span>>
- <a <span class="diff">rel="foaf:homepage" href="http://example.com/manu/" property="foaf:name" </span>>Manu</a>
- </li>
- </ul>
-</ins>
-</div>
-</pre>
-<p>
-An
-example
-JSON-LD
-implementation
-<ins class="diff-new">using
-a
-single
-</ins><a href="#dfn-context" title="context" class="tref internalDFN"><ins class="diff-new">
-context
-</ins></a>
-is
-described
-<del class="diff-old">below,
-however,
-there
-are
-other
-ways
-</del>
-<ins class="diff-chg">below.
-</ins></p><p class="issue"><ins class="diff-chg">
-The
-syntax
-</ins>
-to
-<del class="diff-old">mark-up
-this
-information
-such
-that
-the
-context
-</del>
-<ins class="diff-chg">serialize
-multiple
-graphs
-</ins>
-is
-<del class="diff-old">not
-repeated.
-</del>
-<ins class="diff-chg">currently
-being
-discussed
-in
-</ins><a href="https://github.com/json-ld/json-ld.org/issues/68"><ins class="diff-chg">
-Issue
-68
-</ins></a>.
-</p>
-<del class="diff-old">{
- "@context": { "foaf": "http://xmlns.com/foaf/0.1/" },
- "@id": [
- {
- "@id": "_:bnode1",
- "@type": "foaf:Person",
- "foaf:homepage": "http://example.com/bob/",
- "foaf:name": "Bob"
- },
- {
- "@id": "_:bnode2",
- "@type": "foaf:Person",
- "foaf:homepage": "http://example.com/eve/",
- "foaf:name": "Eve"
- },
- {
- "@id": "_:bnode3",
- "@type": "foaf:Person",
- "foaf:homepage": "http://example.com/manu/",
- "foaf:name": "Manu"
- }
- ]
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/"
- },
- "@id":
- [
- {
- "@type": "foaf:Person",
- "foaf:homepage": "http://example.com/bob/",
- "foaf:name": "Bob"
- },
- {
- "@type": "foaf:Person",
- "foaf:homepage": "http://example.com/eve/",
- "foaf:name": "Eve"
- },
- {
- "@type": "foaf:Person",
- "foaf:homepage": "http://example.com/manu/",
- "foaf:name": "Manu"
- }
- ]
-</ins>
-}
-</pre>
-</div>
-<div class="section" id="microformats">
-<h3>
-<span class="secno">
-A.3
-</span>
-Microformats
-</h3>
-<p>
-The
-following
-example
-uses
-a
-simple
-Microformats
-hCard
-example
-to
-express
-how
-the
-Microformat
-is
-represented
-in
-JSON-LD.
-</p>
-<del class="diff-old"><div class="vcard">
- <a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
-</del>
-<pre class="example"><div class="vcard">
-<ins class="diff-chg"> <a class="url fn" href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>
-</ins>
-</div>
-</pre>
-<p>
-The
-representation
-of
-the
-hCard
-expresses
-the
-Microformat
-terms
-in
-the
-<a href="#dfn-context" title="context" class="tref internalDFN">
-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">{
- "@context":
- {
- "vcard": "http://microformats.org/profile/hcard#vcard",
- "url": {"@id": "http://microformats.org/profile/hcard#url", "@type": "@id"},
- "fn": "http://microformats.org/profile/hcard#fn"
- },
- "@id": "_:bnode1",
- "@type": "vcard",
- "url": "http://tantek.com/",
- "fn": "Tantek Çelik"
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "vcard": "http://microformats.org/profile/hcard#vcard",
- "url":
- {
- "@id": "http://microformats.org/profile/hcard#url",
- "@type": "@id"
- },
- "fn": "http://microformats.org/profile/hcard#fn"
- },
- "@type": "vcard",
- "url": "http://www.markus-lanthaler.com/",
- "fn": "Markus Lanthaler"
-</ins>
-}
-</pre>
-</div>
-<div class="section" id="microdata">
-<h3>
-<span class="secno">
-A.4
-</span>
-Microdata
-</h3>
-<p>
-The
-microdata
-example
-below
-expresses
-book
-information
-as
-a
-microdata
-Work
-item.
-</p>
-<del class="diff-old"><dl itemscope
- itemtype="http://purl.org/vocab/frbr/core#Work"
- itemid="http://purl.oreilly.com/works/45U8QJGZSQKDH8N">
- <dt>Title</dt>
- <dd><cite itemprop="http://purl.org/dc/terms/title">Just a Geek</cite></dd>
- <dt>By</dt>
- <dd><span itemprop="http://purl.org/dc/terms/creator">Wil Wheaton</span></dd>
- <dt>Format</dt>
- <dd itemprop="http://purl.org/vocab/frbr/core#realization"
- itemscope
- itemtype="http://purl.org/vocab/frbr/core#Expression"
- itemid="http://purl.oreilly.com/products/9780596007683.BOOK">
- <link itemprop="http://purl.org/dc/terms/type" href="http://purl.oreilly.com/product-types/BOOK">
- Print
- </dd>
- <dd itemprop="http://purl.org/vocab/frbr/core#realization"
- itemscope
- itemtype="http://purl.org/vocab/frbr/core#Expression"
- itemid="http://purl.oreilly.com/products/9780596802189.EBOOK">
- <link itemprop="http://purl.org/dc/terms/type" href="http://purl.oreilly.com/product-types/EBOOK">
- Ebook
- </dd>
-</del>
-<pre class="example"><dl itemscope
-<ins class="diff-chg"> itemtype="http://purl.org/vocab/frbr/core#Work"
- itemid="http://purl.oreilly.com/works/45U8QJGZSQKDH8N">
- <dt>Title</dt>
- <dd><cite itemprop="http://purl.org/dc/terms/title">Just a Geek</cite></dd>
- <dt>By</dt>
- <dd><span itemprop="http://purl.org/dc/terms/creator">Wil Wheaton</span></dd>
- <dt>Format</dt>
- <dd itemprop="http://purl.org/vocab/frbr/core#realization"
- itemscope
- itemtype="http://purl.org/vocab/frbr/core#Expression"
- itemid="http://purl.oreilly.com/products/9780596007683.BOOK">
- <link itemprop="http://purl.org/dc/terms/type" href="http://purl.oreilly.com/product-types/BOOK">
- Print
- </dd>
- <dd itemprop="http://purl.org/vocab/frbr/core#realization"
- itemscope
- itemtype="http://purl.org/vocab/frbr/core#Expression"
- itemid="http://purl.oreilly.com/products/9780596802189.EBOOK">
- <link itemprop="http://purl.org/dc/terms/type" href="http://purl.oreilly.com/product-types/EBOOK">
- Ebook
- </dd>
-</ins>
-</dl>
-</pre>
-<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 href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-</p>
-<del class="diff-old">[
- {
- "@id": "http://purl.oreilly.com/works/45U8QJGZSQKDH8N",
- "@type": "http://purl.org/vocab/frbr/core#Work",
- "http://purl.org/dc/terms/title": "Just a Geek",
- "http://purl.org/dc/terms/creator": "Whil Wheaton",
- "http://purl.org/vocab/frbr/core#realization":
- [ "http://purl.oreilly.com/products/9780596007683.BOOK", "http://purl.oreilly.com/products/9780596802189.EBOOK" ]
- },
- {
- "@id": "http://purl.oreilly.com/products/9780596007683.BOOK",
- "@type": "http://purl.org/vocab/frbr/core#Expression",
- "http://purl.org/dc/terms/type": "http://purl.oreilly.com/product-types/BOOK"
- },
- {
- "@id": "http://purl.oreilly.com/products/9780596802189.EBOOK",
- "@type": "http://purl.org/vocab/frbr/core#Expression",
- "http://purl.org/dc/terms/type": "http://purl.oreilly.com/product-types/EBOOK"
- }
-</del>
-<pre class="example">[
-<ins class="diff-chg"> {
- "@id": "http://purl.oreilly.com/works/45U8QJGZSQKDH8N",
- "@type": "http://purl.org/vocab/frbr/core#Work",
- "http://purl.org/dc/terms/title": "Just a Geek",
- "http://purl.org/dc/terms/creator": "Whil Wheaton",
- "http://purl.org/vocab/frbr/core#realization":
- [
- "http://purl.oreilly.com/products/9780596007683.BOOK",
- "http://purl.oreilly.com/products/9780596802189.EBOOK"
- ]
- },
- {
- "@id": "http://purl.oreilly.com/products/9780596007683.BOOK",
- "@type": "http://purl.org/vocab/frbr/core#Expression",
- "http://purl.org/dc/terms/type": "http://purl.oreilly.com/product-types/BOOK"
- },
- {
- "@id": "http://purl.oreilly.com/products/9780596802189.EBOOK",
- "@type": "http://purl.org/vocab/frbr/core#Expression",
- "http://purl.org/dc/terms/type": "http://purl.oreilly.com/product-types/EBOOK"
- }
-</ins>
-]
-</pre>
-</div>
-</div>
-<div id="linked-data" class="appendix section">
-<h2>
-<span class="secno">
-B.
-</span>
-Linked
-Data
-</h2>
-<p>
-The
-following
-definition
-for
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-is
-the
-one
-that
-will
-be
-used
-for
-this
-specification.
-</p>
-<ol>
-<li>
-<dfn id="dfn-linked_data" title="linked_data">
-Linked
-Data
-</dfn>
-is
-a
-set
-of
-documents,
-each
-containing
-a
-representation
-of
-a
-linked
-data
-graph.
-</li>
-<li>
-A
-<dfn id="dfn-linked_data_graph" title="linked_data_graph">
-linked
-data
-graph
-</dfn>
-is
-an
-unordered
-labeled
-directed
-graph,
-where
-nodes
-are
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>
-s
-or
-<a href="#dfn-object" title="object" class="tref internalDFN">
-object
-</a>
-s,
-and
-edges
-are
-properties.
-</li>
-<li>
-A
-<dfn id="dfn-subject" title="subject">
-subject
-</dfn>
-is
-any
-node
-in
-a
-<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
-linked
-data
-graph
-</a>
-with
-at
-least
-one
-outgoing
-edge.
-</li>
-<li>
-A
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>
-<em title="should" class="rfc2119">
-should
-</em>
-be
-labeled
-with
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-(an
-Internationalized
-Resource
-Identifier
-as
-described
-in
-[
-<cite>
-<a href="#bib-RFC3987" rel="biblioentry" class="bibref">
-RFC3987
-</a>
-</cite>
-]).
-</li>
-<li>
-An
-<dfn id="dfn-object" title="object">
-object
-</dfn>
-is
-a
-node
-in
-a
-<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
-linked
-data
-graph
-</a>
-with
-at
-least
-one
-incoming
-edge.
-</li>
-<li>
-An
-<a href="#dfn-object" title="object" class="tref internalDFN">
-object
-</a>
-<em title="may" class="rfc2119">
-may
-</em>
-be
-labeled
-with
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-</li>
-<li>
-<del class="diff-old">An
-object
-</del>
-<ins class="diff-chg">A
-node
-</ins><em title="may" class="rfc2119">
-may
-</em>
-be
-a
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>
-and
-<a href="#dfn-object" title="object" class="tref internalDFN">
-object
-</a>
-at
-the
-same
-time.
-</li>
-<li>
-A
-<dfn id="dfn-property" title="property">
-property
-</dfn>
-is
-an
-edge
-of
-the
-<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
-linked
-data
-graph
-</a>.
-</li>
-<li>
-A
-<a href="#dfn-property" title="property" class="tref internalDFN">
-property
-</a>
-<em title="should" class="rfc2119">
-should
-</em>
-be
-labeled
-with
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>.
-</li>
-<li>
-An
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-that
-is
-a
-label
-in
-a
-<a href="#dfn-linked_data_graph" title="linked_data_graph" class="tref internalDFN">
-linked
-data
-graph
-</a>
-<em title="should" class="rfc2119">
-should
-</em>
-be
-dereferencable
-to
-a
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-document
-describing
-the
-labeled
-<a href="#dfn-subject" title="subject" class="tref internalDFN">
-subject
-</a>,
-<a href="#dfn-object" title="object" class="tref internalDFN">
-object
-</a>
-or
-<a href="#dfn-property" title="property" class="tref internalDFN">
-property
-</a>.
-</li>
-<li>
-A
-<dfn id="dfn-value" title="value">
-value
-</dfn>
-is
-an
-<a href="#dfn-object" title="object" class="tref internalDFN">
-object
-</a>
-with
-a
-label
-that
-is
-not
-an
-<a href="#dfn-iri" title="iri" class="tref internalDFN">
-<abbr title="Internationalized Resource Identifier">
-IRI
-</abbr>
-</a>
-</li>
-</ol>
-<p>
-Note
-that
-the
-definition
-for
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>
-above
-is
-silent
-on
-the
-topic
-of
-unlabeled
-nodes.
-Unlabeled
-nodes
-are
-not
-considered
-<a href="#dfn-linked_data" title="linked_data" class="tref internalDFN">
-Linked
-Data
-</a>.
-However,
-this
-specification
-allows
-for
-the
-expression
-of
-unlabled
-nodes,
-as
-most
-graph-based
-data
-sets
-on
-the
-Web
-contain
-a
-number
-of
-associated
-nodes
-that
-are
-not
-named
-and
-thus
-are
-not
-directly
-de-referenceable.
-</p>
-</div>
-<div id="mashing-up-vocabularies" class="appendix informative section">
-<h2>
-<span class="secno">
-C.
-</span>
-Mashing
-Up
-Vocabularies
-</h2>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-Developers
-benefit
-by
-being
-able
-to
-mash
-other
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabularies
-</a>
-into
-their
-JSON-LD
-markup.
-There
-are
-over
-200
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabularies
-</a>
-that
-are
-available
-for
-use
-on
-the
-Web
-today.
-Some
-of
-these
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabularies
-</a>
-include:
-</p>
-<ul>
-<li>
-RDF
--
-for
-describing
-information
-about
-objects
-and
-concepts
-on
-the
-Web.
-</li>
-<li>
-RDFS
--
-for
-expressing
-things
-like
-labels
-and
-comments.
-</li>
-<li>
-XSD
--
-for
-specifying
-basic
-types
-like
-strings,
-integers,
-dates
-and
-times.
-</li>
-<li>
-Dublin
-Core
--
-for
-describing
-creative
-works.
-</li>
-<li>
-FOAF
--
-for
-describing
-social
-networks.
-</li>
-<li>
-Calendar
--
-for
-specifying
-events.
-</li>
-<li>
-SIOC
--
-for
-describing
-discussions
-on
-blogs
-and
-websites.
-</li>
-<li>
-CCrel
--
-for
-describing
-Creative
-Commons
-and
-other
-types
-of
-licenses.
-</li>
-<li>
-GEO
--
-for
-describing
-geographic
-location.
-</li>
-<li>
-VCard
--
-for
-describing
-organizations
-and
-people.
-</li>
-<li>
-DOAP
--
-for
-describing
-projects.
-</li>
-</ul>
-<p>
-You
-can
-use
-these
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabularies
-</a>
-in
-combination,
-like
-so:
-</p>
-<del class="diff-old">{
- "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/",
- "sioc": "http://rdfs.org/sioc/ns#",
- "rdfs": "http://www.w3.org/2000/01/rdf-schema#"
- },
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:homepage": "http://manu.sporny.org/",
- "sioc:avatar": "http://twitter.com/account/profile_image/manusporny",
- "rdfs:comment": "Likes puppies, unicorns and rainbows."
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/",<span class="diff">
- "sioc": "http://rdfs.org/sioc/ns#",
- "rdfs": "http://www.w3.org/2000/01/rdf-schema#"</span>
- },
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:homepage": "http://manu.sporny.org/",<span class="diff">
- "sioc:avatar": "http://twitter.com/account/profile_image/manusporny",
- "rdfs:comment": "Likes puppies, unicorns and rainbows."</span>
-</ins>
-}
-</pre>
-<p>
-Developers
-can
-also
-specify
-their
-own
-<a href="#dfn-vocabulary" title="vocabulary" class="tref internalDFN">
-vocabulary
-</a>
-documents
-by
-modifying
-the
-<a href="#dfn-active_context" title="active_context" class="tref internalDFN">
-active
-context
-</a>
-in-line
-using
-the
-<code>
-@context
-</code>
-keyword,
-like
-so:
-</p>
-<del class="diff-old">{
- "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/",
- "sioc": "http://rdfs.org/sioc/ns#",
- "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
-
- },
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:homepage": "http://manu.sporny.org/",
- "sioc:avatar": "http://twitter.com/account/profile_image/manusporny",
- "rdfs:comment": "Likes puppies, unicorns and rainbows."
-
-</del>
-<pre class="example">{
-<ins class="diff-chg"> "@context":
- {
- "foaf": "http://xmlns.com/foaf/0.1/",
- "sioc": "http://rdfs.org/sioc/ns#",
- "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
-</ins> <span class="diff">"myvocab": "http://example.org/myvocab#"</span>
-<ins class="diff-chg">
- },
- "@type": "foaf:Person",
- "foaf:name": "Manu Sporny",
- "foaf:homepage": "http://manu.sporny.org/",
- "sioc:avatar": "http://twitter.com/account/profile_image/manusporny",
- "rdfs:comment": "Likes puppies, unicorns and rainbows."
-</ins> <span class="diff">"myvocab:personality": "friendly"</span>
-}
-</pre>
-</div>
-<div id="iana-considerations" class="appendix informative section">
-<h2>
-<span class="secno">
-D.
-</span>
-IANA
-Considerations
-</h2>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-This
-section
-is
-included
-merely
-for
-standards
-community
-review
-and
-will
-be
-submitted
-to
-the
-Internet
-Engineering
-Steering
-Group
-if
-this
-specification
-becomes
-a
-W3C
-Recommendation.
-</p>
-<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>
-form
-</code>
-</dt>
-<dd>
-Determines
-the
-serialization
-form
-for
-the
-JSON-LD
-document.
-Valid
-values
-<del class="diff-old">include;
-compacted
-,
-</del>
-<ins class="diff-chg">are
-</ins>
-<code>
-expanded
-<del class="diff-old">,
-</del>
-</code>
-and
-<code>
-normalized
-</code>.
-If
-no
-form
-is
-specified
-in
-an
-HTTP
-request
-header
-to
-an
-HTTP
-server,
-the
-server
-<em title="may" class="rfc2119">
-may
-</em>
-choose
-any
-form.
-If
-no
-form
-is
-specified
-for
-an
-HTTP
-client,
-the
-form
-<em title="must not" class="rfc2119">
-must
-not
-</em>
-be
-assumed
-to
-take
-any
-particular
-form.
-</dd>
-</dl>
-</dd>
-<dt>
-Encoding
-considerations:
-</dt>
-<dd>
-The
-same
-as
-the
-<code>
-application/json
-</code>
-MIME
-media
-type.
-</dd>
-<dt>
-Security
-considerations:
-</dt>
-<dd>
-Since
-JSON-LD
-is
-intended
-to
-be
-a
-pure
-data
-exchange
-format
-for
-directed
-graphs,
-the
-serialization
-<em title="should not" class="rfc2119">
-should
-not
-</em>
-be
-passed
-through
-a
-code
-execution
-mechanism
-such
-as
-JavaScript's
-<code>
-eval()
-</code>
-function.
-It
-is
-<em title="recommended" class="rfc2119">
-recommended
-</em>
-that
-a
-conforming
-parser
-does
-not
-attempt
-to
-directly
-evaluate
-the
-JSON-LD
-serialization
-and
-instead
-purely
-parse
-the
-input
-into
-a
-language-native
-data
-structure.
-</dd>
-<dt>
-Interoperability
-considerations:
-</dt>
-<dd>
-Not
-Applicable
-</dd>
-<dt>
-Published
-specification:
-</dt>
-<dd>
-The
-<a href="http://json-ld.org/spec/latest/">
-JSON-LD
-</a>
-specification.
-</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
-&
-email
-address
-to
-contact
-for
-further
-information:
-</dt>
-<dd>
-Manu
-Sporny
-<msporny@digitalbazaar.com>
-</dd>
-<dt>
-Intended
-usage:
-</dt>
-<dd>
-Common
-</dd>
-<dt>
-Restrictions
-on
-usage:
-</dt>
-<dd>
-None
-</dd>
-<dt>
-Author(s):
-</dt>
-<dd>
-Manu
-Sporny,
-Gregg
-Kellogg,
-<ins class="diff-new">Markus
-Lanthaler,
-</ins>
-Dave
-Longley
-</dd>
-<dt>
-Change
-controller:
-</dt>
-<dd>
-W3C
-</dd>
-</dl>
-</div>
-<div id="acknowledgements" class="appendix informative section">
-<h2>
-<span class="secno">
-E.
-</span>
-Acknowledgements
-</h2>
-<p>
-<em>
-This
-section
-is
-non-normative.
-</em>
-</p>
-<p>
-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,
-Dave
-Longley,
-Dave
-Lehn
-and
-Mike
-Johnson
-who
-reviewed,
-provided
-feedback,
-and
-performed
-several
-implementations
-of
-the
-specification,
-and
-Ian
-Davis,
-who
-created
-RDF/JSON.
-Thanks
-also
-to
-Nathan
-Rixham,
-Bradley
-P.
-Allen,
-Kingsley
-Idehen,
-Glenn
-McDonald,
-Alexandre
-Passant,
-Danny
-Ayers,
-Ted
-Thibodeau
-Jr.,
-Olivier
-Grisel,
-Niklas
-Lindström,
-Markus
-Lanthaler,
-and
-Richard
-Cyganiak
-for
-their
-input
-on
-the
-specification.
-</p>
-</div>
-<div class="appendix section" id="references">
-<h2>
-<span class="secno">
-F.
-</span>
-References
-</h2>
-<div class="section" id="normative-references">
-<h3>
-<span class="secno">
-F.1
-</span>
-Normative
-references
-</h3>
-<dl class="bibliography">
-<dt id="bib-BCP47">
-[BCP47]
-</dt>
-<dd>
-A.
-Phillips,
-M.
-Davis.
-<a href="http://tools.ietf.org/rfc/bcp/bcp47.txt">
-<cite>
-Tags
-for
-Identifying
-Languages
-</cite>
-</a>
-September
-2009.
-IETF
-Best
-Current
-Practice.
-URL:
-<a href="http://tools.ietf.org/rfc/bcp/bcp47.txt">
-http://tools.ietf.org/rfc/bcp/bcp47.txt
-</a>
-</dd>
-<dt id="bib-RFC3987">
-[RFC3987]
-</dt>
-<dd>
-M.
-Dürst;
-M.
-Suignard.
-<a href="http://www.ietf.org/rfc/rfc3987.txt">
-<cite>
-Internationalized
-Resource
-Identifiers
-(IRIs).
-</cite>
-</a>
-January
-2005.
-Internet
-RFC
-3987.
-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>
-D.
-Crockford.
-<a href="http://www.ietf.org/rfc/rfc4627.txt">
-<cite>
-The
-application/json
-Media
-Type
-for
-JavaScript
-Object
-Notation
-(JSON)
-</cite>
-</a>
-July
-2006.
-Internet
-RFC
-4627.
-URL:
-<a href="http://www.ietf.org/rfc/rfc4627.txt">
-http://www.ietf.org/rfc/rfc4627.txt
-</a>
-</dd>
-<dt id="bib-RFC5988">
-<ins class="diff-new">[RFC5988]
-</ins></dt><dd><ins class="diff-new">
-M.
-Nottingham.
-</ins><a href="http://tools.ietf.org/rfc/rfc5988"><cite><ins class="diff-new">
-Web
-Linking
-</ins></cite></a><ins class="diff-new">
-October
-2010.
-IETF
-Standard.
-URL:
-</ins><a href="http://tools.ietf.org/rfc/rfc5988.txt"><ins class="diff-new">
-http://tools.ietf.org/rfc/rfc5988.txt
-</ins></a></dd>
-<dt id="bib-WEBIDL">
-[WEBIDL]
-</dt>
-<dd>
-Cameron
-McCormack.
-<a href="http://www.w3.org/TR/2011/WD-WebIDL-20110927/">
-<cite>
-Web
-IDL.
-</cite>
-</a>
-27
-September
-2011.
-W3C
-Working
-Draft.
-(Work
-in
-progress.)
-URL:
-<a href="http://www.w3.org/TR/2011/WD-WebIDL-20110927/">
-http://www.w3.org/TR/2011/WD-WebIDL-20110927/
-</a>
-</dd>
-</dl>
-</div>
-<div class="section" id="informative-references">
-<h3>
-<span class="secno">
-F.2
-</span>
-Informative
-references
-</h3>
-<dl class="bibliography">
-<dt id="bib-ECMA-262">
-[ECMA-262]
-</dt>
-<dd>
-<a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">
-<cite>
-ECMAScript
-Language
-Specification.
-</cite>
-</a>
-December
-1999.
-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-HTML-RDFA">
-[HTML-RDFA]
-</dt>
-<dd>
-Manu
-Sporny;
-et
-al.
-<a href="http://www.w3.org/TR/rdfa-in-html/">
-<cite>
-HTML+RDFa
-</cite>
-</a>
-04
-March
-2010.
-W3C
-Working
-Draft.
-URL:
-<a href="http://www.w3.org/TR/rdfa-in-html/">
-http://www.w3.org/TR/rdfa-in-html/
-</a>
-</dd>
-<dt id="bib-JSON-LD-API">
-[JSON-LD-API]
-</dt>
-<dd>
-Manu
-Sporny,
-Gregg
-Kellogg,
-Dave
-Longley,
-Eds.
-<cite>
-<a href="http://json-ld.org/spec/latest/json-ld-api/">
-JSON-LD
-API
-</a>
-</cite>
-Latest.
-W3C
-Editor's
-Draft.
-URL:
-<a href="http://json-ld.org/spec/latest/json-ld-api/">
-http://json-ld.org/spec/latest/json-ld-api/
-</a>
-</dd>
-<dt id="bib-RDF-PRIMER">
-[RDF-PRIMER]
-</dt>
-<dd>
-Frank
-Manola;
-Eric
-Miller.
-<a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">
-<cite>
-RDF
-Primer.
-</cite>
-</a>
-10
-February
-2004.
-W3C
-Recommendation.
-URL:
-<a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">
-http://www.w3.org/TR/2004/REC-rdf-primer-20040210/
-</a>
-</dd>
-<dt id="bib-RDFA-CORE">
-[RDFA-CORE]
-</dt>
-<dd>
-Shane
-McCarron;
-et
-al.
-<a href="http://www.w3.org/TR/2011/WD-rdfa-core-20111215">
-<cite>
-RDFa
-Core
-1.1:
-Syntax
-and
-processing
-rules
-for
-embedding
-RDF
-through
-attributes.
-</cite>
-</a>
-15
-December
-2011.
-W3C
-Working
-Draft.
-URL:
-<a href="http://www.w3.org/TR/2011/WD-rdfa-core-20111215">
-http://www.w3.org/TR/2011/WD-rdfa-core-20111215
-</a>
-</dd>
-<dt id="bib-TURTLE">
-[TURTLE]
-</dt>
-<dd>
-David
-Beckett,
-Tim
-Berners-Lee.
-<a href="http://www.w3.org/TeamSubmission/turtle/">
-<cite>
-Turtle:
-Terse
-RDF
-Triple
-Language.
-</cite>
-</a>
-January
-2008.
-W3C
-Team
-Submission.
-URL:
-<a href="http://www.w3.org/TeamSubmission/turtle/">
-http://www.w3.org/TeamSubmission/turtle/
-</a>
-</dd>
-<dt id="bib-XML-NAMES">
-[XML-NAMES]
-</dt>
-<dd>
-Richard
-Tobin;
-et
-al.
-<a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/">
-<cite>
-Namespaces
-in
-XML
-1.0
-(Third
-Edition).
-</cite>
-</a>
-8
-December
-2009.
-W3C
-Recommendation.
-URL:
-<a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/">
-http://www.w3.org/TR/2009/REC-xml-names-20091208/
-</a>
-</dd>
-</dl>
-</div>
-</div>
-</body>
-</html>
--- a/spec/ED/json-ld-syntax/20120318/index.html Sun Mar 18 20:40:45 2012 +0800
+++ b/spec/ED/json-ld-syntax/20120318/index.html Sun Mar 18 20:47:04 2012 +0800
@@ -501,7 +501,7 @@
<dd><a href="http://greggkellogg.net/">Gregg Kellogg</a>, <a href="http://kellogg-assoc.com/">Kellogg Associates</a></dd>
<dd><a href="http://www.markus-lanthaler.com/">Markus Lanthaler</a>, <a href="http://www.tugraz.at/">Graz University of Technology</a></dd>
<dd><a href="http://webbackplane.com/">Mark Birbeck</a>, <a href="http://webbackplane.com/">Backplane Ltd.</a></dd>
-</dl><p>This document is also available in this non-normative format: <a href="diff-20120112.html">diff to previous version</a>.</p><p class="copyright">This document is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/3.0/" class="subfoot">Creative Commons Attribution 3.0 License</a>.</p><hr /></div>
+</dl><p>This document is also available in this non-normative format: <a href="diff-20120122.html">diff to previous version</a>.</p><p class="copyright">This document is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/3.0/" class="subfoot">Creative Commons Attribution 3.0 License</a>.</p><hr /></div>
<div id="abstract" class="introductory section"><h2>Abstract</h2>
<p>
JSON [<cite><a class="bibref" rel="biblioentry" href="#bib-RFC4627">RFC4627</a></cite>] has proven to be a highly useful object serialization and