SPARQL 中的 lang 函数是什么?
What is the lang function in SPARQL?
其中SPARQL Query Examples, there is a query for US presidents and spouses:
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
吗?
lang
是原生 SPARQL 运算符(参见 the standard) which returns the language tag of an RDF literal(例如 ?p foaf:name "Robert"@EN.
中的 EN
)。
一些 SPARQL 引擎支持实现自定义函数的能力。例如参见 [=14=].
其中SPARQL Query Examples, there is a query for US presidents and spouses:
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
吗?
lang
是原生 SPARQL 运算符(参见 the standard) which returns the language tag of an RDF literal(例如 ?p foaf:name "Robert"@EN.
中的 EN
)。
一些 SPARQL 引擎支持实现自定义函数的能力。例如参见 [=14=].