이 올빼미 모델에 대한 쿼리를 작성하려고합니다.JARA를 사용하여 SPARQL 쿼리 리터럴 인쇄 JA
: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 .
센서 이름을 검색하려면 sensor-id를 사용하고 싶습니다. 이것은 내 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);
}
}
:
그리고 항상 모든 SPARQL 서비스를 통해 적절한 분석을 보장하기 위해 SPARQL 쿼리의 시작 부분에 모든 PREFIX 선언을 추가하는 것을 선호합니다. 그런 다음 "Valr"에 대한 리터럴을 검색합니다. 대신 "센서"에 대한 리터럴을 검색하려고 했습니까? 즉, soln.getLiteral ("sensor"); –
사실, 나는 내 코드에 큰 문제가 있음을 알았다. 루프가 실행되지 않습니다. 즉 '결과'가 비어 있음을 의미합니다. 내 코드를 업데이트하면 문제가 무엇인지 알 수 없습니다. – Ali