我的项目是创建一个Web应用程序,它将从某个rdfModel.txt搜索一个地方,我不知道如何在jena sparql上查询它,这是我到目前为止所拥有的。
@Path("/luoghi")
public class mostraRisultati {
@GET
@Produces(MediaType.TEXT_HTML)
public String getSearch() {
String s = "Get Method called";
return s;
}
@POST
public Response search(@FormParam("text") String text)
throws URISyntaxException {
System.out.println("post");
String searchPlace = toURI(text);
final String place = text.toLowerCase();
System.out.println("Searching for : " + text);
// Create a model from the rdfModel.txt
Model model = ModelFactory.createDefaultModel();
FileInputStream inputStream = null;
try {
// Find the path of the RDFModel text file provided in moodle
inputStream = new FileInputStream(
"C:\\Users\\AmielJairo\\Desktop\\RdfModel.txt");
} catch (FileNotFoundException e) {
System.out.println("RDF file not found.");
}
RDFDataMgr.read(model, inputStream, Lang.TURTLE);
//RDFDataMgr.write(System.out, model, Lang.TURTLE);
String query = "PREFIX property: <file:///E:/Programming/Java/Eclipse%20Java%20%20EE/eclipse#> "
+ "PREFIX resource: <http://localhost:8080/LAB5/rest/luoghi#>"
+ "SELECT ?object WHERE {"
+ "?risorsa property:descrizione ?object"
+ "} limit 10";
QueryExecution qe = QueryExecutionFactory.create(query, model);
ResultSet results = qe.execSelect();
for ( ; results.hasNext() ; ) {
QuerySolution soln = results.nextSolution() ;
Literal d = soln.getLiteral("nome");
System.out.println("Query solution : " + soln);
System.out.println("Literal : " +d);
}
return Response
.status(Status.CREATED)
.location(
new URI("http://localhost:8080/LAB5/rest/luoghi/"
+ searchPlace)).build();
}// post
public String toURI(String place) {
String newPlaceURI = place.replaceAll(" ", "_");
return newPlaceURI;
}
}
它尚未完成,我只是测试控制台会发生什么,到目前为止还没有。我需要知道如何使用本地rdfModel.txt,将它以乌龟格式放入模型中并进行查询。
以下是rdfModel.txt文件的外观
这几行
<http://localhost:8080/LAB5/rest/luoghi/Oratorio di San Giacomo della Marina>
<descrizione> "L' Oratorio di San Giacomo della Marina, edificato sulle mura della città di Genova, lambite dal mare fino a poco più di un secolo fa, costituì per tutto il medioevo una tappa importante per i pellegrini in cammino verso Santiago di Compostela. Dell’originario edificio stile romanico non rimane più traccia visibile e l’oratorio, come appare oggi, è il frutto delle opere svolte nei secoli XVII e XVIII, periodo in cui la Confraternita di San Giacomo della Marina godeva di grande prestigio e potenza. Solo verso la fine del Settecento assunse l’aspetto attuale con il completamento della decorazione della volta e delle pareti. Danneggiato durante l’ultimo conflitto, si sarebbe avviato verso un’inesorabile decadenza se la Confraternita non avesse iniziato nel 1987 onerosi lavori di restauro che negli anni 1990-1992 subirono un importante e decisivo impulso. È stato necessario intervenire, oltre che sul tetto e sulla facciata, sulle finestre, sul pavimento, sugli intonaci, sugli stucchi, sugli impianti, sugli arredi e - in primis - sulle tele, che costituiscono il valore dell’Oratorio."^^<http://www.w3.org/2001/XMLSchema#string> ;
<immagine> "http://commons.wikimedia.org/wiki/Special:FilePath/Oratorio_di_San_Giacomo_della_Marina_Genova_01.jpg"^^<http://www.w3.org/2001/XMLSchema#string> ;
<latitudine> "44.4053"^^<http://www.w3.org/2001/XMLSchema#string> ;
<longitudine> "8.92861"^^<http://www.w3.org/2001/XMLSchema#string> .