2016-03-16 2 views
2

Я сделал запрос, который показывает все элементы, которые «находятся в таксоне» «Chlamydia trachomatis D/UW-3/CX». Эти предметы должны иметь свойства P644 (геномный старт) и P645 (геномный конец). Пока это работает. Но затем я хотел отфильтровать эти элементы в зависимости от значений «геномного старта» и «геномного конца». В моем примере я хотел получить все предметы, где «геномный старт» выше, чем «100», а «геномный конец» ниже «3000». Но это не сработало. Я не использую FILTER правильно?Служба запросов Wikidata, фильтрация значений/строк, которые лежат выше/ниже определенного значения.

Вот мой код непосредственно в запросе службы Page викиданной: 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"). 
} 

ответ

4

Вы должны сначала преобразовать значение в целом, чтобы иметь возможность использовать> или <:

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). 
} 
+0

Большое вам спасибо! Ваш ответ - именно то, что я искал! – TIlls

+0

Я бы сказал, что в этом случае Wikidata нарушается, так как он хранит число в виде строки. Преобразование не должно быть необходимым. –

 Смежные вопросы

  • Нет связанных вопросов^_^