|
1 | 1 | <!DOCTYPE html><html lang="en" dir="ltr"><head> |
2 | 2 | <meta charset="utf-8"> |
3 | | -<meta name="generator" content="ReSpec 35.6.0"> |
| 3 | +<meta name="generator" content="ReSpec 35.6.1"> |
4 | 4 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> |
5 | 5 | <style> |
6 | 6 | span.example-title{text-transform:none} |
|
141 | 141 | <script data-goatcounter="https://rml-fields.goatcounter.com/count" async="" src="//gc.zgo.at/count.js"></script> |
142 | 142 |
|
143 | 143 | <noscript> |
144 | | - &lt;img src="https://rml-fields.goatcounter.com/count?p=/test-noscript"&gt; |
| 144 | + <img src="https://rml-fields.goatcounter.com/count?p=/test-noscript"> |
145 | 145 | </noscript> |
146 | 146 |
|
147 | 147 | <style id="respec-mainstyle"> |
|
246 | 246 | "processVersion": 2024, |
247 | 247 | "specStatus": "CG-DRAFT", |
248 | 248 | "shortName": "rml-lv", |
249 | | - "publishDate": "2025-11-20", |
| 249 | + "publishDate": "2026-01-08", |
250 | 250 | "copyrightStart": "2024", |
251 | 251 | "edDraftURI": "https://w3id.org/rml/lv/spec", |
252 | 252 | "editors": [ |
|
342 | 342 | "id": "rml-io" |
343 | 343 | } |
344 | 344 | }, |
345 | | - "publishISODate": "2025-11-20T00:00:00.000Z", |
346 | | - "generatedSubtitle": "Draft Community Group Report 20 November 2025" |
| 345 | + "publishISODate": "2026-01-08T00:00:00.000Z", |
| 346 | + "generatedSubtitle": "Draft Community Group Report 08 January 2026" |
347 | 347 | }</script> |
348 | 348 | <link rel="stylesheet" href="https://www.w3.org/StyleSheets/TR/2021/cg-draft"></head> |
349 | 349 | <body class="h-entry"><div class="head"> |
350 | 350 |
|
351 | 351 | <h1 id="title" class="title">RML Logical Views</h1> |
352 | 352 | <p id="w3c-state"> |
353 | 353 | <a href="https://www.w3.org/standards/types#reports">Draft Community Group Report</a> |
354 | | - <time class="dt-published" datetime="2025-11-20">20 November 2025</time> |
| 354 | + <time class="dt-published" datetime="2026-01-08">08 January 2026</time> |
355 | 355 | </p> |
356 | 356 | <dl> |
357 | 357 |
|
@@ -389,7 +389,7 @@ <h1 id="title" class="title">RML Logical Views</h1> |
389 | 389 | <p class="copyright"> |
390 | 390 | <a href="https://www.w3.org/policies/#copyright">Copyright</a> |
391 | 391 | © |
392 | | - 2024-2025 |
| 392 | + 2024-2026 |
393 | 393 |
|
394 | 394 | the Contributors to the RML Logical Views |
395 | 395 | Specification, published by the |
@@ -427,7 +427,7 @@ <h1 id="title" class="title">RML Logical Views</h1> |
427 | 427 | <p data-format="markdown"><p>This is an early draft, |
428 | 428 | yet efforts are made to keep things stable.</p> |
429 | 429 | </p> |
430 | | -</section><nav id="toc"><h2 class="introductory" id="table-of-contents">Table of Contents</h2><ol class="toc"><li class="tocline"><a class="tocxref" href="#abstract">Abstract</a></li><li class="tocline"><a class="tocxref" href="#sotd">Status of This Document</a></li><li class="tocline"><a class="tocxref" href="#overview"><bdi class="secno">1. </bdi>Overview</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#conventions"><bdi class="secno">1.1 </bdi>Document conventions</a></li><li class="tocline"><a class="tocxref" href="#conformance"><bdi class="secno">1.2 </bdi>Conformance</a></li></ol></li><li class="tocline"><a class="tocxref" href="#problem"><bdi class="secno">2. </bdi>Problem</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#nested-data-structures"><bdi class="secno">2.1 </bdi>Nested data structures</a></li><li class="tocline"><a class="tocxref" href="#mixed-data-formats"><bdi class="secno">2.2 </bdi>Mixed data formats</a></li><li class="tocline"><a class="tocxref" href="#joining-of-data-sources"><bdi class="secno">2.3 </bdi>Joining of data sources</a></li></ol></li><li class="tocline"><a class="tocxref" href="#logicalviews"><bdi class="secno">3. </bdi>Logical views</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#logicalviewiterator"><bdi class="secno">3.1 </bdi>Logical view iterator</a></li><li class="tocline"><a class="tocxref" href="#logicalviewexpressions"><bdi class="secno">3.2 </bdi>Logical view expressions</a></li></ol></li><li class="tocline"><a class="tocxref" href="#fields"><bdi class="secno">4. </bdi>Fields</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#fieldparents"><bdi class="secno">4.1 </bdi>Field parents</a></li><li class="tocline"><a class="tocxref" href="#fieldnames"><bdi class="secno">4.2 </bdi>Field names</a></li><li class="tocline"><a class="tocxref" href="#fieldrecords"><bdi class="secno">4.3 </bdi>Field records</a></li><li class="tocline"><a class="tocxref" href="#fieldreferenceformulations"><bdi class="secno">4.4 </bdi>Field reference formulations</a></li></ol></li><li class="tocline"><a class="tocxref" href="#viewjoins"><bdi class="secno">5. </bdi>Logical view joins</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#dfn-join-type"><bdi class="secno">5.1 </bdi>Join types</a></li><li class="tocline"><a class="tocxref" href="#logical-view-join-examples"><bdi class="secno">5.2 </bdi>Logical view join examples</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#left-join"><bdi class="secno">5.2.1 </bdi>Left join</a></li><li class="tocline"><a class="tocxref" href="#inner-join"><bdi class="secno">5.2.2 </bdi>Inner join</a></li><li class="tocline"><a class="tocxref" href="#two-left-joins"><bdi class="secno">5.2.3 </bdi>Two left joins</a></li></ol></li></ol></li><li class="tocline"><a class="tocxref" href="#annotations"><bdi class="secno">6. </bdi>Structural Annotations</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#invariance-principle"><bdi class="secno">6.1 </bdi>Invariance Principle</a></li><li class="tocline"><a class="tocxref" href="#irisafe"><bdi class="secno">6.2 </bdi>IriSafe</a></li><li class="tocline"><a class="tocxref" href="#primarykey"><bdi class="secno">6.3 </bdi>PrimaryKey</a></li><li class="tocline"><a class="tocxref" href="#unique"><bdi class="secno">6.4 </bdi>Unique</a></li><li class="tocline"><a class="tocxref" href="#notnull"><bdi class="secno">6.5 </bdi>NotNull</a></li><li class="tocline"><a class="tocxref" href="#foreignkey"><bdi class="secno">6.6 </bdi>ForeignKey</a></li><li class="tocline"><a class="tocxref" href="#inclusion"><bdi class="secno">6.7 </bdi>Inclusion</a></li></ol></li><li class="tocline"><a class="tocxref" href="#references"><bdi class="secno">A. </bdi>References</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><bdi class="secno">A.1 </bdi>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><bdi class="secno">A.2 </bdi>Informative references</a></li></ol></li></ol></nav> |
| 430 | +</section><nav id="toc"><h2 class="introductory" id="table-of-contents">Table of Contents</h2><ol class="toc"><li class="tocline"><a class="tocxref" href="#abstract">Abstract</a></li><li class="tocline"><a class="tocxref" href="#sotd">Status of This Document</a></li><li class="tocline"><a class="tocxref" href="#overview"><bdi class="secno">1. </bdi>Overview</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#conventions"><bdi class="secno">1.1 </bdi>Document conventions</a></li><li class="tocline"><a class="tocxref" href="#conformance"><bdi class="secno">1.2 </bdi>Conformance</a></li></ol></li><li class="tocline"><a class="tocxref" href="#problem"><bdi class="secno">2. </bdi>Problem</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#nested-data-structures"><bdi class="secno">2.1 </bdi>Nested data structures</a></li><li class="tocline"><a class="tocxref" href="#mixed-data-formats"><bdi class="secno">2.2 </bdi>Mixed data formats</a></li><li class="tocline"><a class="tocxref" href="#joining-of-data-sources"><bdi class="secno">2.3 </bdi>Joining of data sources</a></li></ol></li><li class="tocline"><a class="tocxref" href="#logicalviews"><bdi class="secno">3. </bdi>Logical views</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#logicalviewiterator"><bdi class="secno">3.1 </bdi>Logical view iterator</a></li><li class="tocline"><a class="tocxref" href="#logicalviewexpressions"><bdi class="secno">3.2 </bdi>Logical view expressions</a></li></ol></li><li class="tocline"><a class="tocxref" href="#fields"><bdi class="secno">4. </bdi>Fields</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#fieldparents"><bdi class="secno">4.1 </bdi>Field parents</a></li><li class="tocline"><a class="tocxref" href="#fieldnames"><bdi class="secno">4.2 </bdi>Field names</a></li><li class="tocline"><a class="tocxref" href="#fieldrecords"><bdi class="secno">4.3 </bdi>Field records</a></li><li class="tocline"><a class="tocxref" href="#fieldreferenceformulations"><bdi class="secno">4.4 </bdi>Field reference formulations</a></li></ol></li><li class="tocline"><a class="tocxref" href="#viewjoins"><bdi class="secno">5. </bdi>Logical view joins</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#dfn-join-type"><bdi class="secno">5.1 </bdi>Join types</a></li><li class="tocline"><a class="tocxref" href="#logical-view-join-examples"><bdi class="secno">5.2 </bdi>Logical view join examples</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#left-join"><bdi class="secno">5.2.1 </bdi>Left join</a></li><li class="tocline"><a class="tocxref" href="#inner-join"><bdi class="secno">5.2.2 </bdi>Inner join</a></li><li class="tocline"><a class="tocxref" href="#two-left-joins"><bdi class="secno">5.2.3 </bdi>Two left joins</a></li></ol></li></ol></li><li class="tocline"><a class="tocxref" href="#annotations"><bdi class="secno">6. </bdi>Structural Annotations</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#invariance-principle"><bdi class="secno">6.1 </bdi>Invariance Principle</a></li><li class="tocline"><a class="tocxref" href="#irisafe"><bdi class="secno">6.2 </bdi>IriSafe</a></li><li class="tocline"><a class="tocxref" href="#primarykey"><bdi class="secno">6.3 </bdi>PrimaryKey</a></li><li class="tocline"><a class="tocxref" href="#unique"><bdi class="secno">6.4 </bdi>Unique</a></li><li class="tocline"><a class="tocxref" href="#notnull"><bdi class="secno">6.5 </bdi>NotNull</a></li><li class="tocline"><a class="tocxref" href="#foreignkey"><bdi class="secno">6.6 </bdi>ForeignKey</a></li><li class="tocline"><a class="tocxref" href="#inclusion"><bdi class="secno">6.7 </bdi>Inclusion</a></li></ol></li><li class="tocline"><a class="tocxref" href="#references"><bdi class="secno">A. </bdi>References</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><bdi class="secno">A.1 </bdi>Normative references</a></li></ol></li></ol></nav> |
431 | 431 |
|
432 | 432 | <section id="overview-0"><div class="header-wrapper"><h2 id="overview"><bdi class="secno">1. </bdi>Overview</h2><a class="self-link" href="#overview" aria-label="Permalink for Section 1."></a></div><p><em>This section is non-normative.</em></p> |
433 | 433 | <section id="document-conventions"><div class="header-wrapper"><h3 id="conventions"><bdi class="secno">1.1 </bdi>Document conventions</h3><a class="self-link" href="#conventions" aria-label="Permalink for Section 1.1"></a></div><p>We assume readers have basic familiarity with RDF and RML concepts.</p> |
@@ -1274,7 +1274,7 @@ <h1 id="title" class="title">RML Logical Views</h1> |
1274 | 1274 | The <a data-link-type="dfn|abstract-op" href="#dfn-declared-name" class="internalDFN" id="ref-for-dfn-declared-name-11">declared name</a> of this field <em class="rfc2119">MUST</em> be different from the <a data-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 <a data-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> |
1275 | 1275 | </ul> |
1276 | 1276 | <p>Similar to how <a href="https://w3id.org/rml/core/spec#joins">joins are defined in RML-Core</a>, |
1277 | | -the <a data-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 <a data-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 <a href="https://w3id.org/rml/core/spec#child-logical-source">child logical source</a> in the <a href="https://w3id.org/rml/core/spec#dfn-join-condition">join condition(s)</a>, but of the <a data-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 <dfn id="dfn-child-logical-view" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">child logical view</dfn>. |
| 1277 | +the <a data-link-type="dfn|abstract-op" href="#dfn-logical-view" class="internalDFN" id="ref-for-dfn-logical-view-15">logical view</a> in the subject position of the <a data-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 <a href="https://w3id.org/rml/core/spec#child-logical-source">child logical source</a> in the <a href="https://w3id.org/rml/core/spec#dfn-join-condition">join condition(s)</a>, but of the <a data-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 <dfn id="dfn-child-logical-view" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">child logical view</dfn>. |
1278 | 1278 | The <a data-link-type="dfn|abstract-op" href="#dfn-parent-logical-view" class="internalDFN" id="ref-for-dfn-parent-logical-view-2">parent logical view</a> fulfills the role of the <a href="https://w3id.org/rml/core/spec#parent-logical-source">parent logical source</a> in the <a href="https://w3id.org/rml/core/spec#dfn-join-condition">join condition(s)</a>, but of the <a data-link-type="dfn|abstract-op" href="#dfn-logical-view-join" class="internalDFN" id="ref-for-dfn-logical-view-join-4">logical view join</a>.</p> |
1279 | 1279 | <table> |
1280 | 1280 | <thead> |
@@ -1807,12 +1807,12 @@ <h1 id="title" class="title">RML Logical Views</h1> |
1807 | 1807 | </thead> |
1808 | 1808 | <tbody><tr> |
1809 | 1809 | <td><code>rml:targetView</code></td> |
1810 | | -<td><code>rml:InclusionAnnotation</code></td> |
| 1810 | +<td><code>rml:ForeignKeyAnnotation</code></td> |
1811 | 1811 | <td><code>rml:LogicalView</code></td> |
1812 | 1812 | </tr> |
1813 | 1813 | <tr> |
1814 | 1814 | <td><code>rml:targetFields</code></td> |
1815 | | -<td><code>rml:InclusionAnnotation</code></td> |
| 1815 | +<td><code>rml:ForeignKeyAnnotation</code></td> |
1816 | 1816 | <td><code>rdf:List</code></td> |
1817 | 1817 | </tr> |
1818 | 1818 | </tbody></table> |
@@ -1973,11 +1973,6 @@ <h1 id="title" class="title">RML Logical Views</h1> |
1973 | 1973 | </dd><dt id="bib-turtle">[turtle]</dt><dd> |
1974 | 1974 | <a href="https://www.w3.org/TR/turtle/"><cite>RDF 1.1 Turtle</cite></a>. Eric Prud'hommeaux; Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: <a href="https://www.w3.org/TR/turtle/">https://www.w3.org/TR/turtle/</a> |
1975 | 1975 | </dd></dl> |
1976 | | - </section><section id="informative-references"><div class="header-wrapper"><h3 id="a-2-informative-references"><bdi class="secno">A.2 </bdi>Informative references</h3><a class="self-link" href="#informative-references" aria-label="Permalink for Appendix A.2"></a></div> |
1977 | | - |
1978 | | - <dl class="bibliography"><dt id="bib-rml-io">[RML-IO]</dt><dd> |
1979 | | - <a href="https://w3id.org/rml/io/spec"><cite>RML-IO</cite></a>. W3C. 27 September 2023. Draft Community Group Report. URL: <a href="https://w3id.org/rml/io/spec">https://w3id.org/rml/io/spec</a> |
1980 | | - </dd></dl> |
1981 | 1976 | </section></section><p role="navigation" id="back-to-top"> |
1982 | 1977 | <a href="#title"><abbr title="Back to Top">↑</abbr></a> |
1983 | 1978 | </p><div class="dfn-panel" hidden="" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-logical-view" aria-label="Links in this document to definition: logical view"> |
|
0 commit comments