Search in sources :

Example 81 with ResultSet

use of org.apache.jena.query.ResultSet in project jena by apache.

the class TestTextHighlighting method doTestSearchWithLiterals.

protected Map<String, Literal> doTestSearchWithLiterals(String queryString, Set<String> expectedEntityURIs) {
    Map<String, Literal> literals = new HashMap<>();
    Query query = QueryFactory.create(queryString);
    dataset.begin(ReadWrite.READ);
    try (QueryExecution qexec = QueryExecutionFactory.create(query, dataset)) {
        ResultSet results = qexec.execSelect();
        assertEquals(expectedEntityURIs.size() > 0, results.hasNext());
        int count;
        for (count = 0; results.hasNext(); count++) {
            QuerySolution soln = results.nextSolution();
            String entityUri = soln.getResource("s").getURI();
            assertTrue(expectedEntityURIs.contains(entityUri));
            Literal literal = soln.getLiteral("lit");
            assertNotNull(literal);
            literals.put(entityUri, literal);
        }
        assertEquals(expectedEntityURIs.size(), count);
    } finally {
        dataset.end();
    }
    return literals;
}
Also used : Query(org.apache.jena.query.Query) HashMap(java.util.HashMap) QuerySolution(org.apache.jena.query.QuerySolution) Literal(org.apache.jena.rdf.model.Literal) ResultSet(org.apache.jena.query.ResultSet) QueryExecution(org.apache.jena.query.QueryExecution)

Example 82 with ResultSet

use of org.apache.jena.query.ResultSet in project jena by apache.

the class TestTextMultilingualEnhancements02 method doTestSearchWithLiterals.

protected Map<String, Literal> doTestSearchWithLiterals(String queryString, Set<String> expectedEntityURIs) {
    Map<String, Literal> literals = new HashMap<>();
    Query query = QueryFactory.create(queryString);
    dataset.begin(ReadWrite.READ);
    try (QueryExecution qexec = QueryExecutionFactory.create(query, dataset)) {
        ResultSet results = qexec.execSelect();
        assertEquals(expectedEntityURIs.size() > 0, results.hasNext());
        int count;
        for (count = 0; results.hasNext(); count++) {
            QuerySolution soln = results.nextSolution();
            String entityUri = soln.getResource("s").getURI();
            assertTrue(expectedEntityURIs.contains(entityUri));
            Literal literal = soln.getLiteral("lit");
            assertNotNull(literal);
            literals.put(entityUri, literal);
        }
        assertEquals(expectedEntityURIs.size(), count);
    } finally {
        dataset.end();
    }
    return literals;
}
Also used : Query(org.apache.jena.query.Query) HashMap(java.util.HashMap) QuerySolution(org.apache.jena.query.QuerySolution) Literal(org.apache.jena.rdf.model.Literal) ResultSet(org.apache.jena.query.ResultSet) QueryExecution(org.apache.jena.query.QueryExecution)

Example 83 with ResultSet

use of org.apache.jena.query.ResultSet in project opentheso by miledrousset.

the class AlignmentQuery method queryBNF.

/**
 * cette fonction permet de récuperer les alignements de la BNF
 * requête de type Sparql
 * @param idC
 * @param idTheso
 * @param lexicalValue
 * @param lang
 * @param requete
 * @param source
 * @return
 */
public ArrayList<NodeAlignment> queryBNF(String idC, String idTheso, String lexicalValue, String lang, String requete, String source) {
    listeAlign = new ArrayList<>();
    // lexicalValue = lexicalValue.replaceAll(" ", "%20");
    requete = requete.replace("##lang##", "\"" + lang + "\"");
    if (lexicalValue.contains(" ")) {
        String[] valueTemp = lexicalValue.split(" ");
        boolean first = true;
        for (String valuetemp : valueTemp) {
            requete = requete.substring(0, requete.length() - 1);
            if (first) {
                requete = requete.replace("##value##", valuetemp.trim());
                first = false;
            } else {
                requete = requete.concat(" && regex(?value, \"" + valuetemp.trim() + "\",\"i\")");
            }
        }
        requete = requete + ")";
    } else {
        requete = requete.replace("##value##", "\"" + lexicalValue + "\"");
    }
    /*requete = "PREFIX skos: <http://www.w3.org/2004/02/skos/core#>" +
                " PREFIX xml: <http://www.w3.org/XML/1998/namespace>" +
                " SELECT ?instrument ?prop ?value" +
                " where {  <http://data.bnf.fr/ark:/12148/cb119367821> skos:narrower+ ?instrument.  ?instrument ?prop ?value.  FILTER( (regex(?prop,skos:prefLabel) || regex(?prop,skos:altLabel))  && regex(?value, \"cornemuse\",\"i\"))   filter(lang(?value) =\"fr\")} LIMIT 10";
      */
    // System.out.println(requete);
    Query query = QueryFactory.create(requete);
    QueryExecution qexec = QueryExecutionFactory.sparqlService("http://data.bnf.fr/sparql", query);
    ResultSet results = qexec.execSelect();
    while (results.hasNext()) {
        QuerySolution qs = results.next();
        NodeAlignment na = new NodeAlignment();
        na.setInternal_id_concept(idC);
        na.setInternal_id_thesaurus(idTheso);
        na.setConcept_target(qs.get("value").toString());
        // qs.get("comment").toString());
        na.setDef_target("");
        na.setThesaurus_target(source);
        na.setUri_target(qs.get("instrument").toString());
        listeAlign.add(na);
    }
    qexec.close();
    return listeAlign;
}
Also used : NodeAlignment(mom.trd.opentheso.bdd.helper.nodes.NodeAlignment) Query(org.apache.jena.query.Query) QuerySolution(org.apache.jena.query.QuerySolution) ResultSet(org.apache.jena.query.ResultSet) QueryExecution(org.apache.jena.query.QueryExecution)

