# RE: Fundimentle Predicate Problem or Bug??

 Subject: RE: Fundimentle Predicate Problem or Bug?? From: "Michael Kay" Date: Thu, 18 Sep 2008 16:02:48 +0100
```> It does pose an interesting question though, because in my case surely
>
> Race/RaceType &gt;= 'R' and Race/RaceType &lt;= 'R'
>
> AND
>
> Race/RaceType &gt;= 'R' or Race/RaceType &lt;= 'R'
>
> would do the same?

I don't think so. If there are two races, of RaceType A and B respectively,
then the first expression is false and the second is true.

> Which is fine in the XSLT world but try
> explaining that to the logic gurus!

Logic gurus have no problem with the idea that symbols mean whatever you
define them to mean. The people who have problems are those who believe that
symbols can only mean what you were taught at elementary school.

>
> The reason I struggled is because this is how SQL logic works
> and most proecdural languages I believe!

Yes, the "implicit existential quantification" is something many people
haven't encountered before, although it has been use for many years in
free-text retrieval query languages.
>
> I tried having a play with your suggestion comparing dates as
> dates, but couldn't get to work.  The reality is that I have
> two variables DATEFROM and DATETO, I can set these to xs:date
> okay, but how when with my example data expanded how do you do
>
> <xsl:for-each select="/ORCB082/ROWSET/ROW[Fixture/FixtureDate
> &gt;= \$DATEFROM and FixtureDate &lt;= \$DATETO and
>
> Race/RaceType &gt;= 'R' and Race/RaceType &lt;= 'R']" >
>
> It moans if I wrap xs:date around Fixture/FixtureDate
> beacuase there is more than one occurance.

A good way of doing this is to put the cast at the end of the path
expression:

Race/RaceType/xs:date(.) &gt;= xs:date('2008-09-16')

Alternatively, bite the bullet and make it explicit:

some \$R in Race/RaceType satisfies xs:date(\$R) ge xs:date('2008-09-16')

Michael Kay
http://www.saxonica.com/

```

### PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!