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
a <a>frame</a> to match against (<var>frame</var>), and the <var>requireAll</var> flag
1765
1764
and returns a list of matched subjects by filtering each <var>node</var> in <var>subjects</var> as follows:</p>
1766
1765
1767
-
<p>Frame matching follows an order of precedence, first attempting to match on a particular <code>@id</code>, then
1768
-
a particular <code>@type</code> (or lack of <code>@type</code>), then by matching on any or all
1769
-
of a set of properties, if neither <code>@id</code>, nor <code>@type</code> are in the frame.</p>
1766
+
<p>All properties, including <code>@id</code> and <code>@type</code>, but no other <a>keywords</a> are considered
1767
+
whem matching a frame..</p>
1770
1768
1771
1769
<ol>
1772
-
<li><var>node</var> matches if it has an <code>@id</code> property value
1773
-
which is also a value of the <code>@id</code> property in <var>frame</var>.
1774
-
Otherwise, <var>node</var> does not match if <var>frame</var> has a non-empty
1775
-
<code>@id</code> property, other than an empty <a>dictionary</a>.
1776
-
Otherwise, frame must not have a <code>@id</code> property; continue to the next step.
1777
-
<divclass="note">Framing works on <a>map of flattened subjects</a>,
1778
-
and the act of flattening ensures that all subjects have an
1779
-
<code>@id</code> property; thus the <code>"@id": []</code> pattern would
1780
-
never match any <a>node object</a>. The <code>"@id": [{}]</code> pattern would
1781
-
match any <a>node object</a> and is equivalent to not specifying a
1782
-
<code>@id</code> property in <var>frame</var> at all</div>
1783
-
</li>
1784
-
<li><var>node</var> matches if frame has no non-<code>keyword</code> properties.</li>
1785
-
<li>If <var>requireAll</var> is <strong>true</strong>, <var>node</var> matches if all non-<a>keyword</a> properties (<var>property</var>) in <var>frame</var> match any of the following conditions.
1786
-
Or, if <var>requireAll</var> is <strong>false</strong>, if any of the non-<a>keyword</a> properties (<var>property</var>) in <var>frame</var> match any of the following conditions.
1770
+
<li><var>node</var> matches if frame has no properties.</li>
1771
+
<li>If <var>requireAll</var> is <strong>true</strong>, <var>node</var> matches if all properties (<var>property</var>)
1772
+
in <var>frame</var> match any of the following conditions.
1773
+
Or, if <var>requireAll</var> is <strong>false</strong>, if any of the properties (<var>property</var>)
1774
+
in <var>frame</var> match any of the following conditions.
1787
1775
For the <var>values</var> of each <var>property</var> from <var>frame</var> in <var>node</var>:
1788
1776
<ol>
1789
-
<li>If <var>property</var> is <code>@type</code>:
1777
+
<li>If <var>property</var> is <code>@id</code>:
1778
+
<ol>
1779
+
<li><var>property</var> matches if the <code>@id</code> property in frame includes any <a>IRI</a> in <var>values</var>.</li>
1780
+
<li>Otherwise, <var>property</var> matches if the <code>@type</code> property in <var>frame</var> is <code><a>wildcard</a></code> or <code><a>match none</a></code>.</li>
1781
+
</ol>
1782
+
<divclass="note">Framing works on <a>map of flattened subjects</a>,
1783
+
and the act of flattening ensures that all subjects have an
1784
+
<code>@id</code> property; thus the <code>"@id": []</code> pattern would
1785
+
never match any <a>node object</a>. The <code>"@id": [{}]</code> pattern would
1786
+
match any <a>node object</a> and is equivalent to not specifying a
1787
+
<code>@id</code> property in <var>frame</var> at all</div>
1788
+
</li>
1789
+
<li>Otherwise, if <var>property</var> is <code>@type</code>:
1790
1790
<ol>
1791
1791
<li><var>property</var> matches if the <code>@type</code> property in frame includes any <a>IRI</a> in <var>values</var>.</li>
1792
1792
<li>Otherwise, <var>property</var> matches if <var>values</var> is not empty and the <code>@type</code> property in <var>frame</var> is <code><a>wildcard</a></code>.</li>
1793
1793
<li>Otherwise, <var>property</var> matches if <var>values</var> is empty and the <code>@type</code> property in <var>frame</var> is <code><a>match none</a></code>.</li>
1794
1794
<li>Otherwise, <var>property</var> does not match.</li>
1795
1795
</ol>
1796
1796
</li>
1797
+
<li>If <var>property</var> is <code>@id</code> or <code>@type</code> and does not match,
1798
+
<var>node</var> does not match, and processing is terminated.</li>
1797
1799
<li>Otherwise, the value of <var>property</var> in <var>frame</var> MUST be empty, or an array
1798
1800
containing a valid <a>frame</a>.</li>
1799
1801
<li><var>property</var> matches if <var>values</var> is empty, or non existent,
@@ -2238,6 +2240,8 @@ <h2>Changes since JSON-LD Community Group Final Report</h2>
2238
2240
evaluating test results have been updated accordingly.</li>
2239
2241
<li>The IANA registration is changed from <code>application/ld-frame+json</code> to
2240
2242
<code>application/ld+json</code> with a required <code>profile</code> parameter.</li>
2243
+
<li>The <a>require all flag</a> now needs all properties to be present, including
0 commit comments