获取带有标签、altLabels 和描述的所有 Wikidata 项目列表的资源高效方式?
Resource-efficient way to obtain list of all Wikidata items with labels, altLabels and Description?
我想检查字符串 s 是否包含在任何维基数据项的标签、altLabel 或描述中,如果是,return 所有这些。 Wikidata 项的绝对数量禁止使用 SPARQL,因为它会超时,所以我需要在本地进行。我之前通过执行此查询并在本地解析结果对属性做了同样的事情:
SELECT ?property ?propertyLabel ?propertyDescription (GROUP_CONCAT(DISTINCT(?altLabel); separator = ", ") AS ?altLabel_list) WHERE {
?property a wikibase:Property .
OPTIONAL { ?property skos:altLabel ?altLabel . FILTER (lang(?altLabel) = "en") }
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" .}
}
GROUP BY ?property ?propertyLabel ?propertyDescription
它产生一个看起来类似于 this "official" one on wikidata 的 table。
什么是 space-(理想情况下是时间)高效的方法来获取所有带有标签、描述和 altLabels 的维基数据项目的 list/table,就像上面的一样?也就是说,我能否以某种方式避免下载整个维基数据转储、解析它并使用标准硬件自行构建列表?
我找到了 this 工具,但不确定是否能够满足我的需要。我也不想浪费社区资源。
wdumps 工具有效并且似乎最接近您的要求,我。 e.一个完整的列表。如果您查看该工具最近运行的列表,您可能会找到您需要的东西,因为这是一个常见的问题。
除了在本地处理整个列表外,文档还推荐使用 SPARQL 接口连接维基百科的“常规”搜索引擎,如下所示:
SELECT ?item ?label
WHERE
{
SERVICE wikibase:mwapi
{
bd:serviceParam wikibase:endpoint "www.wikidata.org";
wikibase:api "Generator";
mwapi:generator "search";
mwapi:gsrsearch "inlabel:Frankfurt";
mwapi:gsrlimit "max".
?item wikibase:apiOutputItem mwapi:title.
}
?item rdfs:label ?label.
FILTER CONTAINS(?label, "Frankfurt")
}
并且,作为第三种可能性,我想提及 https://query.wikidata.org/bigdata/ldf 处的界面。这是数据的 little-known API。从它的速度和文档来看,它非常高效。但是,正如链接示例查询所示,有 十亿分之一 个标签,因此即使是像这样的快速访问方法也将是一个挑战。
我想检查字符串 s 是否包含在任何维基数据项的标签、altLabel 或描述中,如果是,return 所有这些。 Wikidata 项的绝对数量禁止使用 SPARQL,因为它会超时,所以我需要在本地进行。我之前通过执行此查询并在本地解析结果对属性做了同样的事情:
SELECT ?property ?propertyLabel ?propertyDescription (GROUP_CONCAT(DISTINCT(?altLabel); separator = ", ") AS ?altLabel_list) WHERE {
?property a wikibase:Property .
OPTIONAL { ?property skos:altLabel ?altLabel . FILTER (lang(?altLabel) = "en") }
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" .}
}
GROUP BY ?property ?propertyLabel ?propertyDescription
它产生一个看起来类似于 this "official" one on wikidata 的 table。 什么是 space-(理想情况下是时间)高效的方法来获取所有带有标签、描述和 altLabels 的维基数据项目的 list/table,就像上面的一样?也就是说,我能否以某种方式避免下载整个维基数据转储、解析它并使用标准硬件自行构建列表? 我找到了 this 工具,但不确定是否能够满足我的需要。我也不想浪费社区资源。
wdumps 工具有效并且似乎最接近您的要求,我。 e.一个完整的列表。如果您查看该工具最近运行的列表,您可能会找到您需要的东西,因为这是一个常见的问题。
除了在本地处理整个列表外,文档还推荐使用 SPARQL 接口连接维基百科的“常规”搜索引擎,如下所示:
SELECT ?item ?label
WHERE
{
SERVICE wikibase:mwapi
{
bd:serviceParam wikibase:endpoint "www.wikidata.org";
wikibase:api "Generator";
mwapi:generator "search";
mwapi:gsrsearch "inlabel:Frankfurt";
mwapi:gsrlimit "max".
?item wikibase:apiOutputItem mwapi:title.
}
?item rdfs:label ?label.
FILTER CONTAINS(?label, "Frankfurt")
}
并且,作为第三种可能性,我想提及 https://query.wikidata.org/bigdata/ldf 处的界面。这是数据的 little-known API。从它的速度和文档来看,它非常高效。但是,正如链接示例查询所示,有 十亿分之一 个标签,因此即使是像这样的快速访问方法也将是一个挑战。