Re: FILTER (q:name())

Jan Wielemaker wrote:
> Hi,
> 
> One more:
> 
> 114 ?- show_test('syntax-function-01.rq').
> PREFIX q: <http://example.org/>
> SELECT * WHERE { FILTER (q:name()) }
> 
> Following rules Constraint [27] and FunctionCall [28], I think this is not
> allowed by the syntax.  Should be FILTER q:name().  Right?
> 
> 	Cheers --- Jan

Both are legal:  A FILTER can take a bare function call, including the 
built-in functions, or a bracketted expression.  A bracketted expression can 
be (x:func())

[56] BrackettedExpression ::= '(' Expression ')'

and Expression eventually gets to PrimaryExpression:

[55] PrimaryExpression   ::=  BrackettedExpression | BuiltInCall | 
IRIrefOrFunction | RDFLiteral | NumericLiteral | BooleanLiteral | BlankNode | Var

[59] IRIrefOrFunction    ::= 	IRIref ArgList?

	Andy

Received on Friday, 9 June 2006 13:51:48 UTC