【问题标题】:DBPedia Sparql with one request get links for multiple resourcesDBPedia Sparql 通过一个请求获取多个资源的链接
【发布时间】:2017-05-17 16:35:20
【问题描述】:

目前,我正在为每个实体做一个对 sparql 端点的单个请求以获取它的所有链接,例如

SELECT * WHERE {
   {<http://dbpedia.org/resource/San_Francisco> rdf:type ?link}
}

我想让它更有效率,我想知道是否有一种方法可以通过一个请求获取多个实体的链接。我把一些东西放在一起,但这给了我一个包含所有链接的大列表。

SELECT * WHERE {
    {<http://dbpedia.org/resource/San_Francisco> rdf:type ?link}
    UNION
    {<http://dbpedia.org/resource/Silicon_Valley> rdf:type ?link}
}

我能否以某种方式获取链接,以便识别它们属于哪个实体?

【问题讨论】:

  • 您想要的结果是否不同?
  • 不,我不需要不同的结果,您的第一个建议解决了我的问题。谢谢

标签: sparql dbpedia


【解决方案1】:

您可以使用 SPARQL 1.1 values 关键字更简洁:

SELECT  *
WHERE
  { VALUES ?entity { <http://dbpedia.org/resource/San_Francisco>
        <http://dbpedia.org/resource/Silicon_Valley> }
    ?entity  rdf:type  ?link
  }

您想要一个不同的列表吗?如果可以的话,可以对列表进行排序并添加英文标签吗?

SELECT DISTINCT  ?link ?llab
WHERE
  { VALUES ?entity { <http://dbpedia.org/resource/San_Francisco>
        <http://dbpedia.org/resource/Silicon_Valley> }
    ?entity  rdf:type  ?link
    OPTIONAL
      { ?link  rdfs:label  ?llab
        FILTER ( lang(?llab) = "en" )
      }
  }
ORDER BY ?link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    相关资源
    最近更新 更多