2

SPARQL 查询示例中,有一个针对美国总统和配偶的查询:

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 ?p ?w ?l ?wl WHERE {
  wd:Q30 p:P6/v:P6 ?p .
  ?p wdt:P26 ?w .
  OPTIONAL  {  
    ?p rdfs:label ?l filter (lang(?l) = "en") . 
  }
  OPTIONAL {
    ?w rdfs:label ?wl filter (lang(?wl) = "en"). 
  }
}

它包含类似函数的语法,lang(?l)旨在按语言进行过滤。

这是如何运作的?这是Blazegraph的特殊功能吗?还是不同的语言在 RDF 图中存储为正常值?

如何以这种方式存储数据,以便使用lang函数正确检索数据?

我可以有自己的函数来拥有 ND 谓词,比如probability(?a) > 0.8

4

1 回答 1

4

lang是一个本地 SPARQL 运算符(参见标准),它返回RDF 文字的语言标记(例如ENin ?p foaf:name "Robert"@EN.)。

一些 SPARQL 引擎支持实现自定义函数的能力。例如,请参阅Sesame 的本教程Blazegraph的本教程。

于 2015-08-17T17:53:15.000 回答