【发布时间】:2018-08-24 14:43:34
【问题描述】:
我正在尝试使用此查询同时提取有关 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 关键字时它可以正常工作,有人可以向我解释这种行为背后的原因吗?
- 端点 Virtuoso 版本:07.10.3211
编辑:
部分复杂性是由于这只是一个更大查询的示例。
@TallTed,谢谢你的回答,当我应用你提出的方法来提取更多信息时,我没有得到想要的结果。例如in this example 基因OB12G15100 编码一种蛋白质,但它不会出现在结果中,除非I comment the OPTIONAL of gene_lbl,据我所知,因为gene_lbl 是可选的,它可以被忽略,因此,显示其余查询的结果,但它没有这样做,我不知道为什么。
请原谅我缺乏知识。
【问题讨论】:
-
请注意,问题编辑不会导致警报。直到现在我才知道你对你的问题的改变,当我偶然注意到它时。您所描述的奇怪结果的原因似乎是旧版本 Virtuoso 中的错误(仍在 AgroLD 端点上使用),该错误已在更新的版本中得到解决,已建议更新。