运行 获取浮点值的 sparql 查询
Running sparql query for getting float values
您好下面是我在 https://dbpedia.org/sparql 上执行的 sparql 查询。但是,由于 grossincome 中存在某些字符值,我收到错误 "Invalid floating point value converting 'United States:'" 并且如果我将查询更改为 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').
}
DBpedia 中的数据并不完美,因为您已经认识到它对于未类型化的 属性 dbp:gross
来说非常异构。其中,它包含 BDT 2.52 crores
、,994,648 USD
、AU8,000
、6892098.0
等值,因此几乎不可能通过 SPARQL 查询处理不同的货币 returns 相同货币的值。
我的意思是,您必须了解所有不同的货币和格式,然后分别处理。但这更多是应用程序逻辑的任务,而不是查询本身。
或者,您可以尝试使用数据 属性 http://dbpedia.org/ontology/gross
,它应该与 $ 中的值相关。至少它的标签 "gross ($)" 是这么写的。
您好下面是我在 https://dbpedia.org/sparql 上执行的 sparql 查询。但是,由于 grossincome 中存在某些字符值,我收到错误 "Invalid floating point value converting 'United States:'" 并且如果我将查询更改为 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').
}
DBpedia 中的数据并不完美,因为您已经认识到它对于未类型化的 属性 dbp:gross
来说非常异构。其中,它包含 BDT 2.52 crores
、,994,648 USD
、AU8,000
、6892098.0
等值,因此几乎不可能通过 SPARQL 查询处理不同的货币 returns 相同货币的值。
我的意思是,您必须了解所有不同的货币和格式,然后分别处理。但这更多是应用程序逻辑的任务,而不是查询本身。
或者,您可以尝试使用数据 属性 http://dbpedia.org/ontology/gross
,它应该与 $ 中的值相关。至少它的标签 "gross ($)" 是这么写的。