gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:19:52 25 4
gpt4 key购买 nike

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

知识库

@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

询问

PREFIX gr: <http://purl.org/goodrelations/v1#>    
SELECT ?o ?v
WHERE {
?o a gr:QuantitativeValueFloat;
gr:hasMinValueFloat ?vMin;
gr:hasMaxValueFloat ?vMax.
CONCAT((?vMin, ?vMax) as ?v)
}

理想结果
-----------------
| o | v |
=================
| :o | 1,0-10,0 |
-----------------

最佳答案

在 RDF 中,所有文字都有一个词法形式,可以通过 str 获得。功能。 SPARQL 还包括某些类型文字的简写。例如,你可以写 1 而不是 "1"^^xsd:整数 ,但它们是一样的,你可以得到 “1”通过做 str(1) str("1"^^xsd:整数) .这意味着您可以使用 做您想做的事情str concat :

select ?xy where {
values ?x { 1 } #-- short for "1"^^xsd:integer
values ?y { 2.5 } #-- short for "2.5"^^xsd:decimal

bind(concat(str(?x),"--",str(?y)) as ?xy)
}
------------
| xy |
============
| "1--2.5" |
------------

这应该有效,即使文字的词法形式对该数据类型不合法,就像在您拥有 的数据中一样。 "10,0"^^xd:float ,应该是 "10.0"^^xsd:float , 用点 ( . ) 而不是逗号 ( , )。 (我意识到分隔符有不同的约定,但 SPARQL 使用点。)

关于sparql - 在 SPARQL 中使用数字值作为字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30264199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com