Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal to adapt the abstract syntax to option 3 #78

Merged
merged 8 commits into from
Mar 7, 2024
86 changes: 44 additions & 42 deletions spec/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@
are comprised of a default graph and zero or more named graphs.</li>
</ul>

<p>RDF 1.2 introduces <a>quoted triples</a> as another kind of <a>RDF term</a>
which can be used as the <a>subject</a> or <a>object</a> of another <a>triple</a>.
<p>RDF 1.2 introduces <a>triple terms</a> as another kind of <a>RDF term</a>
which can be used as the <a>object</a> of another <a>triple</a>.
RDF 1.2 also introduces <a>directional language-tagged strings</a>,
which contain a <a>base direction</a> element that allows the
initial text direction to be specified for presentation by a user agent.</p>
Expand Down Expand Up @@ -130,7 +130,7 @@ <h3>Graph-based Data Model</h3>

<p>There can be four kinds of <a>nodes</a> in an
<a>RDF graph</a>: <a>IRIs</a>, <a>literals</a>,
<a>blank nodes</a>, and <a>quoted triples</a>.</p>
<a>blank nodes</a>, and <a>triple terms</a>.</p>

</section>

Expand Down Expand Up @@ -492,12 +492,12 @@ <h2>RDF Documents and Syntaxes</h2>
<ul>
<li><dfn class="no-export lint-ignore">Full</dfn> conformance
supports <a data-lt="RDF graph">graphs</a> and <a data-lt="RDF dataset">datasets</a>
containing <a>quoted triples</a>.
with <a>triples</a> that contain <a>triple terms</a>.
Concrete syntaxes in which such graphs and datasets can be expressed include
[[RDF12-N-TRIPLES]], [[RDF12-N-QUADS]], [[RDF12-TURTLE]], and [[RDF12-TRIG]].</li>
<li><dfn class="no-export lint-ignore">Classic</dfn> conformance
only supports <a data-lt="RDF graph">graphs</a> or <a data-lt="RDF dataset">datasets</a>,
that do not contain <a>quoted triples</a>.</li>
only supports <a data-lt="RDF graph">graphs</a> or <a data-lt="RDF dataset">datasets</a>
with <a>triples</a> that do not contain <a>triple terms</a>.</li>
</ul>
<p class="ednote">The conformance levels described above are tentative,
and still the subject of group discussion. An alternative to conformance
Expand Down Expand Up @@ -538,72 +538,70 @@ <h2>RDF Graphs</h2>
<section id="section-triples">
<h3>Triples</h3>

<p>An <dfn data-local-lt="triple">RDF triple</dfn> is a 3-tuple that is defined recursively as follows:</p>
<p>An <dfn data-local-lt="triple">RDF triple</dfn> (usually called "triple")
is a 3-tuple (|s|, |p|, |o|) where:</p>

<ul>
<li>|s| is an <a>IRI</a> or a <a>blank node</a>,</li>
<li>|p| is an <a>IRI</a>, and</li>
<li>|o| is an <a>IRI</a>, a <a>blank node</a>, a <a>literal</a>,
or a <a>triple term</a>.</li>
</ul>

<p>A <dfn>triple term</dfn> is a 3-tuple that is defined recursively as follows:</p>

<ul>
<li>
If |s| is an <a>IRI</a> or a <a>blank node</a>,
|p| is an <a>IRI</a>, and
|o| is an <a>IRI</a>, a <a>blank node</a>, or a <a>literal</a>,
then (|s|, |p|, |o|) is an RDF triple.
then (|s|, |p|, |o|) is a triple term.
</li>

