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

fn:concat("abc","@en") -> "a...@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




Reply via email to