Re: Using CONSTRUCT to add language tag?

fn:concat concentates strings but that does not mean it'll produce 
strings with a language tag.

fn:concat("abc","@en") -> "abc@en"

is a plain string that just happens to end in the characters "@en".

SPARQL 1.1 does introduce some constructors for RDF terms: one of them 
is STRLANG to make a string with language tag:

STRLANG("abc","en") -> "abc"@en

	Andy

On 23/05/2010 11:40 PM, Lee Feigenbaum wrote:
> In SPARQL 1.1 you'll be able to do this with a subquery, though it's not
> as succinct:
>
> PREFIX anrecs: <http://www.snee.com/ns/analystRatings#>
> PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
> CONSTRUCT {
> ?company anrecs:company ?coNameWithLanguageTag .
> }
> WHERE {
> {
> SELECT (fn:concat(?coName,"@en") AS ?coNameWithLanguageTag) WHERE {
> ?company anrecs:company ?coName .
> }
> }
>
> (fn:concat is not currently defined by SPARQL -- I expect a
> concatenation function like this will be defined and (as in this
> example) imported from XPath.)
>
> Lee
>
> On 5/23/2010 6:11 PM, Bob DuCharme wrote:
>> Does anyone have any suggestions about how a SPARQL CONSTRUCT query
>> might add language tags without using extensions? The query below works
>> with ARQ, but it uses the Jena extension LET and the concat() function:
>>
>> PREFIX anrecs: <http://www.snee.com/ns/analystRatings#>
>> PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
>> CONSTRUCT {
>> ?company anrecs:company ?coNameWithLanguageTag .
>> }
>> WHERE {
>> ?company anrecs:company ?coName .
>> LET (?coNameWithLanguageTag := fn:concat(?coName,"@en")) .
>> }
>>
>> thanks,
>>
>> Bob
>>
>>
>

Received on Monday, 24 May 2010 07:27:52 UTC