- From: Dave Beckett <dave.beckett@bristol.ac.uk>
- Date: Wed, 10 Aug 2005 17:05:47 +0100
- To: DAWG public list <public-rdf-dawg@w3.org>
I was wondering what changed as in the current rq23 ArgList is optional
for function calls and this seemed like a syntax change. This took a
little digging into the record so I'm recording what I found.
I finally tracked it down to rq23 between CVS 1.451 and 1.452:
[[
Revision 1.452 2005/08/04 10:57:36 aseaborne
+ Added "_" to start of variable names
~ Tidied up by intrpducing NCCHAR1p and making NCCHAR1 be NCCHAR1p | '_'
]]
(for reference the last WD was around 1.432).
This change seems to do a bit more than that:
* FunctionCall is removed from Constraint
* ConstructTemplate uses ConstructTriples for it's inner content
* ConstructTriples added with content from above.
* GraphTerm inlines the RDFTerm token and adds '(' ')' (empty
collection)
* BuiltInCall renamed from CallExpression and FunctionCall is removed as
an option.
* PrimaryExpression:
CallExpression renamed to BuiltInCall
Adds IRIref ArgList?
Adds RDFLiteral | NumericLiteral | BooleanLiteral | BlankNode | Var
Most of that is tidying or reasonable change but the addition that is
the problem is IRIref ArgList? which is not the same as FunctionCall:
IRIref ArgList which I'm guessing it was intended to be.
If you want a test:
PREFIX my: <http://example.org/>
SELECT *
WHERE {
?s ?p ?o .
FILTER my:function
}
is legal according to my reading of rq23 whereas it used to be illegal.
I assume the additional '?' is a mistake or have I missed something?
Maybe just using FunctionCall instead would be easier.
Dave
Received on Wednesday, 10 August 2005 16:05:57 UTC