使用SPARQL请求获取xml:lang属性

4
我想知道是否可以使用SPARQL查询来获取图中某些文字的语言标签。
例如,我可能会有以下内容:
<skos:prefLabel xml:lang="fr">Bonjour</skos:definition>
<skos:prefLabel xml:lang="en">Hello</skos:definition>

我希望你能提供一个结果集,其中包含每个标签及其对应的语言。

1个回答

6
您可以使用“lang”内置函数,如SPARQL规范中所述(SPARQL 1.1规范的第17.4.2.6节:http://www.w3.org/TR/sparql11-query/)。因此,您的查询可能如下所示:
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?x ?label ?language
  WHERE { 
    ?x skos:prefLabel ?label ;
       foaf:mbox      ?mbox .
    BIND ( lang(?label) AS ?language )
  }

请注意,以这种方式使用BIND需要使用SPARQL 1.1。

1
有没有一种方法可以使用SPARQL 1.0来获取这个属性? - mab
终于找到了,它可以在类似sparql 1.0的环境下工作,使用以下语句:PREFIX skos:http://www.w3.org/2004/02/skos/core#SELECT DISTINCT ?label (lang(?label) AS ?lang) WHERE { ?data skos:prefLabel ?label } - mab
3
那实际上也是 SPARQL 1.1,只是一个更常见的语法实现。 - Steve Harris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接