Semantics of boolean operators

I was very pleased to read the new formal semantics for XQuery.
It helped me understand XQuery better. I have a comment though:

In section 6.2.4.1 (boolean operators) you expressed the semantics of
boolean operators using (simulated) existential quantification.
This may not work very well for the following query:

for $a in //book
where $a/author/firstname/text() = "John"
  and $a/author/lastname/text() = "Smith"
return $a/title

because it will succeed for the following book:

<book>
  <author><firstname>John<firstname/><lastname>Walter</lastname></author>
  <author><firstname>Jim<firstname/><lastname>Smith</lastname></author>
  <title>...</title>
</book>

An alternative is to enforce the results of [[ E1 ]] and [[ E2 ]] in
[[ E1 = E2 ]] to be singletons. If this is not what the user intended,
then she may still use explicit existential quantification in the query.
I don't feel very strongly about this, but whatever you choose,
you should make it clear with examples.

By the way, you don't need the outer semantic brackets [[]] at the
righthand sides of the equations in 6.2.4.1.

A minor typo: At the end of 6.2.1.3:
                 [[ E/DATA() ]]  ==> for $v1 in [[ E ]] return 
                                       typed-value([[ E ]])
should be:
                 [[ E/DATA() ]]  ==> for $v1 in [[ E ]] return 
                                       typed-value($v1)

Best regards
Leonidas Fegaras
Department of Computer Science and Engineering
The University of Texas at Arlington
416 Yates Street, 301 Nedderman Hall
P.O. Box 19015
Arlington, TX 76019

email:    fegaras@cse.uta.edu
web:      http://lambda.uta.edu/
phone:    (817) 272-3629
fax:      (817) 272-3784

Received on Tuesday, 19 June 2001 18:28:31 UTC