Я попытался запустить этот запрос, используя Jena Api в Java.HttpException: 400 - Jena Api - Java
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select distinct ?p where {
?s ?p ?o .
{
select ?s {
?s a <http://data.linkedmdb.org/resource/movie/film> .
}
limit 10
}
}
Я получаю сообщение об ошибке:
Exception in thread "main" HttpException: 400
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.rewrap(HttpQuery.java:414)
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.execGet(HttpQuery.java:358)
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.exec(HttpQuery.java:295)
Я думаю, что это, возможно, придется делать с тем, что LinkedMDB конечная точка работает под SPARQL 1.0, которая не поддерживает подзапросы (только в SPARQL 1.0) , Мне было интересно, есть ли альтернатива этому, я попытался запустить два запроса, первый для первых 10 фильмов, а второй для отдельных свойств, описывающих эти фильмы. Но проблема в том, что я получаю отличные свойства каждого из фильмов, а не все из них, тогда как я хочу получить четкие свойства всех 10 первых фильмов. Любое предложение?
PS. Запрос SPARQL отлично работает на конечной точке DBpedia.
Не то, чтобы это имеет значение много для основной задачи, но нет необходимости в фильтре; вы можете просто использовать одну и ту же переменную: 'select distinct? p {? s? p? o {select? s {? sa <.../film>} limit 10}}' (Я также использовал сокращенную букву 'a' вместо' rdf: type' , который сохраняет объявление префикса и делает текст немного более чистым.) –
Не работает ли оно, если вы получаете 10 фильмов с одним запросом, а затем для каждого запуска фильма 'select * where {? p? o.}'? –
AKSW
Я пробовал это. Я получаю отличные свойства каждого фильма. Но мне нужны различные свойства, описывающие 10 фильмов. – M20