@@ -898,7 +898,7 @@ <h2>The Context</h2>
898
898
information located outside of the <code>@context</code> key, such as
899
899
documentation about the <a>terms</a> declared in the
900
900
document. Information contained outside of the <code>@context</code> value
901
- is ignored when the document is used as an external JSON-LD context document.</ p >
901
+ is ignored when the document is used as an external <dfn data-lt="context document"> JSON-LD context document</dfn> .</p>
902
902
903
903
<p>JSON documents can be interpreted as JSON-LD without having to be modified by
904
904
referencing a <a>context</a> via an <a data-cite="RFC8288#section-3">HTTP Link Header</a>
@@ -9989,6 +9989,16 @@ <h3>Graph Containers</h3>
9989
9989
<code>profile</code> parameter which can be used to signal or request
9990
9990
<dfn>framed document form</dfn>. The profile URI identifying
9991
9991
<a>framed document form</a> is <code>http://www.w3.org/ns/json-ld#framed</code>.</p>
9992
+
9993
+ <p><a href="#application-ld-json">JSON-LD's media type</a> also defines a
9994
+ <code>profile</code> parameter which can be used to identify a
9995
+ <a data-cite="HTML/semantics-scripting.html#the-script-element">script element</a> in an HTML document containing a frame.
9996
+ The first <a data-cite="HTML/semantics-scripting.html#the-script-element">script element</a>
9997
+ of type <code>application/ld+json;profile=http://www.w3.org/ns/json-ld#frame</code>
9998
+ will be used to find a <a>frame</a>.
9999
+ This is similar to the mechanism described for retrieving contexts
10000
+ from HTML documents as described in
10001
+ <a href="#using-an-html-document-as-a-context" class="sectionRef"></a>.</p>
9992
10002
</section>
9993
10003
</section>
9994
10004
@@ -10072,7 +10082,7 @@ <h3>Graph Containers</h3>
10072
10082
10073
10083
<p>
10074
10084
JSON-LD content can be easily embedded in HTML [[HTML]] by placing
10075
- it in a < a data-cite ="HTML/semantics-scripting.html#the-script-element "> Script element</ a > with the < code > type</ code > attribute set to
10085
+ it in a <a data-cite="HTML/semantics-scripting.html#the-script-element">script element</a> with the <code>type</code> attribute set to
10076
10086
<code>application/ld+json</code>. Doing so creates a
10077
10087
<a data-cite="HTML/semantics-scripting.html#data-block">data block</a>.</p>
10078
10088
@@ -10443,6 +10453,147 @@ <h3>Graph Containers</h3>
10443
10453
</pre>
10444
10454
</aside>
10445
10455
</section>
10456
+
10457
+ <section><h3>Using an HTML document as a Context</h3>
10458
+ <p>A JSON-LD document, whether embedded in HTML or otherwise,
10459
+ may reference a <a>context document</a> by using a string value to <code>@context</code>.
10460
+ This string is interpreted as a URL to an external document from which
10461
+ the context is loaded. In JSON-LD 1.1, this external document may also
10462
+ be HTML containing a <a data-cite="HTML/semantics-scripting.html#the-script-element">script element</a>
10463
+ with the <code>type</code> attribute set to
10464
+ <code>application/ld+json;profile=http://www.w3.org/ns/json-ld#context</code>.</p>
10465
+
10466
+ <p>A processor processing a remote context which results in an HTML document
10467
+ MUST locate the first <a data-cite="HTML/semantics-scripting.html#the-script-element">script element</a>
10468
+ with the <code>type</code> attribute set to
10469
+ <code>application/ld+json;profile=http://www.w3.org/ns/json-ld#context</code>,
10470
+ or a specific script element targeted using a fragment identifier,
10471
+ or the first script element of type <code>application/ld+json</code>
10472
+ if no other is found.</p>
10473
+
10474
+ <p>Including a context definition within an HTML document provides a means
10475
+ of documenting the context content, along with other information
10476
+ such as the vocabulary definition.</p>
10477
+
10478
+ <p>For example, a context may be defined within an HTML file as follows
10479
+ (a subset of the <em>Person</em> context published at <code><a href="https://json-ld.org/contexts/person.html">https://json-ld.org/contexts/person.html</a></code>):</p>
10480
+
10481
+ <pre class="example context"
10482
+ title="Context defined in an HTML document"
10483
+ data-content-type="text/html"
10484
+ data-transform="updateExample">
10485
+ <!--
10486
+ <!DOCTYPE html>
10487
+ <html lang="en">
10488
+ <head>
10489
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
10490
+ <title>Context definition of a person</title>
10491
+ <script ****type="application/ld+json;profile=http://www.w3.org/ns/json-ld#context"****>
10492
+ {
10493
+ "@context":
10494
+ {
10495
+ "foaf": "http://xmlns.com/foaf/0.1/",
10496
+ "schema": "http://schema.org/",
10497
+ "vcard": "http://www.w3.org/2006/vcard/ns#",
10498
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
10499
+ "Address": "vcard:Address"####,
10500
+ ...####
10501
+ }
10502
+ }
10503
+ </script>
10504
+ </head>
10505
+ <body>
10506
+ <h1>The Person context</h1>
10507
+ <p>The Person context is based on a combination of <a href="http://xmlns.com/foaf/0.1/">FOAF</a>,
10508
+ <a href="http://schema.org/">schema.org </a>,
10509
+ and <a href="http://www.w3.org/2006/vcard/ns#">vcard</a> vocabularies. It defines the following terms:</p>
10510
+
10511
+ <dl>
10512
+ <dt>foaf</dt><dd><code>http://xmlns.com/foaf/0.1/</code></dd>
10513
+ <dt>schema</dt><dd><code>http://schema.org/</code></dd>
10514
+ <dt>vcard</dt><dd><code>http://www.w3.org/2006/vcard/ns#</code></dd>
10515
+ <dt>xsd</dt><dd><code>http://www.w3.org/2001/XMLSchema#</code></dd>
10516
+ <dt>Address</dt><dd><code>vcard:Address</code></dd>
10517
+ ####...####
10518
+ </dl>
10519
+ </body>
10520
+ </html>
10521
+ -->
10522
+ </pre>
10523
+
10524
+ <p>Using a previous example, we can reference <code>https://json-ld.org/contexts/person.html</code>
10525
+ instead of <code>https://json-ld.org/contexts/person.jsonld</code>
10526
+ and a JSON-LD processor will look for the context within the referenced HTML file.</p>
10527
+
10528
+ <aside class="example ds-selector-tabs"
10529
+ title="Referencing a Context in an HTML document">
10530
+ <div class="selectors">
10531
+ <button class="selected" data-selects="original">Original</button>
10532
+ <button data-selects="expanded">Expanded</button>
10533
+ <button data-selects="statements">Statements</button>
10534
+ <button data-selects="turtle">Turtle</button>
10535
+ <a class="playground" target="_blank"></a>
10536
+ </div>
10537
+ <pre class="original selected nohighlight" data-transform="updateExample">
10538
+ <!--
10539
+ {
10540
+ "@context": ****"https://json-ld.org/contexts/person.html"****,
10541
+ "@id": "http://dbpedia.org/resource/John_Lennon",
10542
+ "name": "John Lennon",
10543
+ "born": "1940-10-09",
10544
+ "spouse": "http://dbpedia.org/resource/Cynthia_Lennon"
10545
+ }
10546
+ -->
10547
+ </pre>
10548
+ <pre class="expanded"
10549
+ data-transform="updateExample"
10550
+ data-result-for="Referencing a Context in an HTML document-original">
10551
+ <!--
10552
+ [{
10553
+ "@id": "http://dbpedia.org/resource/John_Lennon",
10554
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "John Lennon"}],
10555
+ "http://schema.org/birthDate": [
10556
+ {"@value": "1940-10-09", "@type": "http://www.w3.org/2001/XMLSchema#date"}
10557
+ ],
10558
+ "http://schema.org/spouse": [
10559
+ {"@id": "http://dbpedia.org/resource/Cynthia_Lennon"}
10560
+ ]
10561
+ }]
10562
+ -->
10563
+ </pre>
10564
+ <table class="statements"
10565
+ data-result-for="Referencing a Context in an HTML document-expanded"
10566
+ data-to-rdf>
10567
+ <thead><tr><th>Subject</th><th>Property</th><th>Value</th><th>Value Type</th></tr></thead>
10568
+ <tbody>
10569
+ <tr><td>http://dbpedia.org/resource/John_Lennon</td><td>foaf:name</td><td>John Lennon</td><td> </td></tr>
10570
+ <tr><td>http://dbpedia.org/resource/John_Lennon</td><td>schema:birthDate</td><td>1940-10-09</td><td>xsd:date</td></tr>
10571
+ <tr><td>http://dbpedia.org/resource/John_Lennon</td><td>schema:spouse</td><td>http://dbpedia.org/resource/Cynthia_Lennon</td><td> </td></tr>
10572
+ </tbody>
10573
+ </table>
10574
+ <pre class="turtle"
10575
+ data-content-type="text/turtle"
10576
+ data-transform="updateExample"
10577
+ data-result-for="Referencing a Context in an HTML document-expanded"
10578
+ data-to-rdf>
10579
+ <!--
10580
+ @prefix foaf: <http://xmlns.com/foaf/0.1/> .
10581
+ @prefix schema: <http://schema.org/> .
10582
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
10583
+
10584
+ <http://dbpedia.org/resource/John_Lennon> foaf:name "John Lennon";
10585
+ schema:birthDate "1940-10-09"^^xsd:date;
10586
+ schema:spouse <http://dbpedia.org/resource/Cynthia_Lennon> .
10587
+ -->
10588
+ </pre>
10589
+ </aside>
10590
+
10591
+ <p>In addition to using the type profile above, a context may be referenced using
10592
+ a fragment identifier,
10593
+ as described in <a href="#locating-a-specific-json-ld-script-element" class="sectionRef"></a>.
10594
+ Otherwise, the first <a data-cite="HTML/semantics-scripting.html#the-script-element">script element</a>
10595
+ of type <code>application/ld+json</code> will be used to find a context.</p>
10596
+ </section>
10446
10597
</section>
10447
10598
10448
10599
<section class="normative">
@@ -12151,14 +12302,18 @@ <h3>application/ld+json</h3>
12151
12302
It is RECOMMENDED that profile URIs are dereferenceable and provide
12152
12303
useful documentation at that URI. For more information and background
12153
12304
please refer to [[RFC6906]].</p>
12154
- < p > This specification defines four values for the < code > profile</ code > parameter.</ p >
12305
+ <p>This specification defines six values for the <code>profile</code> parameter.</p>
12155
12306
<dl>
12156
12307
<dt><code>http://www.w3.org/ns/json-ld#expanded</code></dt>
12157
12308
<dd>To request or specify <a data-lt="expanded document form">expanded JSON-LD document form</a>.</dd>
12158
12309
<dt><code>http://www.w3.org/ns/json-ld#compacted</code></dt>
12159
12310
<dd>To request or specify <a data-lt="compacted document form">compacted JSON-LD document form</a>.</dd>
12311
+ <dt><code>http://www.w3.org/ns/json-ld#context</code></dt>
12312
+ <dd>To request or specify a <a data-lt="context document">JSON-LD context document</a>.</dd>
12160
12313
<dt><code>http://www.w3.org/ns/json-ld#flattened</code></dt>
12161
12314
<dd>To request or specify <a data-lt="flattened document form">flattened JSON-LD document form</a>.</dd>
12315
+ <dt><code>http://www.w3.org/ns/json-ld#frame</code></dt>
12316
+ <dd>To request or specify a <a data-lt="frame">JSON-LD frame document</a>.</dd>
12162
12317
<dt><code>http://www.w3.org/ns/json-ld#framed</code></dt>
12163
12318
<dd>To request or specify <a data-lt="framed document form">framed JSON-LD document form</a>.</dd>
12164
12319
</dl>
@@ -12378,6 +12533,12 @@ <h2>Changes since JSON-LD Community Group Final Report</h2>
12378
12533
Define the <code>rdf:JSON</code> datatype.</li>
12379
12534
<li><a>Term definitions</a> with keys which are of the form of a <a>compact IRI</a> or <a>absolute IRI</a> MUST NOT
12380
12535
expand to an <a>IRI</a> other than the expansion of the key itself.</li>
12536
+ <li>If a retrieved context URL returns an HTML document, the first script element
12537
+ of type <code>application/ld+json;profile=http://www.w3.org/ns/json-ld#context</code>,
12538
+ or <code>application/ld+json</code> is used as the context for further processing.
12539
+ This allows a mechanism for documenting the content of a context using HTML.</li>
12540
+ <li>A <a>frame</a> may also be located within an HTML document, identified
12541
+ using type <code>application/ld+json;profile=http://www.w3.org/ns/json-ld#frame</code>.</li>
12381
12542
</ul>
12382
12543
</section>
12383
12544
0 commit comments