У меня следующий запрос SPARQL:
PREFIX owl <http://www.w3.org/2002/07/owl#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT Distinct(?so2) WHERE {
?city a dbo:City ; (owl:sameAs|^owl:sameAs)* ?so2 .
filter( !regex(str(?so2), "dbpedia" ))
} order by ?city
Это работает на http://dbpedia.org/sparql, но не используется с Java / Jena.
Jena Я получаю эту ошибку:
Exception in thread "main" org.apache.jena.query.QueryParseException: Lexical error at line 1, column 11. Encountered: " " (32), after : "owl"
Итак, что не так с:
(owl:sameAs|^owl:sameAs)*
Я использую последнюю версию Jena (3.9.0).
снимок моего кода Java,откуда возникает ошибка:
Query query = QueryFactory.create(cSparql);
QueryExecution qexec = QueryExecutionFactory.sparqlService(endPoint, query);
Если я использую следующий код:
QueryEngineHTTP qexec = new QueryEngineHTTP(endPoint, cSparql);
Я получаю эту ошибку:
HttpException: 400 HTTP 400 error making the query: Bad Request
Почему это происходит и каквыполнить с Java / Jena?
Заранее спасибо,