如何从SPARQL联邦查询返回特定变量(服务关键字)?

如何从SPARQL联邦查询返回特定变量(服务关键字)?,sparql,jena,arq,federated-queries,Sparql,Jena,Arq,Federated Queries,我使用联邦查询从远程服务器检索一些信息,但我不想检索我在联邦查询中处理的所有变量select*,我只想返回count变量。我该怎么做 代码: 再次运行explain时,我注意到当我在联邦查询中放置子查询时,变量?bp_iri没有被生物进程iri替换,如下图所示: 解释联邦查询中的子查询> 考虑到这一点,如何仅从联邦查询中检索计数 抱歉,这篇文章太长。如中所述,包括一些名义上可选的内容 注意-您的远程查询必须在远程端点上实际执行,否则将出现各种错误 这是您试图在上运行的查询- -结果是这样的- c

我使用联邦查询从远程服务器检索一些信息,但我不想检索我在联邦查询中处理的所有变量select*,我只想返回count变量。我该怎么做

代码:

再次运行explain时,我注意到当我在联邦查询中放置子查询时,变量?bp_iri没有被生物进程iri替换,如下图所示:

解释联邦查询中的子查询>

考虑到这一点,如何仅从联邦查询中检索计数

抱歉,这篇文章太长。

如中所述,包括一些名义上可选的内容

注意-您的远程查询必须在远程端点上实际执行,否则将出现各种错误

这是您试图在上运行的查询-

-结果是这样的-

count
"77633"xsd:int
-我发现,从一个层次来看,结果是一样的-

PREFIX    up: <http://purl.uniprot.org/core/> 
PREFIX taxon: <http://purl.uniprot.org/taxonomy/> 
PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX   owl: <http://www.w3.org/2002/07/owl#> 

SELECT (COUNT(DISTINCT ?protein) AS ?count) 
WHERE
  {
    ?sub_bp  (rdfs:subClassOf|owl:someValuesFrom)?  ?bp_iri .
    ?protein  up:classifiedWith  ?sub_bp .
    ?protein  up:organism        <http://purl.uniprot.org/taxonomy/10090> .
  }
我刚刚通过URIBurner.com运行了这个查询,它允许对经过身份验证的用户使用联邦SPARQL-

PREFIX    up: <http://purl.uniprot.org/core/> 
PREFIX taxon: <http://purl.uniprot.org/taxonomy/> 
PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX   owl: <http://www.w3.org/2002/07/owl#> 

SELECT *
WHERE
  {
    SERVICE <https://sparql.uniprot.org/sparql>
      {
        SELECT (COUNT(DISTINCT ?protein) AS ?count) 
        WHERE
          {
            ?sub_bp  (rdfs:subClassOf|owl:someValuesFrom)?  ?bp_iri .
            ?protein  up:classifiedWith  ?sub_bp .
            ?protein  up:organism        <http://purl.uniprot.org/taxonomy/10090> .
          }
      }
  }
这仍然会产生错误-

Virtuoso HTCLI错误HC001:HTTP客户端中的读取错误

-这表明,当您直接通过Uniprot服务器的web查询表单(对其SPARQL服务器使用JDBC)时,Uniprot服务器上有不同的设置,然后直接通过HTTP时,就像使用联邦SPARQL一样


我认为您需要的解决方案是一个本地Uniprot镜像,或者连接到公共Uniprot实例,该实例的权限/设置与主公共端点不同。

谢谢您,您的解释让我清楚地了解了一些我不知道的事情。不幸的是,这并没有解决我的问题,但我认为这是我的解释,因为我试图保持问题的简单,我跳过了一些细节。我用已完成的情况编辑了原始帖子。无论如何,谢谢你,这很有帮助!:-数据集中有多少个进程?Uniprot本体中有多少个过程?我认为这篇长文章不是问题,但我建议修订/扩展的问题应该是一个新问题,因为它与它编辑的问题有很大不同。
SERVICE silent <https://sparql.uniprot.org/sparql/> {
    {
        SELECT (count(distinct ?protein) as ?bp_total) WHERE {
            ?sub_bp (rdfs:subClassOf|owl:someValuesFrom)* ?bp_iri .
            ?protein up:classifiedWith ?sub_bp.
            ?protein up:organism <http://purl.uniprot.org/taxonomy/10090> .
        }
    }
}
PREFIX    up: <http://purl.uniprot.org/core/> 
PREFIX taxon: <http://purl.uniprot.org/taxonomy/> 
PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX   owl: <http://www.w3.org/2002/07/owl#> 

SELECT (COUNT(DISTINCT ?protein) AS ?count) 
WHERE
  {
    ?sub_bp  (rdfs:subClassOf|owl:someValuesFrom)*  ?bp_iri .
    ?protein  up:classifiedWith  ?sub_bp .
    ?protein  up:organism        taxon:10090 .
  }
PREFIX    up: <http://purl.uniprot.org/core/> 
PREFIX taxon: <http://purl.uniprot.org/taxonomy/> 
PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX   owl: <http://www.w3.org/2002/07/owl#> 

SELECT (COUNT(DISTINCT ?protein) AS ?count) 
WHERE
  {
    ?sub_bp  (rdfs:subClassOf|owl:someValuesFrom)? 
             / (rdfs:subClassOf|owl:someValuesFrom)? 
             / (rdfs:subClassOf|owl:someValuesFrom)?   ?bp_iri .
    ?protein  up:classifiedWith  ?sub_bp .
    ?protein  up:organism        <http://purl.uniprot.org/taxonomy/10090> .
  }
count
"77633"xsd:int
PREFIX    up: <http://purl.uniprot.org/core/> 
PREFIX taxon: <http://purl.uniprot.org/taxonomy/> 
PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX   owl: <http://www.w3.org/2002/07/owl#> 

SELECT (COUNT(DISTINCT ?protein) AS ?count) 
WHERE
  {
    ?sub_bp  (rdfs:subClassOf|owl:someValuesFrom)?  ?bp_iri .
    ?protein  up:classifiedWith  ?sub_bp .
    ?protein  up:organism        <http://purl.uniprot.org/taxonomy/10090> .
  }
PREFIX    up: <http://purl.uniprot.org/core/> 
PREFIX taxon: <http://purl.uniprot.org/taxonomy/> 
PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX   owl: <http://www.w3.org/2002/07/owl#> 

SELECT *
WHERE
  {
    SERVICE <https://sparql.uniprot.org/sparql>
      {
        SELECT (COUNT(DISTINCT ?protein) AS ?count) 
        WHERE
          {
            ?sub_bp  (rdfs:subClassOf|owl:someValuesFrom)?  ?bp_iri .
            ?protein  up:classifiedWith  ?sub_bp .
            ?protein  up:organism        <http://purl.uniprot.org/taxonomy/10090> .
          }
      }
  }