- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Wed, 25 Jan 2006 13:14:30 -0500
- To: Fred Zemke <fred.zemke@oracle.com>
- Cc: public-rdf-dawg-comments@w3.org
- Message-ID: <20060125181430.GC412@w3.org>
Oops, forgot to ask if this adequately addresses your comments. Our
process requires that we track the resolution of comments. (The "[OK?]"
in the subject indicates that I think I have addressed them.) If you
believe that this message resolves this issue, please indicate so in a
reply. If you wish to cater to our tracking system, you can prefix
your reply subject with "[CLOSED]". Thank you for your attention.
On Wed, Jan 25, 2006 at 11:45:30AM -0500, Eric Prud'hommeaux wrote:
> On Thu, Jan 12, 2006 at 09:37:32AM -0800, Fred Zemke wrote:
> >
> > 11.2.1 Invocation
> > The second bullet says "For functions and operators where the result
> > type is specified as xsd:boolean, the effective boolean value...is
> > calculated". Quite apart from whether you retain the notion of
> > effective boolean value, this bullet appears to be either incorrectly
> > worded or misplaced. The issue is whether this bullet item is talking
> > about the arguments or the result. As worded, it refers to the result
> > type, so it seems to be saying that the effective boolean value of the
> > result is computed. However, the result itself is not computed until
> > bullet four. Based on the placement of the bullet, possibly what is
> > meant is that the effective boolean type of the argument(s) is
> > computed. But in that case, the bullet should not be activated based on
> > the result type. For example, consider the isIRI function. The
> > result type is xsd:boolean, but you do not want to compute the effective
> > boolean value of the argument. On the other hand, consider A || B
> > or A && B. For these operators, you do want to convert the arguments
> > to effective boolean values. But this can be decided, not on the
> > basis of the result type, but rather on the basis of the argument type.
> > Probably what you mean is "For each argument whose type is xsd:boolean, the
> > effective boolean value of the argument is computed."
>
> Following XQuery/XPath's lead, SPARQL does not do implicit EBV
> calculation except on OR, AND, NOT and FILTER
>
> Section 11 of the current editor's draft has been approved by the work
> group (see [ISS]). The current Filter Evaluation rules [FIL] and the
> EBV rules [EBV] should constrain the definition of EBV to those times
> where a boolean is needed:
>
> [[ [FIL]
> 11.2 Filter Evaluation
>
> SPARQL provides a subset of the functions and operators defined by
> XQuery Operator Mapping. XQuery 1.0 section 2.2.3 Expression
> Processing describes the invocation of XPath functions. The following
> rules accommodate the differences in the data and execution models
> between XQuery and SPARQL:
>
> ...
> * Functions invoked with an argument of the wrong type (except
> xsd:boolean) will produce a type error. Functions requiring an
> argument of type xsd:boolean are coerced to xsd:boolean using the
> EBV rules in section 11.2.2 .
> ]]
>
>
> [[ [EBV]
> 11.2.2 Effective Boolean Value (EBV)
>
> The XQuery Effective Boolean Value rules rely on the definition of
> XPath's fn:boolean. The following rules reflect the rules for
> fn:boolean applied to the argument types present in SPARQL Queries:
>
> * If the argument is a typed literal with a datatype of
> xsd:boolean, the EBV is the argument.
> * If the argument is a plain literal or a typed literal with a
> datatype of xsd:string, the EBV is false if the operand value has
> zero length; otherwise the EBV is true.
> * If the argument is a numeric type or a typed literal with a
> datatype derived from a numeric type, the EBV is false if the
> operand value is NaN or is numerically equal to zero; otherwise
> the EBV is true.
> * All other arguments produce a type error.
>
> An EBV of true is represented as a typed literal with a datatype of
> xsd:boolean and a lexical value of "true"; an EBV of false is
> represented with a lexical value of "false".
>
> [Informative: Effective boolean value is used to calculate the
> arguments to the logical functions logical-and, logical-or, and
> fn:not, as well as evaluate the result of a filter.]
> ]]
>
> Consistent with the informative note at the end, EBV is only mentioned
> in the evaluation of a FILTER, in logical-or and logical-and. The
> definition leaves room for extension functions to take a boolean
> argument and automatically invoke the EBV rules.
>
> [ISS] http://www.w3.org/2001/sw/DataAccess/issues#valueTesting
> [FIL] http://www.w3.org/2001/sw/DataAccess/rq23/#evaluation
> [EBV] http://www.w3.org/2001/sw/DataAccess/rq23/#ebv
--
-eric
office: +81.466.49.1170 W3C, Keio Research Institute at SFC,
Shonan Fujisawa Campus, Keio University,
5322 Endo, Fujisawa, Kanagawa 252-8520
JAPAN
+1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell: +81.90.6533.3882
(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.
Received on Wednesday, 25 January 2006 18:14:34 UTC