我正在尝试建立一个名单列表,并将它们与日语等价物相匹配。
我首先想到的是尝试抓取维基百科并关注该页面的日文版本的链接,但我不知道如何检查该页面是关于某人还是其他任何内容。
值得庆幸的是wikidata和dbpedia项目。
我开始修补wikidata并找到了这个例子 https://www.mediawiki.org/wiki/Wikibase/Indexing/SPARQL_Query_Examples#People_born_before_year_1880_with_no_death_date
可以缩小为'人'的查询
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT * WHERE {
?h wdt:P31 wd:Q5 .
} LIMIT 1
这导致乔治华盛顿的链接 https://www.wikidata.org/wiki/Q23
该页面底部是此人的维基百科页面链接列表 用其他语言包括日语。
有没有办法在同一个查询中返回名称和日文版本?
答案 0 :(得分:4)
如果您要查询wikidata,可以使用标签服务:
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
SELECT * WHERE {
wd:Q30 p:P6/v:P6 ?p .
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
?p rdfs:label ?enName .
}
SERVICE wikibase:label {
bd:serviceParam wikibase:language "ja" .
?p rdfs:label ?jaName .
}
}
我找到了答案here