在SPARQL中使用数值作为字符串值

在SPARQL中使用数值作为字符串值,sparql,linked-data,Sparql,Linked Data,可以在SPARQL查询中以某种方式使用数值作为字符串值吗?例如,考虑以下RDF数据、查询和期望结果: 知识库 在RDF中,所有文字都有一个可以通过函数获得的词汇形式。SPARQL还包括某些文字的速记。例如,您可以编写1而不是“1”^^xsd:integer,但它们是一样的,您可以通过执行str(1)或str(“1”^^xsd:integer)来获得“1”。这意味着你可以用str做你想做的事情,并且: 选择xy何处{ 值?x{1}#——缩写为“1”^^xsd:integer 值?y{2.5}#——

可以在SPARQL查询中以某种方式使用数值作为字符串值吗?例如,考虑以下RDF数据、查询和期望结果:

知识库
在RDF中,所有文字都有一个可以通过函数获得的词汇形式。SPARQL还包括某些文字的速记。例如,您可以编写1而不是“1”^^xsd:integer,但它们是一样的,您可以通过执行str(1)str(“1”^^xsd:integer)来获得“1”。这意味着你可以用str做你想做的事情,并且:

选择xy何处{
值?x{1}#——缩写为“1”^^xsd:integer
值?y{2.5}#——是“2.5”的缩写^xsd:decimal
结合(concat(str(?x),“-”,str(?y))为?xy)
}

即使文本的词汇形式对于该数据类型不合法,这也应该有效,例如在您的数据中,您有“10,0”^^xd:float,它应该是“10.0”^^xsd:float,带有点()而不是逗号()。(我知道分隔符有不同的约定,但SPARQL使用点。)

@prefix gr:  <http://purl.org/goodrelations/v1#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.

:o a gr:QuantitativeValueFloat;
     gr:hasMinValueFloat "1,0"^^xsd:float
     gr:hasMaxValueFloat "10,0"^^xsd:float
-----------------
| o  | v        | 
=================
| :o | 1,0-10,0 | 
-----------------
------------
| xy       |
============
| "1--2.5" |
------------