Example 84 with ResultSet

use of org.apache.jena.query.ResultSet in project opentheso by miledrousset.

the class AlignmentQuery method queryDBPedia.

/**
 * Cette fonction permet de récupérer les alignements présents sur DBPedia
 * pour un concept passé en paramètre
 *
 * @param idC
 * @param idTheso
 * @param lexicalValue
 * @param lang
 * @param source
 * @return
 */
public ArrayList<NodeAlignment> queryDBPedia(String idC, String idTheso, String lexicalValue, String lang, String source) {
    listeAlign = new ArrayList<>();
    if (lexicalValue.contains(" ")) {
        lexicalValue = lexicalValue.substring(0, lexicalValue.indexOf(" "));
    }
    lexicalValue = String.valueOf(lexicalValue.charAt(0)).toUpperCase() + lexicalValue.substring(1);
    String sparqlQueryString1 = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>" + "PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>" + "PREFIX foaf: <http://xmlns.com/foaf/0.1/>" + "SELECT * WHERE {" + "       ?s rdfs:label ?label ." + "       ?s rdfs:comment ?comment ." + "       ?s dbpedia-owl:thumbnail ?thumbnail ." + "       ?s foaf:isPrimaryTopicOf ?primaryTopicOf ." + "       FILTER(regex(?s,\"resource/" + lexicalValue + "*\"))" + "       FILTER(lang(?label) = \"" + lang + "\")" + "       FILTER(lang(?comment) = \"" + lang + "\")" + "   }";
    // System.out.println(sparqlQueryString1);
    Query query = QueryFactory.create(sparqlQueryString1);
    QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);
    ResultSet results = qexec.execSelect();
    while (results.hasNext()) {
        QuerySolution qs = results.next();
        NodeAlignment na = new NodeAlignment();
        na.setInternal_id_concept(idC);
        na.setInternal_id_thesaurus(idTheso);
        na.setConcept_target(qs.get("label").toString());
        na.setDef_target(qs.get("comment").toString());
        na.setThesaurus_target(source);
        na.setUri_target(qs.get("primaryTopicOf").toString());
        listeAlign.add(na);
    }
    qexec.close();
    return listeAlign;
}
Also used : NodeAlignment(mom.trd.opentheso.bdd.helper.nodes.NodeAlignment) Query(org.apache.jena.query.Query) QuerySolution(org.apache.jena.query.QuerySolution) ResultSet(org.apache.jena.query.ResultSet) QueryExecution(org.apache.jena.query.QueryExecution)

Example 85 with ResultSet

use of org.apache.jena.query.ResultSet in project eol-globi-data by jhpoelen.

the class SPARQLTest method executeQuerySampleData.

@Test
public void executeQuerySampleData() {
    Model model = ModelFactory.createDefaultModel();
    model.read(getClass().getResourceAsStream("data.ttl"), null, "TTL");
    String queryString = "PREFIX foaf: <http://xmlns.com/foaf/0.1/> " + "SELECT ?name WHERE { " + " ?person foaf:mbox <mailto:alice@example.org> . " + " ?person foaf:name ?name . " + "}";
    Query query = QueryFactory.create(queryString);
    QueryExecution exec = QueryExecutionFactory.create(query, model);
    try {
        ResultSet results = exec.execSelect();
        int counter = 0;
        while (results.hasNext()) {
            QuerySolution solution = results.nextSolution();
            Literal name = solution.getLiteral("name");
            assertThat(name.toString(), is("Alice"));
            counter++;
        }
        assertThat(counter, is(1));
    } finally {
        exec.close();
    }
}
Also used : Query(org.apache.jena.query.Query) QuerySolution(org.apache.jena.query.QuerySolution) Literal(org.apache.jena.rdf.model.Literal) Model(org.apache.jena.rdf.model.Model) ResultSet(org.apache.jena.query.ResultSet) QueryExecution(org.apache.jena.query.QueryExecution) Test(org.junit.Test)

Aggregations

ResultSet (org.apache.jena.query.ResultSet)166 QuerySolution (org.apache.jena.query.QuerySolution)107 QueryExecution (org.apache.jena.query.QueryExecution)105 Test (org.junit.Test)98 ArrayList (java.util.ArrayList)73 Query (org.apache.jena.query.Query)51 Dataset (org.apache.jena.query.Dataset)43 Resource (org.apache.jena.rdf.model.Resource)41 Literal (org.apache.jena.rdf.model.Literal)20 BuilderResultSet (org.apache.jena.sparql.sse.builders.BuilderResultSet)17 Model (org.apache.jena.rdf.model.Model)14 ByteArrayInputStream (java.io.ByteArrayInputStream)12 BaseTest (org.apache.jena.atlas.junit.BaseTest)12 Node (org.apache.jena.graph.Node)9 ByteArrayOutputStream (java.io.ByteArrayOutputStream)8 HashMap (java.util.HashMap)8 RDFNode (org.apache.jena.rdf.model.RDFNode)8 IOException (java.io.IOException)7 InputStream (java.io.InputStream)6 QueryIterator (org.apache.jena.sparql.engine.QueryIterator)6