Sparql 给定语言中Wikidata条目的数量
我想知道,在总共5000万条条目中,我怎样才能知道Wikidata中每种语言有多少标签 例如,在年,对于加泰罗尼亚语(“ca”),我尝试使用Sparql 给定语言中Wikidata条目的数量,sparql,wikidata,Sparql,Wikidata,我想知道,在总共5000万条条目中,我怎样才能知道Wikidata中每种语言有多少标签 例如,在年,对于加泰罗尼亚语(“ca”),我尝试使用 SELECT ?lang (COUNT(DISTINCT ?item) AS ?count) WHERE { ?item schema:inLanguage "ca" . } GROUP BY ?lang ORDER BY DESC (?count) 结果是703351,但我认为这是不正确的,因为我下载了Wikidata dump
SELECT ?lang (COUNT(DISTINCT ?item) AS ?count) WHERE {
?item schema:inLanguage "ca" .
} GROUP BY ?lang
ORDER BY DESC (?count)
结果是703351,但我认为这是不正确的,因为我下载了Wikidata dump(从),并且我已经在加泰罗尼亚提取了两百多万个标签(提取过程仍在运行)
那么,有没有关于我做错了什么的线索?正如上面注释中所建议的,使用:
在您的查询中,您正在计算来自加泰罗尼亚维基百科的链接文章的数量。您的查询应该类似于
SELECT(count(*)AS?count),其中{item rdfs:label?label.filter(lang(?label)=“ca”)}
。不幸的是,这属于超时。请参阅此统计信息:SELECT?lang(COUNT(DISTINCT?item)AS?COUNT),其中{item rdfs:label?label.BIND(lang(?label)AS?lang)}按lang分组,按顺序按DESC(?COUNT)
-但显然,在Wikidata公共端点上太昂贵了…您可以不加载转储并使用grep
,awk
uniq
和wc-l
@AKSW正如您在问题中所读到的,我已经下载了转储文件,我正在处理它以提取几个属性。处理过程从周五下午就开始了(所以,三天多了),我只是想找到一种方法来更快地获取统计数据:),
USE wikidatawiki_p;
DESCRIBE wb_terms;
SELECT COUNT(*) FROM wb_terms
WHERE term_type = 'label' AND term_language = "ca";