Jena代数.compile()非标准SPARQL查询
我有(几乎)和你一样的问题。但我不知道如何把它应用到我的问题上。我想将SPARQL查询转换为它的。因此,示例代码:Jena代数.compile()非标准SPARQL查询,sparql,jena,Sparql,Jena,我有(几乎)和你一样的问题。但我不知道如何把它应用到我的问题上。我想将SPARQL查询转换为它的。因此,示例代码: Query query = QueryFactory.create(args[0]); Op op = Algebra.compile(query) ; System.out.println(op); 然而,:Virtuoso接受非标准SPARQL,而Jena不接受。。错误是: Exception in thread "main" org.apache.jena.query.Qu
Query query = QueryFactory.create(args[0]);
Op op = Algebra.compile(query) ;
System.out.println(op);
然而,:Virtuoso接受非标准SPARQL,而Jena不接受。。错误是:
Exception in thread "main" org.apache.jena.query.QueryParseException: Encountered " "<" "< "" at line 1, column 14.
线程“main”org.apache.jena.query.QueryParseException中的异常:遇到了不起作用的“”。Jena需要解析查询字符串以创建查询对象。Jena遵循官方的SPARQL 1.1规范。哪个查询不起作用?那真是不幸。。。我添加了一个查询,其中Virtuoso(dbpedia.org)执行查询,而Jena/sparql查询验证程序有问题。。dbpedia有许多预定义的名称空间(),jena缺少这些名称空间…对,在查询中,前缀声明也缺少。作为一种解决方法,您可以自动在包含尽可能多的前缀的前缀声明字符串前面添加前缀。但这不是Jena的问题,前缀是解决完整URI所必需的。当我们试图解析DBpedia查询日志时,我们还添加了一些变通方法,这很烦人,但在一定程度上是可行的。
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT *
WHERE
{
{?city rdfs:label 'Tapiramutá'@en.}
UNION
{ ?alias <http://dbpedia.org/property/redirect> ?city;
rdfs:label 'Tapiramutá'@en. }
UNION
{?alias <http://dbpedia.org/property/disambiguates> ?city;
rdfs:label 'Tapiramutá'@en. }
OPTIONAL { ?city <http://dbpedia.org/ontology/abstract> ?abstract}
OPTIONAL { ?city geo:lat ?latitude; geo:long ?longitude}
OPTIONAL { ?city foaf:depiction ?image }
OPTIONAL { ?city rdfs:label ?name }
OPTIONAL { ?city foaf:homepage ?home }
OPTIONAL { ?city <http://dbpedia.org/ontology/populationTotal> ?population }
OPTIONAL { ?city <http://dbpedia.org/ontology/thumbnail> ?thumbnail } FILTER (langMatches( lang(?abstract), 'en'))}