嗨下面是我在https://dbpedia.org/sparql上执行的sparql查询。但是我收到一个错误“无效的浮点值转换'美国:'”,因为在grossincome中存在一些字符值,如果我将我的查询更改为str(?grossincome)为“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').
}
答案 0 :(得分:3)
DBpedia中的数据并不完美,因为您已经认识到它对于无类型属性dbp:gross
非常不同。其中,它包含BDT 2.52 crores
,$34,994,648 USD
,AU$178,000
,6892098.0
等值,因此几乎不可能通过SPARQL查询处理不同的货币,以便返回值以相同的货币。
我的意思是,您必须知道发生的所有不同货币和格式,然后分别处理每种货币和格式。但这更多的是应用程序逻辑的任务,而不是查询本身。
或者,您可以尝试使用数据属性http://dbpedia.org/ontology/gross
,这应该与$中的值相关。至少这是它的标签“毛($)”所说的。