Jan Wielemaker wrote: > Hi, > > I'm writing a Prolog parser for SPARQL based on the latest document > (April 6). Aim is to provide SPARQL support on top of the SWI-Prolog > semantic web libraries, but first some work to do ... Cool! > > To get the grammar debugged I'm using the SyntaxDev test-sets. I > understand they have no formal meaning and are not approved. Still, > I'd expect them to be mostly correct and there are only few syntax > tests in the rest of the test-set. > > I've trouble with the test 'syntax-keywords-01.rq': > > ================================================================ > SELECT * > WHERE { ?x FILTER:foo ?z FILTER (?z) } > ================================================================ > > FILTER allows for a bracketed expression and function calls, but reading > through the syntax this only allows for relation expressions. Skimming > the rest of the document, I have the impression the "FILTER (?z)" is > illegal. Am I right? > > Cheers -- Jan The expression in a FILTER evaluates to some value that is then treated as an Effecective Boolean Value (that is, the same as in XPath/XQuery functions and operators). So ?z is an expression, albeit a simple one. It is legal. Details: http://www.w3.org/2001/sw/DataAccess/rq23/#ebv Summary of the BEV rules: + Booleans are true/false + The plain literal "" is false as is xsd:string "", else any literal has a BEV of true. + Numbers have a BEV of true unless 0 when they have a BEV of false. + Else type error AndyReceived on Friday, 9 June 2006 13:48:07 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:14:50 GMT