Skip to content

Commit 1472e27

Browse files
committed
Mark blank node property labels and generalized RDF datasets as obsolete.
Fixes #37.
1 parent cd1eecb commit 1472e27

File tree

2 files changed

+23
-29
lines changed

2 files changed

+23
-29
lines changed

common/terms.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,9 @@
109109
Every <a>edge</a> has a direction associated with it
110110
and is labeled with an <a>IRI</a> or a <a>blank node identifier</a>.
111111
Within the JSON-LD syntax these edge labels are called <a>properties</a>.
112-
Whenever possible, an <a>edge</a> should be labeled with an <a>IRI</a>.</dd>
112+
Whenever possible, an <a>edge</a> should be labeled with an <a>IRI</a>.
113+
<div class="issue atrisk">The use of <a>blank node identifiers</a> to label properties is obsolete,
114+
and may be removed in a future version of JSON-LD.</div></dd>
113115
<dt><dfn>expanded term definition</dfn></dt><dd>
114116
An expanded term definition is a <a>term definition</a>
115117
where the value is a <a>dictionary</a>

index.html

+20-28
Original file line numberDiff line numberDiff line change
@@ -4956,7 +4956,6 @@ <h3>Using the Document Base as the Default Vocabulary</h3>
49564956
href="#type-coercion">type coercion</a> of the <code>knows</code> property
49574957
is not required, as the value is not a string.</p>
49584958

4959-
49604959
<p>While it is considered a best practice to identify nodes in a graph,
49614960
at times this is impractical. In the data model, nodes without an explicit
49624961
identifier are called <a>blank nodes</a>, which can be represented in a
@@ -8381,10 +8380,11 @@ <h1>Data Model</h1>
83818380

