2016-09-20 8 views
0

Мне нужно получить только значение английского от моего rdfs:label тегаSPARQL запрос найти только одно значение с помощью атрибута

Вот мой пример RDF

<rdfs:label rdf:datatype="&xsd;string">English</rdfs:label> 
<rdfs:label xml:lang="fr">French</rdfs:label> 
<rdfs:label xml:lang="it">Italy</rdfs:label> 

настоящее время я использую сервер Apache Jena фусеки для выполнения запроса SPARQL. Когда я пытался получить rdfs: label, он возвращает мне все три значения.

Заранее спасибо

+0

Что запрос вы пробовали? Можете ли вы (повторно) представить свои данные в Turtle, который лучше подходит для SPARQL - и может показать вам вашу ошибку? – TallTed

+0

Это не законный файл RDF (хотя он может быть фрагментом одного). Там не достаточно, чтобы указать какие-либо троек. –

+1

Ответ на [Извлечение всех типов и их ярлыков на английском языке из DBPedia] (http://stackoverflow.com/q/18733225/1281433) объясняет, как это сделать. –

ответ

3

Вы можете фильтровать по языку тега вы желаете в вашем результате. Несколько способов сделать это в SPARQL:

SELECT ?label 
WHERE { 
    ?s rdfs:label ?label . 
    FILTER (lang(?label) = "en") 
} 

... или использовать SPARQL-х langMatches:

SELECT ?label 
WHERE { 
    ?s rdfs:label ?label . 
    FILTER langMatches(lang(?label), "en") 
} 
+1

есть опечатка во втором запросе: она должна быть переменной? S вместо? Sn – innovimax

+1

Это должно быть '? Label'. Спасибо, что дал мне знать. – scotthenninger

 Смежные вопросы

  • Нет связанных вопросов^_^