【问题标题】:SPARQL error attempt to attach a filter with used variableSPARQL 错误尝试使用使用的变量附加过滤器
【发布时间】: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 关键字时它可以正常工作,有人可以向我解释这种行为背后的原因吗?

编辑

部分复杂性是由于这只是一个更大查询的示例。

@TallTed,谢谢你的回答,当我应用你提出的方法来提取更多信息时,我没有得到想要的结果。例如in this example 基因OB12G15100 编码一种蛋白质,但它不会出现在结果中,除非I comment the OPTIONAL of gene_lbl,据我所知,因为gene_lbl 是可选的,它可以被忽略,因此,显示其余查询的结果,但它没有这样做,我不知道为什么。

请原谅我缺乏知识。

【问题讨论】:

  • 请注意,问题编辑不会导致警报。直到现在我才知道你对你的问题的改变,当我偶然注意到它时。您所描述的奇怪结果的原因似乎是旧版本 Virtuoso 中的错误(仍在 AgroLD 端点上使用),该错误已在更新的版本中得到解决,已建议更新。

标签: sparql virtuoso


【解决方案1】:

我相信应该鼓励您的目标端点(现在为 running a 3 year old version)升级到 current Virtuoso Open Source Edition, 07.20.3229 a/k/a 7.2.5.1。请注意,your original querymy revision 在 LOD 云缓存上执行时都没有错误(在 AgroLD 中缺少一些数据,因此这些数据无法提供您想要的结果)。

也就是说,我认为您的原始查询过于复杂。注意this revision gets results from AgroLD with no problem --

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> }
    OPTIONAL{ ?gene  rdfs:label  ?gene_lbl }
    OPTIONAL{ ?gene  vocab:is_agent_in  ?pathway }
}

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多