Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-dev] Java API for Snap SPARQL, not just the Protege plugin?

Kenny Cason Kenneth.Cason at
Fri May 31 11:54:52 PDT 2019

Thanks, that does the trick!

The query returns a SPARQLQueryResult object. I know there is a ResultSet method to convert ResultSets to JSON strings. Is there a known way to turn a SPARQLQueryResult object into JSON or into a ResultSet?

I can write one myself but I'd rather not reinvent the wheel.

Here is the call from

    private static void parse(OWLOntology ontology, String s) {

        SPARQLTokenizer tokenizer = new SPARQLTokenizerJavaCCImpl(ontology, new StringReader(s));
        SPARQLParserImpl parser = new SPARQLParserImpl(tokenizer);

        Query query = parser.parseQuery();

        SPARQLQueryResult result = queryEngine.ask(query.asSelectQuery());

Thanks as usual!


From: protege-dev <protege-dev-bounces at> On Behalf Of Lorenz B.
Sent: Friday, May 17, 2019 12:42 AM
To: protege-dev at
Subject: Re: [protege-dev] Java API for Snap SPARQL, not just the Protege plugin?

CAUTION: External Email

Apache Jena or RDF4J are the de-facto standard Java APIs for SPARQL

Or you just stick to the Snap SPARQL API, an example how to create parser and use the query engine can be found here [1]


Is there a Snap SPARQL API for Java that takes a query string (formatted like the default query in the Protégé plugin) and returns the results?

For example:

String myQuery =
"PREFIX owl: <><>" +
"PREFIX rdf: <><>" +
"PREFIX rdfs: <><> " +
" " +
"SELECT ?x (STR(?lab) AS ?label) WHERE { " +
"    ?x rdf:type owl:Class . " +
"    OPTIONAL {?x rdfs:label ?lab} " +
"}" +
"ORDER BY ?label";

ResultSet myResultSet = magicalSnapSparqlEngine.getResults(myQuery);

This is what it looks like from the Protégé Snap SPARQL plugin:

[cid:image001.jpg at 01D517B7.DB0AF4C0]

FYI: I have a query working that uses the de.derivo.sparqldlapi but takes a differently formatted string as input (as far as I can tell).

de.derivo.sparqldlapi example:

   final String query_string = query_prefix +
            "SELECT *\n" +
            "WHERE { \n" +
            "Type(?myPizza, ont:pizza),\n" +
            "Type(?myEffect, ont:effect),\n" +
            "Type(?myGastroProblem, ont:gastroproblem),\n" +

            "PropertyValue(?classD, ont:hasEffect, ?myEffect),\n" +
            "PropertyValue(?classD, ont:exhibits, ?myGastroProblem)\n" +

I need this to be formatted more like what the Snap SPARQL plugin takes as input, so I can test it in Protégé before committing it to Java code:

   final String query_string = query_prefix +
            "SELECT *\n" +
            "WHERE { \n" +
            "?myPizza a ont:pizza .\n" +
            "?myEffect a ont:effect .\n" +
            "?myGastroProblem a ont:gastroproblem .\n" +

            "?classD ont:hasEffect ?myEffect .\n" +
            "?classD ont:exhibits ?myGastroProblem .\n" +


-Kenny Cason, CISSP
Radiance Technologies
Cyber Solutions Group
3133 General Hudnell Dr. Ste. 116
San Antonio, TX 78226
KCason at<mailto:KCason at>


protege-dev mailing list

protege-dev at<mailto:protege-dev at>


Lorenz Bühmann

AKSW group, University of Leipzig

Group: - semantic web research center
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 36192 bytes
Desc: image001.jpg
URL: <>

More information about the protege-dev mailing list