- From: Gregory Williams <greg@evilfunhouse.com>
- Date: Wed, 24 Nov 2010 13:40:32 -0500
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
On Nov 24, 2010, at 1:12 PM, Steve Harris wrote:
> On 2010-11-24, at 15:20, Andy Seaborne wrote:
>
>> Practicality suggests simple literals are important.
>> We can overlay on XSD F&O so for example:
>>
>> CONCAT("a"^^xsd:string, "b"^^xsd:string) -> "ab"^^xsd:string
>> CONCAT("a", "b") -> "ab"
>> CONCAT("a"^^xsd:string, "b") -> "ab"^^xsd:string (?? choice point)
I think I'd want this to produce a simple literal, but as Steve says, without experience here it's hard to know.
>> CONCAT("a"@en, "b"@fr) -> error? (choice point [*])
>> CONCAT(str("a"@en), str("b"@fr)) -> "ab"
>>
>> [*] lang tag support in comparisons etc is not required by base SPARQL so it's an error. The question is whether to provide guidance to implementations that wish to provide it.
>
> Re. [*], for impl's which choose to implement it, I would favour "ab" as a result. We use language tags quite a bit, and though we haven't been able to concatenate them up to now, I would like/expect CONCAT("a"@en, "b"@fr) -> "ab". Less straightforward is CONCAT("a"@en", "b"@en), should that be "ab"@en, or "ab". Dropping the lang tag in all cases seems fine to me.
I also would prefer CONCAT("a"@en, "b"@fr) -> "ab". I have no preference on whether concat of two literals with the same language tag should yield a language tagged literal.
> What about CONCAT("1"^^xsd:integer, "2"^^xsd:integer), following F&O strictly it would be "12"^^xsd:string I believe.
I'm a bit freaked out that this is going to cause confusion if + is also being used for string concat (assuming we follow the strawpoll support for overloading +). + would yield addition over xsd:integers, while the CONCAT() syntax would yield "12" with xsd:integers. Something doesn't seem right about that.
>> Whether the choice is by new URIs for the functions or punning on XSD F&O is part of this decision point.
>>
>> Suggestion:
>> 1/ Keywords as below. No dateTime functions.
I'm mostly indifferent to whether these functions are available as keywords, but if they are I support not having keywords for the dateTime functions.
>> 2/ sparqlfn: URIs for all function (our namespace and URIs)
Yes.
>> 3/ Definition as XSD F&O except work on simple literals as noted.
>> 4/ Documentation reference XSD F&O for each function.
I don't have strong feelings one way or another about the xsd:string stuff that's described in F&O. I just want to see support for simple literals with the string functions.
>> 7.4.3 fn:substring
>> Two forms /2 and /3
>> SUBSTRING
>> Note it's one-based counting and it's (index, length) unlike some languages.
One-based? Ick! :)
>> 3. fn:error
>> ERROR()
>> ERROR(string)
Has this been discussed before? I don't recall what this is meant to do.
.greg
Received on Wednesday, 24 November 2010 18:41:08 UTC