Я пытаюсь извлечь информацию о 2 генах одновременно, используя этот запрос:
BASE <http://www.southgreen.fr/agrold/>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX vocab:<vocabulary/>
SELECT DISTINCT ?gene ?gene_lbl ?pathway
WHERE{
VALUES ?gene {<http://identifiers.org/ensembl.plant/BGIOSGA000040>
<http://identifiers.org/ensembl.plant/Sb01g003700.1>}
{
GRAPH ?graph1{
OPTIONAL{?gene rdfs:label ?gene_lbl.}
}
}
UNION
{
GRAPH ?graph2{
OPTIONAL{?gene vocab:is_agent_in ?pathway.}
}
}
}
, но выдает следующую ошибку:
Virtuoso 37000 ОшибкаSP031: Компилятор SPARQL: Внутренняя ошибка: sparp_gp_attach_filter_cbk (): попытка присоединить фильтр с использованной переменной
. Он работает без проблем, когда я запускаю его с использованием только одного гена ИЛИ, когда я удаляю ключевое слово OPTIONAL
Может кто-нибудь объяснить мне причину этого поведения?
РЕДАКТИРОВАТЬ :
Часть сложности связана с тем, что это всего лишь пример более крупного запроса.
@ TallTed , спасибо за ответ, когда яприменить предложенный метод для получения дополнительной информации я не получаю желаемых результатов.например, в этом примере ген OB12G15100
кодирует белок, но он не обнаруживается в результатах, если только если я прокомментирую ФАКУЛЬТАТИВНО для gene_lbl , насколько я знаю,поскольку gene_lbl
является необязательным, его можно игнорировать, следовательно, показывая результаты остальной части запроса, но это не так, и я не знаю почему.
Пожалуйста, прости меня за недостаток знаний.