2013-12-02 1 views
1

Я делаю что SPARQL запрос:Должны ли запросы с URI, например, http://pt.dbpedia.org/resource/ .. быть отличными от тех, которые имеют URI, например http: //dbpedia.org/resource/ ..?

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?label WHERE { 
<http://pt.dbpedia.org/resource/Brasil> rdfs:label ?label.} 

и я не получаю никаких результатов для ?text. Я проверил этот URI в своем браузере и нашел там rdfs:label. Эта проблема вызвана формой URI http://pt.dbpedia.org/? Я уже использовал тот же запрос с IRI, начиная с http://dbpedia.org/resource/, например, http://dbpedia.org/resource/Google и тех, кто работает. Я использую Jena и могу предоставить код, показывающий, как я разыгрываю IRI.

ответ

4

Если я запускаю свой запрос к Portuguese DBpedia SPARQL endpoint (http://pt.dbpedia.org/sparql), я получаю результаты вы хотите ("Brasil"):

SELECT ?label WHERE { 
    <http://pt.dbpedia.org/resource/Brasil> rdfs:label ?label. 
} 

SPARQL results (один)

Running тот же запрос против main (English) DBpedia SPARQL endpoint (http://dbpedia.org/sparql), однако, я не получаю никаких результатов.

SELECT ?label WHERE { 
    <http://pt.dbpedia.org/resource/Brasil> rdfs:label ?label. 
} 

SPARQL results (нет)

Похоже, вы должны быть уверены, что запрос от правого конца. Тем не менее, на главной конечной точке SPARQL вы можете задать вопрос о вещах owl:sameAs ресурса Brasil на португальском языке DBpedia. НАПРИМЕР,

SELECT ?label WHERE { 
    ?brasil owl:sameAs <http://pt.dbpedia.org/resource/Brasil> ; 
      rdfs:label ?label . 
} 

SPARQL results (много)

Это дает вам много результатов, хотя, так как вы получаете имена в большом количестве различных языков. Вы можете попросить этикетками только на португальском языке, хотя (и вы, вероятно, хотите добавить distinct здесь), и вы можете получить «Бразил» и «Бразилия»:

SELECT distinct ?label WHERE { 
    ?brasil owl:sameAs <http://pt.dbpedia.org/resource/Brasil> ; 
      rdfs:label ?label . 
    filter(langMatches(lang(?label),"pt")) 
} 

SPARQL results (два)

+0

Привет! Я проверил последний запрос, который вы мне дали, но не получил никаких результатов. Фактически, когда я тестирую его по адресу http://pt.dbpedia.org/sparql, я не получаю результатов. Я опубликовал еще один вопрос, показывающий, как я это делаю с Йейной. Вот ссылка: http://stackoverflow.com/questions/20407333/writing-sparql-queries-with-jena-to-query-for-uris-like-http-pt-dbpedia-org – Luciane

+0

@Luciane Вы запустили первый запрос к португальской DBpedia, а остальное - к основной английской DBpedia, правильно? Я все еще получаю ожидаемые результаты ... –