Получить тег @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" ) }}
Другие вопросы по тегам