首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证维基媒体语言的语言代码

验证维基媒体语言的语言代码
EN

Stack Overflow用户
提问于 2018-01-12 23:36:04
回答 1查看 197关注 0票数 1

我有一个shell脚本,它使用(WDQS)获取所需的数据。运行WDQS的SPARQL查询接受输入参数语言代码。

如果输入的语言代码是有效的维基媒体语言代码,作为下面链接代码/清单/全部中的第一列数据,我可以签入shell脚本吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-13 14:04:03

这些代码是wdt:P424的可能值。来自财产建议书

- ISO 639-1有很大区别吗? -其中许多都与ISO相同,但并不是以一致的方式进行的。有些语言代码有两个字母,一些有三个字母,还有一些甚至更多。也有一些完全不同的例子(als: ISO: tosk阿尔巴尼亚语,Wikimedia: Alemannic)。

可以使用以下简单的SPARQL查询检索所有这些代码:

代码语言:javascript
复制
SELECT DISTINCT ?code { [] wdt:P424 ?code } ORDER BY ?code

试试看!

实际上,链接到的列表是由机器人定期生成的。完整查询

代码语言:javascript
复制
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查询。

我更倾向于第三种选择:

代码语言:javascript
复制
#!/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";
fi
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48235464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档