Я пытаюсь запросить наборы данных dbpedia 3.9 на virtuoso (local, 7.0.0). Запрос отлично работает на конечной точке SPARQL, но при использовании Jena ResultSet от виртуозного выполнения запроса ничего не содержит (hasNext() имеет значение false). Я посмотрел здесь и здесь, но у меня все еще есть файл pb.
Ниже код, который я использую. У кого-нибудь есть идея, что не так?
Спасибо.
import virtuoso.jena.driver.VirtGraph;
import virtuoso.jena.driver.VirtuosoQueryExecution;
import virtuoso.jena.driver.VirtuosoQueryExecutionFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.model.RDFNode;
import com.hp.hpl.jena.rdf.model.Resource;
public static void testDbpediaLex(Resource dbpedia)
{
String query = " PREFIX lexvo: <http://lexvo.org/ontology#> \n"
+ " PREFIX rdf: <http://www.w3.org/2000/01/rdf-schema#> \n\n"
+ " SELECT ?lexlabel WHERE { \n"
+ " <http://dbpedia.org/resource/Fernando_Alonso> lexvo:label ?lexlabel . \n"
+ " <http://dbpedia.org/resource/Fernando_Alonso> rdf:label ?label . \n"
+ " FILTER (?lexlabel != ?label) . } ";
VirtGraph graph = new VirtGraph ("http://dbpedia.org/", "jdbc:virtuoso://localhost:1111", "dba", "dba");
VirtuosoQueryExecution vqLex = VirtuosoQueryExecutionFactory.create(query, graph);
ResultSet rLex = VirtuosoConnection.executeVirtuosoQuery(vqLex);
if(rLex != null)
{
while (rLex.hasNext())
{
QuerySolution result = rLex.nextSolution();
System.out.println(result.get("lexlabel"));
i++;
}
}
}
<http://dbpedia.org/resource/Fernando_Alonso>
, не могли бы вы показать нам результаты<http://dbpedia.org/resource/Fernando_Alonso> ?p ?o
. Используя это, мы можем лучше предположить, что вернет ваш запрос. - person Joshua Taylor   schedule 06.10.2014http://www.w3.org/2000/01/rdf-schema#
—rdfs:
. Это не изменит смысла запроса, но люди, вероятно, увидят ваш (rdf:
) и подумают, что у вас опечатка. (ii) Сравнение меток может быть затруднено из-за языковых меток. Поведение!=
может соответствовать большему количеству вещей, чем вы ожидаете (или нет, это просто мысль). (iii) Это не похоже на полный код. Может быть, я что-то упускаю, но я не вижу объявленияi
, а в вашем цикле естьi++
. Легче помочь с кодом, который мы можем скомпилировать и запустить. - person Joshua Taylor   schedule 06.10.2014GRAPH ?g { <http://dbpedia.org/resource/Fernando_Alonso> lexvo:label ?lexlabel }
). Были некоторые расхождения относительно наборов графических данных между моим запросом через Jena и запросом через конечную точку sparql, и я не сразу это заметил. - person ecrin   schedule 06.10.2014