You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: shapes/lv.ttl
+8-21Lines changed: 8 additions & 21 deletions
Original file line number
Diff line number
Diff line change
@@ -240,47 +240,34 @@ rmlsh:LogicalViewJoinShape a sh:NodeShape ;
240
240
A field of the logical view join.
241
241
""" ;
242
242
sh:message """
243
-
At least one rml:field property must be specified for a rml:LogicalViewJoin, with a reference-valued expression field without nested fields as its value.
243
+
At least one rml:field property must be specified for a rml:LogicalViewJoin, with a leaf expression field as its value.
244
244
""" ;
245
245
sh:path rml:field ;
246
246
sh:minCount 1 ;
247
247
sh:nodeKind sh:BlankNodeOrIRI ;
248
-
sh:node rmlsh:JoinFieldShape ;
248
+
sh:node rmlsh:LeafExpressionFieldShape ;
249
249
] .
250
250
251
-
rmlsh:JoinFieldShapea sh:NodeShape ;
252
-
rdfs:label "Field in Logical View Join" ;
251
+
rmlsh:LeafExpressionFieldShapea sh:NodeShape ;
252
+
rdfs:label "Leaf Expression Field" ;
253
253
rdfs:comment """
254
-
Each logical view join has one rml:field property must be specified for a rml:LogicalViewJoin, with a reference-valued expression field without nested fields as its value, here reference as join field .
254
+
A leaf expression field is an expression field without nested fields.
255
255
""" ;
256
256
sh:message """
257
-
Node must have a valid rml:ExpressionField description, with exactly one rml:reference property and without rml:field properties.
257
+
Node must have a valid rml:ExpressionField description.
258
258
""" ;
259
259
sh:node rmlsh:ExpressionFieldShape ;
260
260
sh:property [
261
261
sh:description """
262
-
Nested fields are not allowed in a join field.
262
+
A leaf expression field is an expression field without nested fields.
263
263
""" ;
264
264
sh:message """
265
-
A field in a logical view join MUST not have nested fields.
265
+
A leaf expression field has no nested fields.
266
266
""" ;
267
267
sh:path rml:field ;
268
268
sh:maxCount 0 ;
269
-
] ;
270
-
sh:property [
271
-
sh:description """
272
-
Each join field has exactly one rml:reference property.
273
-
""" ;
274
-
sh:message """
275
-
The value of a rml:reference property for a join field must be a logical view reference that can be evaluated on the parent logical view.
<p>Additional keys-value pairs with custom <adata-link-type="dfn|abstract-op" href="#dfn-record-key" class="internalDFN" id="ref-for-dfn-record-key-3">record keys</a> can be defined by the <adata-link-type="dfn|abstract-op" href="#dfn-field" class="internalDFN" id="ref-for-dfn-field-3">fields</a> of the <adata-link-type="dfn|abstract-op" href="#dfn-logical-view" class="internalDFN" id="ref-for-dfn-logical-view-6">logical view</a>,
662
662
which is further detailed in <ahref="#fields" data-matched-text="[[[#fields]]]" class="sec-ref"><bdiclass="secno">4. </bdi>Fields</a>.</p>
663
-
</section><sectionid="logical-view-expressions"><divclass="header-wrapper"><h3id="logicalviewexpressions"><bdiclass="secno">3.2 </bdi>Logical view expressions</h3><aclass="self-link" href="#logicalviewexpressions" aria-label="Permalink for Section 3.2"></a></div><p>A <dfnid="dfn-logical-view-reference" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">logical view reference</dfn> is a <ahref="https://w3id.org/rml/core/spec#dfn-reference-expression">reference expression</a> that references a defined <adata-link-type="dfn|abstract-op" href="#dfn-referenceable-key" class="internalDFN" id="ref-for-dfn-referenceable-key-1">referenceable key</a> in a <adata-link-type="dfn|abstract-op" href="#dfn-logical-view-iteration" class="internalDFN" id="ref-for-dfn-logical-view-iteration-4">logical view iteration</a>.
663
+
</section><sectionid="logical-view-expressions"><divclass="header-wrapper"><h3id="logicalviewexpressions"><bdiclass="secno">3.2 </bdi>Logical view expressions</h3><aclass="self-link" href="#logicalviewexpressions" aria-label="Permalink for Section 3.2"></a></div><p>A <dfndata-plurals="logical view references" id="dfn-logical-view-reference" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">logical view reference</dfn> is a <ahref="https://w3id.org/rml/core/spec#dfn-reference-expression">reference expression</a> that references a defined <adata-link-type="dfn|abstract-op" href="#dfn-referenceable-key" class="internalDFN" id="ref-for-dfn-referenceable-key-1">referenceable key</a> in a <adata-link-type="dfn|abstract-op" href="#dfn-logical-view-iteration" class="internalDFN" id="ref-for-dfn-logical-view-iteration-4">logical view iteration</a>.
664
664
A <dfndata-plurals="referenceable keys" id="dfn-referenceable-key" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">referenceable key</dfn> is either</p>
665
665
<ul>
666
666
<li>a <adata-link-type="dfn|abstract-op" href="#dfn-record-key" class="internalDFN" id="ref-for-dfn-record-key-4">record key</a> of an <adata-link-type="dfn|abstract-op" href="#dfn-expression-record" class="internalDFN" id="ref-for-dfn-expression-record-3">expression record</a>, or</li>
<li>exactly one parent logical view property (<code>rml:parentLogicalView</code>), whose value is a <adata-link-type="dfn|abstract-op" href="#dfn-logical-view" class="internalDFN" id="ref-for-dfn-logical-view-13">logical view</a> (<code>rml:LogicalView</code>) that supplies the additional fields. This is referred to as the <dfnid="dfn-parent-logical-view" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">parent logical view</dfn>.</li>
1267
1267
<li>at least one join condition property (<code>rml:joinCondition</code>), whose value is a <ahref="https://w3id.org/rml/core/spec#dfn-join-condition">join condition</a>.</li>
1268
-
<li>at least one field property (<code>rml:field</code>), whose value is a <strong><ahref="https://w3id.org/rml/core/spec##dfn-reference-valued-expression-map">reference-valued</a></strong><adata-link-type="dfn|abstract-op" href="#dfn-expression-field" class="internalDFN" id="ref-for-dfn-expression-field-8">expression field</a> (<code>rml:ExpressionField</code>) <strong>without nested fields.</strong> This field <emclass="rfc2119">MUST</em> contain a valid <adata-link-type="dfn|abstract-op" href="#dfn-logical-view-reference" class="internalDFN" id="ref-for-dfn-logical-view-reference-3">logical view reference</a> that can be evaluated on the parent logical view.</li>
1268
+
<li>at least one field property (<code>rml:field</code>), whose value is a <dfnid="dfn-leaf-expression-field" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn" class="respec-offending-element" title="Found definition for "leaf expression field", but nothing links to it. This is usually a spec bug!">leaf expression field</dfn>, i.e., an <adata-link-type="dfn|abstract-op" href="#dfn-expression-field" class="internalDFN" id="ref-for-dfn-expression-field-8">expression field</a> (<code>rml:ExpressionField</code>) without nested fields.
1269
+
This field <emclass="rfc2119">MUST</em> contain only <adata-link-type="dfn|abstract-op" href="#dfn-logical-view-reference" class="internalDFN" id="ref-for-dfn-logical-view-reference-3">logical view references</a> that can be evaluated on the parent logical view.
1270
+
The <adata-link-type="dfn|abstract-op" href="#dfn-declared-name" class="internalDFN" id="ref-for-dfn-declared-name-11">declared name</a> of this field <emclass="rfc2119">MUST</em> be different from the <adata-link-type="dfn|abstract-op" href="#dfn-absolute-name" class="internalDFN" id="ref-for-dfn-absolute-name-3">absolute name</a> of every other field in the <adata-link-type="dfn|abstract-op" href="#dfn-child-logical-view" class="internalDFN" id="ref-for-dfn-child-logical-view-2">child logical view</a>.</li>
1269
1271
</ul>
1270
1272
<p>Similar to how <ahref="https://w3id.org/rml/core/spec#joins">joins are defined in RML-Core</a>,
1271
1273
the <adata-link-type="dfn|abstract-op" href="#dfn-logical-view" class="internalDFN" id="ref-for-dfn-logical-view-14">logical view</a> in the subject position of the <adata-link-type="dfn|abstract-op" href="#dfn-join-property" class="internalDFN" id="ref-for-dfn-join-property-1">join property</a> fulfills the role of <ahref="https://w3id.org/rml/core/spec#child-logical-source">child logical source</a> in the <ahref="https://w3id.org/rml/core/spec#dfn-join-condition">join condition(s)</a>, but of the <adata-link-type="dfn|abstract-op" href="#dfn-logical-view-join" class="internalDFN" id="ref-for-dfn-logical-view-join-3">logical view join</a>, and is referred to as <dfnid="dfn-child-logical-view" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">child logical view</dfn>.
<sectionid="join-types"><divclass="header-wrapper"><h3id="dfn-join-type"><bdiclass="secno">5.1 </bdi>Join types</h3><aclass="self-link" href="#dfn-join-type" aria-label="Permalink for Section 5.1"></a></div><p>The <dfnid="dfn-join-property" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">join property</dfn> specifies the join type of the <adata-link-type="dfn|abstract-op" href="#dfn-logical-view-join" class="internalDFN" id="ref-for-dfn-logical-view-join-5">logical view join</a>, i.e. a <adata-link-type="dfn|abstract-op" href="#dfn-left-join" class="internalDFN" id="ref-for-dfn-left-join-1">left join</a> or an <adata-link-type="dfn|abstract-op" href="#dfn-inner-join" class="internalDFN" id="ref-for-dfn-inner-join-1">inner join</a>.</p>
1298
-
<p>A <dfnid="dfn-left-join" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">left join</dfn> (<code>rml:leftJoin</code>) is the equivalent of a left (outer) join in SQL, where the <adata-link-type="dfn|abstract-op" href="#dfn-child-logical-view" class="internalDFN" id="ref-for-dfn-child-logical-view-2">child logical view</a> is the left part of the join, and the <adata-link-type="dfn|abstract-op" href="#dfn-parent-logical-view" class="internalDFN" id="ref-for-dfn-parent-logical-view-3">parent logical view</a> is the right part of the join. If any of the <ahref="https://w3id.org/rml/core/spec#dfn-join-condition">join conditions</a> evaluates to <code>false</code>, the fields from the <adata-link-type="dfn|abstract-op" href="#dfn-logical-view-join" class="internalDFN" id="ref-for-dfn-logical-view-join-6">logical view join</a> in the extended logical iteration contain a null value.</p>
1299
-
<p>An <dfnid="dfn-inner-join" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">inner join</dfn> (<code>rml:innerJoin</code>) is the equivalent of an inner join in SQL. If any of the <ahref="https://w3id.org/rml/core/spec#dfn-join-condition">join conditions</a> evaluates to <code>false</code>, the logical iteration is removed from the <adata-link-type="dfn|abstract-op" href="#dfn-child-logical-view" class="internalDFN" id="ref-for-dfn-child-logical-view-3">child logical view</a>.</p>
1300
+
<p>A <dfnid="dfn-left-join" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">left join</dfn> (<code>rml:leftJoin</code>) is the equivalent of a left (outer) join in SQL, where the <adata-link-type="dfn|abstract-op" href="#dfn-child-logical-view" class="internalDFN" id="ref-for-dfn-child-logical-view-3">child logical view</a> is the left part of the join, and the <adata-link-type="dfn|abstract-op" href="#dfn-parent-logical-view" class="internalDFN" id="ref-for-dfn-parent-logical-view-3">parent logical view</a> is the right part of the join. If any of the <ahref="https://w3id.org/rml/core/spec#dfn-join-condition">join conditions</a> evaluates to <code>false</code>, the fields from the <adata-link-type="dfn|abstract-op" href="#dfn-logical-view-join" class="internalDFN" id="ref-for-dfn-logical-view-join-6">logical view join</a> in the extended logical iteration contain a null value.</p>
1301
+
<p>An <dfnid="dfn-inner-join" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">inner join</dfn> (<code>rml:innerJoin</code>) is the equivalent of an inner join in SQL. If any of the <ahref="https://w3id.org/rml/core/spec#dfn-join-condition">join conditions</a> evaluates to <code>false</code>, the logical iteration is removed from the <adata-link-type="dfn|abstract-op" href="#dfn-child-logical-view" class="internalDFN" id="ref-for-dfn-child-logical-view-4">child logical view</a>.</p>
1300
1302
</section><sectionid="logical-view-join-examples"><divclass="header-wrapper"><h3id="x5-2-logical-view-join-examples"><bdiclass="secno">5.2 </bdi>Logical view join examples</h3><aclass="self-link" href="#logical-view-join-examples" aria-label="Permalink for Section 5.2"></a></div>
1301
1303
<sectionid="left-join"><divclass="header-wrapper"><h4id="x5-2-1-left-join"><bdiclass="secno">5.2.1 </bdi>Left join</h4><aclass="self-link" href="#left-join" aria-label="Permalink for Section 5.2.1"></a></div>
</div><divclass="dfn-panel" hidden="" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-absolute-name" aria-label="Links in this document to definition: absolute name">
</div><divclass="dfn-panel" hidden="" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-logical-view-join" aria-label="Links in this document to definition: logical view join">
<ahref="#ref-for-dfn-parent-logical-view-4" title="§ 5.2.3 Two left joins">§ 5.2.3 Two left joins</a>
2308
2314
</li>
2309
2315
</ul>
2316
+
</div><divclass="dfn-panel" hidden="" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-leaf-expression-field" aria-label="Links in this document to definition: leaf expression field">
2317
+
<spanclass="caret"></span>
2318
+
<div>
2319
+
<aclass="self-link" href="#dfn-leaf-expression-field" aria-label="Permalink for definition: leaf expression field. Activate to close this dialog.">Permalink</a>
2320
+
2321
+
</div>
2322
+
<p><b>Referenced in:</b></p>
2323
+
<ul>
2324
+
<li>Not referenced in this document.</li>
2325
+
</ul>
2310
2326
</div><divclass="dfn-panel" hidden="" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-child-logical-view" aria-label="Links in this document to definition: child logical view">
</div><divclass="dfn-panel" hidden="" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-join-property" aria-label="Links in this document to definition: join property">
Copy file name to clipboardExpand all lines: spec/section/joins.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,9 @@ using a <a data-cite="RML-Core#dfn-join-condition">join condition</a>.
6
6
A [=logical view join=] MUST contain:
7
7
- exactly one parent logical view property (`rml:parentLogicalView`), whose value is a [=logical view=] (`rml:LogicalView`) that supplies the additional fields. This is referred to as the <dfn>parent logical view</dfn>.
8
8
- at least one join condition property (`rml:joinCondition`), whose value is a <adata-cite="RML-Core#dfn-join-condition">join condition</a>.
9
-
- at least one field property (`rml:field`), whose value is a **<adata-cite="RML-Core##dfn-reference-valued-expression-map">reference-valued</a>**[=expression field=] (`rml:ExpressionField`) **without nested fields.** This field MUST contain a valid [=logical view reference=] that can be evaluated on the parent logical view.
9
+
- at least one field property (`rml:field`), whose value is a <dfn>leaf expression field</dfn>, i.e., an [=expression field=] (`rml:ExpressionField`) without nested fields.
10
+
This field MUST contain only [=logical view references=] that can be evaluated on the parent logical view.
11
+
The [=declared name=] of this field MUST be different from the [=absolute name=] of every other field in the [=child logical view=].
10
12
11
13
Similar to how <adata-cite="RML-Core#joins">joins are defined in RML-Core</a>,
12
14
the [=logical view=] in the subject position of the [=join property=] fulfills the role of <adata-cite="RML-Core#child-logical-source">child logical source</a> in the <adata-cite="RML-Core#dfn-join-condition">join condition(s)</a>, but of the [=logical view join=], and is referred to as <dfn>child logical view</dfn>.
0 commit comments