Как установить язык переменной в SPARQL?
Я знаю, как установить язык литерала:"foo"@en
Но что насчет?foo@en
(что не работает)?
Контекст: я хочу скопировать несколько ярлыков, установленных дляen-gb
в простоen
поэтому они лучше справляются с инструментом управления знаниями, который я использую. Итак, что-то вроде этого:
INSERT {
?subject skos:prefLabel ?object@en
}
WHERE {
?subject skos:prefLabel ?object .
FILTER (lang(?object) = "en-gb")
}
1 ответ
str
позволяет получить лексическую форму литерала с языковой меткой, иSTRLANG
позволяет указать языковой тег литерала.
CONSTRUCT {
?subject skos:prefLabel ?label_en .
}
WHERE {
?subject skos:prefLabel ?label_enGB .
FILTER (lang(?label_enGB) = "en-gb") .
BIND( STRLANG(str(?label_enGB), "en") AS ?label_en ) .
}
Пример:
-
?label_enGB
:"foo"@en-gb
-
str(?label_enGB)
:"foo"
-
STRLANG(str(?label_enGB), "en")
:"foo"@en