维基数据查询服务,过滤高于/低于某个值的值/字符串

时间:2016-03-16 13:47:31

标签: sparql rdf wikidata

我提出了一个查询,其中显示了在分类单元中找到的所有项目。 '沙眼衣原体D / UW-3 / CX'。这些项目必须具有属性P644(基因组开始)和P645(基因组末端)。到目前为止这个工作。但后来我想根据<基因组开始'的值来过滤这些项目。和'基因组结束'。在我的例子中,我想收到所有项目,其中基因组开始'高于' 100'和'基因组结束'低于' 3000'。但它没有用。我没有以正确的方式使用FILTER吗?

以下是我在维基数据查询服务页面中的代码: Wikidata Query Service

SELECT ?item ?genomic_start ?genomic_end
Where{
?item wdt:P703 wd:Q20800373. #P703:found in taxon
?item wdt:P644 ?genomic_start.
?item wdt:P645 ?genomic_end.
FILTER (?genomic_start > "100").
FILTER (?genomic_end < "3000").
}

1 个答案:

答案 0 :(得分:5)

您需要先将值转换为int才能使用&gt;或&lt;:

SELECT ?item ?genomic_start ?genomic_end
Where{
?item wdt:P703 wd:Q20800373. #P703:found in taxon
?item wdt:P644 ?genomic_start.
?item wdt:P645 ?genomic_end.
FILTER (xsd:integer(?genomic_start) > 100).
FILTER (xsd:integer(?genomic_end) < 3000). 
}