Я пытаюсь написать запрос для этой модели совы.Лист печати запросов SPARQL с использованием JENA JAVA
:Sensor rdf:type owl:Class;
:hasId rdf:type owl:DatatypeProperty,
rdfs:domain :Sensor;
rdfs:range xsd:int.
:MedicalCountainer rdf:type :owlNamedIndividual,
:Sensor;
:hasId "55"^^xsd:int .
Я хочу использовать идентификатор датчика для извлечения имени датчика. Это мой Java-запрос, но я не знаю, почему он ничего не печатает. Я знал, что мой запрос прав, потому что я получу ответ в протеже.
String file = "C:/users/src/data.ttl";
Model model = FileManager.get().loadModel(file);
String queryString = "PREFIX : <http://semanticweb.org/sensor#>" +
"SELECT ?sensor" +
"WHERE {?sensor :hasId \"55"\^^<xsd:int>}";
Query query = QueryFactory.create(queryString);
try (QueryExecution qexec = QueryExecutionFactory.create(query, model)) {
ResultSet result = qexec.execSelect();
for (; result.hasNext();) {
QuerySolution soln = result.nextSolution();
Resource r = soln.getResource("sensor");
System.out.println(r);
}
}
Вы запрашиваете для «датчика» переменного. Затем вы получите литерал для «Valr». Вы пытались получить литерал для «датчика» вместо этого? То есть, soln.getLiteral («датчик»); –
На самом деле, я замечаю, что у меня серьезная проблема в моем коде. Цикл не запускается, значит «результат» пуст. Я обновляю свой код, я не могу понять, в чем проблема. – Ali