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
1709
1708
and returns a list of matched subjects by filtering each <var>node</var> in <var>subjects</var> as follows:</p>
1710
1709
1711
-
<p>Frame matching follows an order of precedence, first attempting to match on a particular <code>@id</code>, then
1712
-
a particular <code>@type</code> (or lack of <code>@type</code>), then by matching on any or all
1713
-
of a set of properties, if neither <code>@id</code>, nor <code>@type</code> are in the frame.</p>
1710
+
<p>All properties, including <code>@id</code> and <code>@type</code>, but no other <a>keywords</a> are considered
1711
+
whem matching a frame..</p>
1714
1712
1715
1713
<ol>
1716
-
<li><var>node</var> matches if it has an <code>@id</code> property value
1717
-
which is also a value of the <code>@id</code> property in <var>frame</var>.
1718
-
Otherwise, <var>node</var> does not match if <var>frame</var> has a non-empty
1719
-
<code>@id</code> property, other than an empty <a>dictionary</a>.
1720
-
Otherwise, frame must not have a <code>@id</code> property; continue to the next step.
1721
-
<divclass="note">Framing works on <a>map of flattened subjects</a>,
1722
-
and the act of flattening ensures that all subjects have an
1723
-
<code>@id</code> property; thus the <code>"@id": []</code> pattern would
1724
-
never match any <a>node object</a>. The <code>"@id": [{}]</code> pattern would
1725
-
match any <a>node object</a> and is equivalent to not specifying a
1726
-
<code>@id</code> property in <var>frame</var> at all</div>
1727
-
</li>
1728
-
<li><var>node</var> matches if frame has no non-<code>keyword</code> properties.</li>
1729
-
<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.
1730
-
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.
1714
+
<li><var>node</var> matches if frame has no properties.</li>
1715
+
<li>If <var>requireAll</var> is <strong>true</strong>, <var>node</var> matches if all properties (<var>property</var>)
1716
+
in <var>frame</var> match any of the following conditions.
1717
+
Or, if <var>requireAll</var> is <strong>false</strong>, if any of the properties (<var>property</var>)
1718
+
in <var>frame</var> match any of the following conditions.
1731
1719
For the <var>values</var> of each <var>property</var> from <var>frame</var> in <var>node</var>:
1732
1720
<ol>
1733
-
<li>If <var>property</var> is <code>@type</code>:
1721
+
<li>If <var>property</var> is <code>@id</code>:
1722
+
<ol>
1723
+
<li><var>property</var> matches if the <code>@id</code> property in frame includes any <a>IRI</a> in <var>values</var>.</li>
1724
+
<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>
1725
+
</ol>
1726
+
<divclass="note">Framing works on <a>map of flattened subjects</a>,
1727
+
and the act of flattening ensures that all subjects have an
1728
+
<code>@id</code> property; thus the <code>"@id": []</code> pattern would
1729
+
never match any <a>node object</a>. The <code>"@id": [{}]</code> pattern would
1730
+
match any <a>node object</a> and is equivalent to not specifying a
1731
+
<code>@id</code> property in <var>frame</var> at all</div>
1732
+
</li>
1733
+
<li>Otherwise, if <var>property</var> is <code>@type</code>:
1734
1734
<ol>
1735
1735
<li><var>property</var> matches if the <code>@type</code> property in frame includes any <a>IRI</a> in <var>values</var>.</li>
1736
1736
<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>
1737
1737
<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>
1738
1738
<li>Otherwise, <var>property</var> does not match.</li>
1739
1739
</ol>
1740
1740
</li>
1741
+
<li>If <var>property</var> is <code>@id</code> or <code>@type</code> and does not match,
1742
+
<var>node</var> does not match, and processing is terminated.</li>
1741
1743
<li>Otherwise, the value of <var>property</var> in <var>frame</var> MUST be empty, or an array
1742
1744
containing a valid <a>frame</a>.</li>
1743
1745
<li><var>property</var> matches if <var>values</var> is empty, or non existent,
@@ -2194,6 +2196,8 @@ <h2>Changes since JSON-LD Community Group Final Report</h2>
2194
2196
evaluating test results have been updated accordingly.</li>
2195
2197
<li>The IANA registration is changed from <code>application/ld-frame+json</code> to
2196
2198
<code>application/ld+json</code> with a required <code>profile</code> parameter.</li>
2199
+
<li>The <a>require all flag</a> now needs all properties to be present, including
2200
+
<code>@id</code> and <code>@type</code>.</li>
2197
2201
<li>Removed <code>@first</code> and <code>@last</code> values for the
2198
2202
<a>object embed flag</a> in favor of <code>@once</code>.</li>
0 commit comments