如何为 Wikidata 项目列表构建 SPARQL 查询

问题描述

首先,我不是开发人员,而且我是编写 SPARQL 查询的新手。大多数情况下,我一直在查找现有查询并尝试调整它们以获得我需要的内容。问题是关于查询构造的大多数文档都与获取您没有的新数据有关,而不是检索或扩展现有数据。当您确实找到检索现有数据的技巧时,它们往往一次只针对一个项目,而不是包含多个项目的完整数据集。

为此我主要使用 OpenRefine。我首先加载我现有的名称列表,并使用维基数据扩展服务将名称与现有的维基数据 ID 进行协调。所以现在,这就是我所在的地方,而不是我想去的地方:

1 - 我们有一个 list of Wikidata IDs 用于协调匹配;

2 - 我们已经使用 OpenRefine 从中获取了我们需要的大部分数据;

3 - 我们没有非常有价值的标签、描述或维基百科链接(英文);

4 - 我已经想出了如何为一个维基数据项的标签和描述构建查询:

SELECT ?itemLabel ?itemDescription WHERE {   VALUES ?item {
    wd:Q15485689   }   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
      }

5 - 我已经想出了如何构造一个查询来提取一个维基数据项目的维基百科英文 URL:

SELECT ?article ?lang ?name WHERE {
  ?article schema:about wd:Q15485689;
    schema:inLanguage ?lang;
    schema:name ?name;
    schema:isPartOf _:b13.
  _:b13 wikibase:wikiGroup "wikipedia".
  FILTER(?lang IN("en"))
  FILTER(!(CONTAINS(?name,":")))
  OPTIONAL { ?article wdt:P31 ?instance_of. }
}

问题是:

  • 如何修改任一查询,以便为多个*维基数据项目生成这些相同的结果?
  • 如何修改查询以同时提供三个以上的查询,针对多个*维基数据项目?

*我们有 667 个,但如果这对于服务来说太多了,我可以做小批量

理想情况下,查询会生成一些内容,让我可以下载一个看起来很像这样的 CSV 文件(这样我就可以匹配并将新数据导入我们的 Airtable 库,该库为网站应用程序提供数据):

ideal CSV output

如果有人能在这里引导我朝着正确的方向前进,我将不胜感激。

我还应该注意,如果 OpenRefine 有检索这些的方法,我会全神贯注!但是由于这三个没有属性代码,我不知道如何从 OR 中获取它们。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)