Sparql 选择具有特定ISO代码的语言

Sparql 选择具有特定ISO代码的语言,sparql,dbpedia,Sparql,Dbpedia,我想检索给定等码语言缩写的完整语言名称。我的SPARQL查询如下(使用硬编码语言“fr”@en): 前缀dbpprop: 前缀dbo: 选择?语言?等码 哪里 {?语言dbpprop:iso?等位码。 ?语言a dbo:语言。 过滤器(?isocode=“fr”@en) } 在网上运行它不会产生任何结果——尽管我希望检索“法语”。这段代码在一两年前就开始工作了(如果我没有完全弄错的话)。由于没有出现错误,我有点不知所措。DBPedia资源包含language和iso属性。您可以直接搜索所需的语

我想检索给定等码语言缩写的完整语言名称。我的SPARQL查询如下(使用硬编码语言
“fr”@en
):

前缀dbpprop:
前缀dbo:
选择?语言?等码
哪里
{?语言dbpprop:iso?等位码。
?语言a dbo:语言。
过滤器(?isocode=“fr”@en)
}

在网上运行它不会产生任何结果——尽管我希望检索“法语”。这段代码在一两年前就开始工作了(如果我没有完全弄错的话)。由于没有出现错误,我有点不知所措。DBPedia资源包含language和iso属性。

您可以直接搜索所需的语言,而不是进行筛选。例如:

SELECT ?language WHERE {
  ?language dbpprop:iso "fr"@en .
  ?language a dbpedia-owl:Language .
}

结果是

language
http://dbpedia.org/resource/Canadian_French
http://dbpedia.org/resource/New_England_French
http://dbpedia.org/resource/French_language
http://dbpedia.org/resource/Colonial_French
如果确实希望将
?isocode
变量绑定到
“fr”@en
,则可以使用
VALUES
子句来指定(以及其他变量,如果需要)。例如:

如果你真的想过滤,你也可以这样做。例如:

SELECT ?language ?isocode
WHERE {
  ?language dbpprop:iso ?isocode .
  ?language a dbpedia-owl:Language .
  FILTER ( str(?isocode) = "fr" && langMatches( lang(?isocode), "EN" ) )
}

非常感谢!你的链接对我有用。不管我写了什么,一切都很好@克劳迪娅听到这个消息很高兴!如果它回答了你的问题,请考虑让其他用户知道它是有效的。
SELECT ?language ?isocode
WHERE {
  VALUES ?isocode { "fr"@en "fro"@en "fra"@en }
  ?language dbpprop:iso ?isocode .
  ?language a dbpedia-owl:Language .
}
SELECT ?language ?isocode
WHERE {
  ?language dbpprop:iso ?isocode .
  ?language a dbpedia-owl:Language .
  FILTER ( str(?isocode) = "fr" && langMatches( lang(?isocode), "EN" ) )
}