J'écris généralement comme ça.
JenaSample.java
String queryString = "(SPARQL)";
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.sparqlService(service, query);
ResultSet results = qe.execSelect();
ResultSetFormatter.out(System.out,results, query);
Les résultats sont affichés dans une liste et je suis content. J'aimerais dire ... Que dois-je faire si je veux obtenir la valeur de chaque variable?
Par exemple, lors de la demande du point de terminaison LOD SPARQL de l'ingrédient alimentaire. LOD de l'ingrédient alimentaire
SPARQL ressemble à ceci.
SPARQL
PREFIX schema: <http://schema.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX cc: <http://creativecommons.org/ns#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?name ?calories ?sodiumContent ?nutritionType ?title
WHERE {
?s schema:category "Fruit de mer";
schema:name ?name;
schema:nutrition ?nutrition;
cc:attributionName ?attributionName.
?nutrition schema:calories ?calories;
schema:sodiumContent ?sodiumContent;
rdf:type ?nutritionType.
?attributionName dc:title ?title.
}
LIMIT 10
En Java, essayez de le supprimer comme ceci.
JenaSample2.java
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.sparqlService(service, query);
ResultSet results = qe.execSelect();
while (results.hasNext()) {
QuerySolution qs = results.next();
RDFNode node = qs.get("s");
Resource resource = node.asResource();
System.out.println(resource.getURI());
RDFNode node2 = qs.get("calories");
Literal literal = node2.asLiteral();
System.out.println(literal.getInt());
}
Expliquer la source ...
Pour autant que je sache, cela ressemble à ceci. Si vous ne l'utilisez pas correctement, veuillez le signaler. m (_ "_ m)
Recommended Posts