Skip to content

Conversation

@hartig
Copy link
Contributor

@hartig hartig commented Dec 12, 2025

This PR implements step 5 of #302. That is, it adds the formal definition of the evaluation of EXISTS expressions into Section 17.4.1.4 NOT EXISTS and EXISTS.

Additionally, the PR removes some text that is now obsolete in that section, and it adds a Note at the beginning of Section 18.6.2 Evaluation Semantics to clarify that the evaluation of EXISTS changes the context solution mapping μctx that is passed to the eval function.


Preview | Diff

Copy link
Member

@rubensworks rubensworks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should also make sure that this update to the definition of EXISTS is also mentioned in the changelog. (fine for me if you prefer doing that in the final PR for #302)

Co-authored-by: Thomas Tanon <thomas@pellissier-tanon.fr>
@hartig
Copy link
Contributor Author

hartig commented Dec 12, 2025

We should also make sure that this update to the definition of EXISTS is also mentioned in the changelog. (fine for me if you prefer doing that in the final PR for #302)

Good point. I have added this as another step in #302 (which may be implemented within the same PR as the second-to-last step).

Copy link
Member

@TallTed TallTed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More consistent code fencing

Comment on lines +5693 to +5694
No additional binding of variables occurs. The <code>NOT EXISTS</code> form
translates into <code>fn:<a data-cite="XPATH-FUNCTIONS-31#func-not">fn:not</a>(EXISTS {...})</code>.</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
No additional binding of variables occurs. The <code>NOT EXISTS</code> form
translates into <code>fn:<a data-cite="XPATH-FUNCTIONS-31#func-not">fn:not</a>(EXISTS {...})</code>.</p>
No additional binding of variables occurs. The `NOT EXISTS` form
translates into <code>fn:<a data-cite="XPATH-FUNCTIONS-31#func-not">fn:not</a>(EXISTS {...})</cde>.</p>

Comment on lines +5700 to 5701
<p><code>NOT EXISTS { pattern }</code> is equivalent to <code><a data-cite="XPATH-FUNCTIONS-31#func-not">fn:not</a>(EXISTS { pattern
})</code>.</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<p><code>NOT EXISTS { pattern }</code> is equivalent to <code><a data-cite="XPATH-FUNCTIONS-31#func-not">fn:not</a>(EXISTS { pattern
})</code>.</p>
<p>`NOT EXISTS { pattern }` is equivalent to <code><a data-cite="XPATH-FUNCTIONS-31#func-not">fn:not</a>(EXISTS { pattern
})</code>.</p>

Comment on lines +5716 to +5717
<a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A|, <var>μ</var>) is not empty,
and</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A|, <var>μ</var>) is not empty,
and</li>
<a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A|, <var>μ</var>) is not empty</li>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants