运行sparql查询以获取浮点值

运行sparql查询以获取浮点值,sparql,dbpedia,Sparql,Dbpedia,下面是我正在执行的sparql查询。但是,由于grossincome中存在一些字符值,因此我得到了一个错误“无效浮点值转换‘美国:’”,如果我将查询更改为str(?grossincome)as?grossincome1),那么它将正确执行。我的问题是如何在同一比例上转换所有货币以避免此错误 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf: <http://www.w3.org/1999/02/2

下面是我正在执行的sparql查询。但是,由于grossincome中存在一些字符值,因此我得到了一个错误“无效浮点值转换‘美国:’”,如果我将查询更改为str(?grossincome)as?grossincome1),那么它将正确执行。我的问题是如何在同一比例上转换所有货币以避免此错误

 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 PREFIX dcterms: <http://purl.org/dc/terms/>    
 PREFIX dbo: <http://dbpedia.org/ontology/>
 PREFIX dbp: <http://dbpedia.org/property/>
 PREFIX foaf: <http://xmlns.com/foaf/0.1/>
 PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

 select distinct (str(?resource) as ?movietitle) (xsd:float(?budget) as ?budget1) (xsd:float(?grossincome) as ?grossincome1) (str(?Country) as ?country1)  ?ReleaseDate where {
            ?movie foaf:name ?resource.
           ?movie dbo:budget ?budget.
           ?movie dbp:gross ?grossincome.
           ?movie dbp:country ?Country.
           ?movie dbo:releaseDate ?ReleaseDate.
           FILTER (lang(?resource) = 'en').
  }
前缀rdfs:
前缀rdf:
前缀dcterms:
前缀dbo:
前缀dbp:
前缀foaf:
前缀xsd:
选择distinct(str(?resource)作为movietitle(xsd:float(?budget)作为budget1)(xsd:float(?grossincome)作为grossincome1)(str(?Country)作为country1)发布日期,其中{
?电影foaf:名称?资源。
?电影dbo:预算?预算。
电影dbp:格罗斯?格罗森康。
?电影dbp:国家?国家。
?电影dbo:releaseDate?releaseDate。
过滤器(lang(?resource)='en')。
}

DBpedia中的数据并不完美,因为您已经认识到它对于非类型属性的异构性
dbp:gross
。除其他外,它还包含
2.52亿孟加拉塔卡
$34994648美元
AU$178000
6892098.0
,因此几乎不可能通过SPARQL查询处理不同的货币,从而返回相同货币的值

我的意思是,你必须知道发生的所有不同的货币和格式,然后分别处理。但这更多的是应用程序逻辑的任务,而不是查询本身


或者,您可以尝试使用数据属性
http://dbpedia.org/ontology/gross
相反,它应该与美元中的值相关。至少这是它的标签“gross($)”所说的。

DBpedia中的数据并不完美,因为您已经认识到它对于非类型属性的异构性。除其他外,它还包含
2.52亿孟加拉塔卡
$34994648美元
AU$178000
6892098.0
,因此几乎不可能通过SPARQL查询处理不同的货币,从而返回相同货币的值

我的意思是,你必须知道发生的所有不同的货币和格式,然后分别处理。但这更多的是应用程序逻辑的任务,而不是查询本身

或者,您可以尝试使用数据属性
http://dbpedia.org/ontology/gross
相反,它应该与美元中的值相关。至少这是它的标签“总值($)”所说的