2013-10-09 1 views
4

У меня есть запрос SPARQL, показанный ниже, чтобы выбрать темы, имеющие определенные метки, определенные мной в DBpedia.Выбор объектов и rdf: введите запрос SPARQL

SELECT ?subject 
WHERE { 
    ?subject rdfs:label ?label. 
    FILTER (regex (?label,"^json$", "i")) 
} 

Это работает для меня.

И теперь я пытаюсь получить rdf:type каждого объекта по этому запросу.

SELECT ?subject ?type 
WHERE { 
    ?subject rdfs:label ?label; 
    rdf:type ?type. 
    FILTER (regex (?label,"^json$", "i")) 
} 

Но я получаю пустой результат из этого.

При замене ?subject с конкретным ресурсом он снова работает.

SELECT ?type 
WHERE { 
    <http://dbpedia.org/resource/JSON> rdf:type ?type. 
} 

Невозможно выяснить, что будет. Как я могу получить результаты, как ожидалось?

ответ

3

Синтаксически в вашем запросе нет ничего плохого. Я думаю, что вы видите тайм-аут от DbPedia. Попробуйте добавить предложение limit, чтобы узнать, дает ли это некоторые результаты.

Дополнительная информация о политике использования DbPedia on the web site.

+1

Спасибо! Добавляем 'limit' или устанавливаем более длительный' timeout', оба работают. –