<li>
If |t| and <var>t'</var> are <a>RDF triples</a>,
|s| is an <a>IRI</a> or a <a>blank node</a>,
If |s| is an <a>IRI</a> or a <a>blank node</a>,
|p| is an <a>IRI</a>, and
|o| is an <a>IRI</a>, a <a>blank node</a>, or a <a>literal</a>,
then (|t|, |p|, |o|), (|s|, |p|, |t|), and (|t|, |p|, <var>t'</var>) are RDF triples.
|o| is a <a>triple term</a>,
then (|s|, |p|, |o|) is a triple term.
</li>
</ul>

<p>"RDF triple" is usually written "<a>triple</a>".<p>

<p>Given a <a>triple</a> (|s|, |p|, |o|),
|s| is called the <dfn>subject</dfn> of the triple,
|p| is called the <dfn>predicate</dfn> of the triple, and
|o| is called the <dfn>object</dfn> of the triple.</p>

<p>When an <a>RDF triple</a> is used as the <a>subject</a> or <a>object</a> of a triple, this occurrence of
the triple is called a <dfn data-local-lt="quoted">quoted triple</dfn>.</p>

<p class="note">By the given definitions,
the <a>subject</a> of an <a>RDF triple</a> may be either an <a>IRI</a>,
a <a>blank node</a>, or a <a>quoted triple</a>;
the <a>predicate</a> of an <a>RDF triple</a> may only be an <a>IRI</a>;
the <a>object</a> of an <a>RDF triple</a> may be either an <a>IRI</a>,
a <a>blank node</a>, a <a>literal</a> or a <a>quoted triple</a>.</p>

<p class="note">The definition of <a>quoted triple</a> is recursive.
That is, a <a>quoted triple</a> can itself have a
<a>subject</a> or <a>object</a> component which is another <a>quoted triple</a>.
However, by this definition, cycles of <a>quoted triples</a> cannot be created.</p>
|o| is called the <dfn>object</dfn> of the triple.
Similarly, given a <a>triple term</a> (|s|, |p|, |o|),
|s| is called the <em>subject</em> of the triple term,
|p| is called the <em>predicate</em> of the triple term, and
|o| is called the <em>object</em> of the triple term.</p>

<p class="note">While, syntactically, the notion of an <a>RDF triple</a>
and the notion of a <a>triple term</a> are the same, they represent
different concepts. RDF triples are the members of <a>RDF graphs</a>,
whereas triple terms can be used as components of RDF triples.</p>

<p class="note">The definition of <a>triple term</a> is recursive.
That is, a <a>triple term</a> can itself have an
<a>object</a> component which is another <a>triple term</a>.
However, by this definition, cycles of <a>triple terms</a> cannot be created.</p>

<p><a>IRIs</a>, <a>literals</a>,
<a>blank nodes</a>, and <a>quoted triples</a> are collectively known as
<a>blank nodes</a>, and <a>triple terms</a> are collectively known as
<span id="dfn-rdf-terms"><!-- obsolete term--></span><dfn data-lt="rdf term">RDF terms</dfn>.</p>

<p><a>IRIs</a>, <a>literals</a>,
<a>blank nodes</a>, and <a>quoted triples</a> are distinct and distinguishable.
<a>blank nodes</a>, and <a>triple terms</a> are distinct and distinguishable.
For example, a literal with the string <code>http://example.org/</code> as
its <a>lexical form</a>
is not equal to the IRI <code>http://example.org/</code>,
nor to a blank node with the <a>blank node identifier</a>
<code>http://example.org/</code>.</p>

<p>The set of <span id="dfn-nodes"><!-- obsolete term--></span><dfn data-lt="node">nodes</dfn> of an <a>RDF graph</a>
is the set of <a>subjects</a> and <a>objects</a> of <a>triples</a> in the graph.
is the set of <a>subjects</a> and <a>objects</a> of the <a>triples</a> in the graph.
It is possible for a predicate IRI to also occur as a node in
the same graph.</p>

<p>An <dfn data-local-lt="asserted">asserted triple</dfn>
is an <a>RDF triple</a> that is an element of an <a>RDF graph</a>.</p>

<p class="note">In an <a>RDF graph</a>,
a <a>triple</a> may occur as either a <a>quoted triple</a>, an
<a>asserted triple</a>, or both.</p>
</section>

<section id="section-IRIs">
<h3>IRIs</h3>

Expand Down Expand Up @@ -1791,8 +1789,12 @@ <h2>Changes between RDF 1.1 and RDF 1.2</h2>
<ul>
<li>Added <a href="#section-dataset-quad" class="sectionRef"></a>
for informative definition of a <a>quad</a>.</li>
<!-- The following bullet point should be removed when Section 1.3 is changed
to introduce triple terms instead of quoted triples. -->
<li>Added <a href="#section-quoted-triples" class="sectionRef"></a>
and definitions for <a>quoted triple</a> and <a>asserted triple</a>.</li>
<s>and definitions for <a>quoted triple</a> and <a>asserted triple</a></s>.</li>
<li>Added the notion of a <a>triple term</a> and extended the definition of
<a>RDF triple</a> to permit triple terms as objects.</li>
<li>Added the <a>base direction</a> element as part of
a <a>literal</a>,
and a description of its use in <a href="#section-text-direction" class="sectionRef"></a>.</li>
Expand Down
Loading