83828381
<ul>
83838382
<li>A <a>JSON-LD document</a> serializes a
8384-
<a>generalized RDF Dataset</a>
8383+
<a>RDF Dataset</a>
83858384
[[RDF11-CONCEPTS]], which is a collection of <a>graphs</a>
83868385
that comprises exactly one <a>default graph</a>
8387-
and zero or more <a>named graphs</a>.</li>
8386+
and zero or more <a>named graphs</a>.
8387+
</li>
83888388
<li>The <a>default graph</a> does not have a name and MAY be empty.</li>
83898389
<li>Each <a>named graph</a> is a pair consisting of an <a>IRI</a> or
83908390
<a>blank node identifier</a> (the
@@ -8396,7 +8396,10 @@ <h1>Data Model</h1>
83968396
<li>Every <a>edge</a> has a direction associated with it and is labeled with
83978397
an <a>IRI</a> or a <a>blank node identifier</a>. Within the JSON-LD syntax
83988398
these edge labels are called <a>properties</a>.
8399-
Whenever practical, an <a>edge</a> SHOULD be labeled with an <a>IRI</a>.</li>
8399+
Whenever practical, an <a>edge</a> SHOULD be labeled with an <a>IRI</a>.
8400+
<div class="issue atrisk">The use of <a>blank node identifiers</a> to label properties is obsolete,
8401+
and may be removed in a future version of JSON-LD.</div></dd>
8402+
</li>
84008403
<li>Every <a>node</a>
84018404
is an <a>IRI</a>, a <a>blank node</a>, a <a>JSON-LD value</a>,
84028405
or a <a>list</a>.</li>
@@ -8426,7 +8429,7 @@ <h1>Data Model</h1>
84268429
<a>graph</a> SHOULD return a Linked Data document describing
84278430
the resource denoted by that <a>IRI</a> when being dereferenced.</li>
84288431
<li>A <a>blank node</a> is a <a>node</a> which is neither an <a>IRI</a>,
8429-
nor a <a>JSON-LD value</a>, nor a <a>list</a>. A blank node MAY be identified
8432+
nor a <a>JSON-LD value</a>, nor a <a>list</a>. A blank node is identified
84308433
using a <a>blank node identifier</a>.</li>
84318434
<li>A <a>blank node identifier</a>
84328435
is a string that can be used as an identifier for a <a>blank node</a> within
@@ -9183,33 +9186,20 @@ <h2>Relationship to RDF</h2>
91839186
between JSON's native data types and RDF's counterparts to allow round-tripping.</li>
91849187
</ul>
91859188

9189+
<p class="issue atrisk">The use of <a>blank node identifiers</a> to label properties is obsolete,
9190+
and may be removed in a future version of JSON-LD, as is the support for <a>generalized rdf datasets</a>.</p>
9191+
91869192
<p>Summarized, these differences mean that JSON-LD is capable of serializing any RDF
91879193
<a>graph</a> or <a>dataset</a> and most, but not all, JSON-LD documents can be directly
91889194
interpreted as RDF as described in RDF 1.1 Concepts [[RDF11-CONCEPTS]].</p>
91899195

9190-
<p>For authors and developers working with <a>blank nodes</a>
9191-
as <a>properties</a> when deserializing to RDF,
9192-
three potential approaches are suggested:</p>
9193-
9196+
<p>Authors are strongly encouraged to avoid labeling properties using <a>blank node identifiers</a>,
9197+
instead, consider one of the following mechanisms:</p>
91949198
<ul>
9195-
<li>If the author is not yet ready to commit to a stable IRI, the
9196-
property should be mapped to a <a>relative IRI</a>, or an IRI that is documented as unstable.</li>
9197-
<li>If the developer wishes to use <a>blank nodes</a>
9198-
as <a>properties</a> and also wishes to interpret the
9199-
data as a
9200-
<a>generalized RDF Dataset</a>,
9201-
there is an option, <a data-cite="JSON-LD11-API#dom-jsonldoptions-producegeneralizedrdf"><em>produce generalized RDF</em></a>, in the
9202-
<a data-cite="JSON-LD11-API#deserialize-json-ld-to-rdf-algorithm">Deserialize JSON-LD to RDF algorithm</a> [[JSON-LD11-API]] to do so. Note that a
9203-
<a>generalized RDF Dataset</a>
9204-
is an extension of RDF; it does not conform to the RDF standard.</li>
9205-
<li>If the author or developer wishes to use <a>blank nodes</a>
9206-
as <a>properties</a> and wishes to interpret the data
9207-
as a standard (non-generalized)
9208-
<a>RDF Dataset</a>,
9209-
it is possible to losslessly interpret JSON-LD as RDF by transforming
9210-
<a>blank nodes</a> used as
9211-
<a>properties</a> to <a>IRIs</a>,
9212-
by minting new "Skolem IRIs" as per
9199+
<li>a <a>relative IRI</a>, either relative to the document or the vocabulary
9200+
(see <a href="#using-the-document-base-as-the-default-vocabulary" class="sectionRef"></a> for a discussion on using the document base as the <a>vocabulary mapping</a>).</li>
9201+
<li>a URN such as <code>urn:example:1</code>, see [[?URN]], or</li>
9202+
<li>a "Skolem IRI" as per
92139203
<a data-cite="RDF11-CONCEPTS#section-skolemization">Replacing Blank Nodes with IRIs</a>
92149204
of [[RDF11-CONCEPTS]].</li>
92159205
</ul>
@@ -9219,7 +9209,7 @@ <h2>Relationship to RDF</h2>
92199209
specification [[JSON-LD11-API]].</p>
92209210

92219211
<p>Even though JSON-LD serializes
9222-
<a>generalized RDF Datasets</a>, it can
9212+
<a>RDF Datasets</a>, it can
92239213
also be used as a <dfn data-cite="RDF11-CONCEPTS#dfn-rdf-source">RDF graph source</dfn>.
92249214
In that case, a consumer MUST only use the <a>default graph</a> and ignore all <a>named graphs</a>.
92259215
This allows servers to expose data in languages such as Turtle and JSON-LD
@@ -9895,6 +9885,8 @@ <h2>Changes since JSON-LD Community Group Final Report</h2>
98959885
to ensure that <code>@type</code> members are always represented as an array. This
98969886
also allows a term to be defined for <code>@type</code>, where the value MUST be a <a>dictionary</a>
98979887
with <code>@container</code> set to <code>@set</code>.</li>
9888+
<li>The use of <a>blank node identifiers</a> to label properties is obsolete,
9889+
and may be removed in a future version of JSON-LD, as is the support for <a>generalized rdf datasets</a>.</li>
98989890
</ul>
98999891
</section>
99009892

0 commit comments

Comments
 (0)