我有一个shell脚本,它使用(WDQS)获取所需的数据。运行WDQS的SPARQL查询接受输入参数语言代码。
如果输入的语言代码是有效的维基媒体语言代码,作为下面链接代码/清单/全部中的第一列数据,我可以签入shell脚本吗?
发布于 2018-01-13 14:04:03
- ISO 639-1有很大区别吗? -其中许多都与ISO相同,但并不是以一致的方式进行的。有些语言代码有两个字母,一些有三个字母,还有一些甚至更多。也有一些完全不同的例子(als: ISO: tosk阿尔巴尼亚语,Wikimedia: Alemannic)。
可以使用以下简单的SPARQL查询检索所有这些代码:
SELECT DISTINCT ?code { [] wdt:P424 ?code } ORDER BY ?code实际上,链接到的列表是由机器人定期生成的。完整查询是
SELECT ?item ?c
(CONCAT("{","{#language:",?c,"}","}") as ?display)
(CONCAT("{","{#language:",?c,"|","en}","}") as ?displayEN)
(CONCAT("{","{#language:",?c,"|","fr}","}") as ?displayFR)
{
?item wdt:P424 ?c .
MINUS{?item wdt:P31/wdt:P279* wd:Q14827288} #--exclude Wikimedia projects
MINUS{?item wdt:P31/wdt:P279* wd:Q17442446} #--exclude Wikimedia internal stuff
}你可以:
ASK SPARQL查询。我更倾向于第三种选择:
#!/bin/sh
echo "Enter language code:"
read code
request="curl -g -s https://query.wikidata.org/sparql?query=ASK{?lang%20wdt:P424%20\"$code\"}"
if $request | grep -q "true"; then
echo "Valid code";
else
echo "Invalid code";
fihttps://stackoverflow.com/questions/48235464
复制相似问题