Получить тег @language из запроса SPARQL
Я использую http://dbpedia.org/sparql чтобы сделать этот запрос:
PREFIX res: <http://dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?trad
where{
res:Apple
rdfs:label ?trad
}
который возвращает мне следующий результат:
Как получить языковой тег (@ar, @es, @fr) в отдельном столбце?
Я видел на w3.org что-то, что могло бы помочь:
Есть идеи?
2 ответа
Документация SPARQL содержит все о SPARQL, таким образом, это всегда самый подходящий источник для поиска.
В вашем случае, часть о языке термина RDF полезна.
PREFIX res: <http://dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?trad (lang(?trad) as ?lang) WHERE {
res:Apple rdfs:label ?trad
}
Чтобы собрать значения языковых тегов «@fr», «@es» и «@ar» в одну таблицу с отдельными столбцами, попробуйте использовать ключевое слово SPARQL UNION и FILTER с языковой функцией для каждой переменной:
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?french ?spanish ?arabic
where{ { dbr:Apple rdfs:label ?french FILTER ( lang(?french) = "fr" ) }
UNION
{ dbr:Apple rdfs:label ?spanish FILTER ( lang(?spanish) = "es" ) }
UNION
{ dbr:Apple rdfs:label ?arabic FILTER ( lang(?arabic) = "ar" ) }}