Review of RQ23 section 11, Testing Values

Hopefully completes action from telecon of 2005-02-08.

As of revision 1.202

Things marked Minor: just struck me as odd, others are wrong and should be
fixed or explained.


It's allready been noted, but its particularly clear in this part of the
document; there are a clutch of things that look function-like, eg
FUNC(), fn:func() and &fn:func(). I would have thought these could be
reduced to one or two forms.

Section 11.1

Minor (maybe): I recommend against specifying that operators can work on
both float and double. Universally prmoting floats to doubles in the query
language is far less confusing. It avoids problems such as

_:a  rdf:value	"3" .

 WHERE (?x rdf:value ?val)
   AND xsd:float(?x) == 3.0

which produces no matches in IEEE-754 compliant implementations, though it
looks cromulent.

Section 11.1.1

"This is accomplished by promoting the arguments to the lowest common
type." should that be "highest common type"? If not, list order should be

Table 11.1

Minor: == can be applied to URIs and numeric arguments, but not strings or
datetimes. Seems odd.

Section 11.2.1.*

Minor: sections are titled 11.2.1.* sop:interCapped, but sop: is not used
in examples and the keywords are in CAPS

Minor: redundant {}'s round stement patterns.


Typo in query, I think it should be something like:

PREFIX foaf: <>
SELECT ?name
WHERE  ( ?x foaf:name ?name )
       OPTIONAL ( ?x foaf:mbox ?mbox )
   AND BOUND(?mbox)

Ditto for 2nd query. There a load of extra paranes and braces in there
that dont balance.


Results should be
	"Alice"  |  <alice@work.example>


Typo. Query is

	PREFIX foaf: <>
	SELECT ?name1
	 WHERE { ( ?x foaf:name  ?name ) }
	   AND LANG(?mbox) EQ "ES"

should probably be

	PREFIX foaf: <>
	SELECT ?name ?mbox
	 WHERE ( ?x foaf:name ?name )
	       ( ?x foaf:mbox ?mbox )
	   AND LANG(?name) EQ "ES"

to match the results, and because ?mbox cant have a LANG.

Table 11.2

Casting table has some odd-looking results in it, eg. casting r:Literals
to xs:double is down as No, but xs:String to xs:double is down as Maybe.
Ditto for str->URI and ltrl->URI.

Section 11.3

Syntax is given as
	&qname(?var or constant, ?var or constant , ...)
but the example is
	fn:matches(STR(?mbox), "@work.example$")
ie. no & and fn: is not declared, STR(?mbox) is neither a ?var or constant

fn:matches takes a pattern for its 2nd argument, so I think this should be
/@work.example$/ to match other examples.


Received on Wednesday, 9 February 2005 17:36:22 UTC