HttpException:400 - Jena Api - Java

时间:2015-11-16 13:29:45

标签: java rdf sparql jena

我尝试使用Java中的Jena Api运行此查询。

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不支持子查询(仅在SPARQL 1.0中)。我想知道是否有替代方案,我试图运行两个查询,第一个用于前10个电影,第二个用于描述这些电影的不同属性。但问题是我得到了每部电影的独特属性,而不是所有电影,而我希望获得所有10部电影的独特属性。有什么建议吗?

PS。 SPARQL查询在DBpedia端点上运行良好。

1 个答案:

答案 0 :(得分:0)

我不认为LinkedMDB端点是基于virtuoso的。位于http://www.linkedmdb.org/snorql/的webapp端点由D2R服务器提供支持,实际的Web服务({3}}报告由Jetty提供支持。这并不意味着在某个地方下面不会有Virtuoso,但我并不认为它是以Virtuoso为基础的。权威性更强,http://www.linkedmdb.org/sparql说:

  

LinkedMDB使用D2R服务器发布链接的开放数据。

LinkedMDB页面上的版权日期是2008年,肯定是在2013 SPARQL 1.1之前,但更接近于原来的SPARQL 2008。

DR2服务器the LinkedMDB website为SPARQL 1.1提供初步支持,但我不认为它已应用于LinkedMDB站点。其他人的经验也是,LinkedMDB端点不支持SPARQL 1.1: