ascending argument allows to specify if the ordering is ascending or descendingSparqlRequest request = new SparqlRequest("sitac"); request.setSelectAll(); request.addType("zone", "TaskZone"); request.addPropertyValue("zone", "isTasked", true);Will return the following SPARQL content:
SELECT * WHERE { ?zone rdf:type sitac:TaskZone . ?zone sitac:isTasked "true" . }
SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addType("zone", "TaskZone"); request.addPropertyValue("zone", "isTasked", true);Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone rdf:type sitac:TaskZone . ?zone sitac:isTasked "true" . }
SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); VariableExpression varExpr = new VariableExpression("altitude"); FunctionExpression function = new FunctionExpression(FunctionExpression.FUNCTION_FLOOR, varExpr); request.addSelect(function, "alt"); request.addType("zone", "Zone"); request.addPropertyRef("zone", "hasAltitude", "altitude");Will return the following SPARQL content:
SELECT ?zone (floor(?altitude) AS ?alt) WHERE { ?zone rdf:type sitac:Zone . ?zone sitac:hasAltitude ?altitude . }
Filter instance allows to add as many Expression elements as you want.SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addAdditionalVariable("index"); request.addType("zone", "TaskZone"); request.addPropertyValue("zone", "isTasked", true); request.addPropertyRef("zone", "hasIndex", "index"); Filter filter = request.addFilter(); VariableExpression varExpr = filter.createVariable("index"); LiteralExpression literal = filter.createLiteral(5); ComparisonExpression comp = new ComparisonExpression(varExpr, ComparisonExpression.LESS, literal); filter.addExpression(comp);Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone rdf:type sitac:TaskZone . ?zone sitac:isTasked "true" . ?zone sitac:hasIndex ?index . FILTER (?index < 5) }
Bind instance allows to add as many Expression elements. SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addAdditionalVariable("index"); request.addType("zone", "TaskZone"); request.addPropertyValue("zone", "isTasked", true); request.addPropertyRef("zone", "hasIndex", "index"); Bind bind = request.addBind("var"); VariableExpression varExpr = bind.createVariable("index"); LiteralExpression literal = bind.createLiteral(2); ArithmeticExpression ar = new ArithmeticExpression(varExpr, ArithmeticExpression.MULTIPLY, literal); bind.addExpression(ar);Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone rdf:type sitac:TaskZone . ?zone sitac:isTasked "true" . ?zone sitac:hasIndex ?index . BIND (?index * 2 as ?var) }
rdf:type for a variable. For example:SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addType("zone", "TaskZone");Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone rdf:type sitac:TaskZone . }
rdf:subClassOf for a variable. For example:SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addSubClassOf("zone", "TaskZone");Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone rdf:subClassOf sitac:TaskZone . }The ISparqlRequestGroup.addSubClassOfStar(String, String) method allows to specify a
rdf:subClassOf* for a variable[1]
. For example:SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addSubClassOfStar("zone", "TaskZone");Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone rdf:subClassOf* sitac:TaskZone . }
SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addAdditionalVariable("index"); request.addPropertyRef("zone", "hasIndex", "index");Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone sitac:hasIndex ?index . }
SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addPropertyValue("zone", "isTasked", true);Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone sitac:isTasked "true" . }
SparqlRequest request = new SparqlRequest(SCHEMA); request.addSelect("label"); request.addAdditionalVariable("wpt"); request.addType("wpt", "Waypoint"); request.addPropertyIndividualRef("wpt", "hasWaypointType", "ATT"); request.addPropertyRef("wpt", "Label", "label");Will return the following SPARQL content:
SELECT ?label WHERE { ?wpt rdf:type inav:Waypoint . ?wpt inav:hasWaypointType inav:ATT . ?wpt inav:Label ?label .
SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addType("zone", "TaskZone"); request.addAdditionalVariable("label"); request.addPropertyRef("zone", "Label", "label"); request.addPropertyValues("label", SparqlRequest.createValuesList("label1", "label2"));Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone rdf:type sitac:TaskZone . ?zone sitac:Label ?label . VALUES ?label {"label1" "label2" } }
addOptionalConstruct() method allows to create an OPTIONAL construct within the Sparql request. This construct can contain several expressions. The returned construct have the same API as the root request.SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addType("zone", "TaskZone"); request.addPropertyValue("zone", "isTasked", true, true);Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone rdf:type sitac:TaskZone . OPTIONAL { ?zone sitac:isTasked "true" } }For an OPTIONAL construct for several properties:
SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addType("zone", "TaskZone"); SparqlRequest.Group optional = request.addOptionalConstruct(); optional.addPropertyValue("zone", "isTasked", true); optional.addPropertyValue("zone", "isFriend", true);Will return the following SPARQL content:
SELECT ?zone WHERE { ?zone rdf:type sitac:TaskZone . OPTIONAL { ?zone sitac:isFriend "true" . ?zone sitac:isTasked "true" . } }
SparqlRequest request = new SparqlRequest(SCHEMA); request.addSelect("label"); request.addSelect("distance"); request.addSelect("visibility"); SparqlRequest innerRequest = request.addInnerQuery(); innerRequest.addSelect("label"); innerRequest.addSelect("distance"); innerRequest.addAdditionalVariable("wpt"); innerRequest.addAdditionalVariable("ac"); ...
addPrefixed* methods. For example:SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("zone"); request.addSelect("altitude"); request.addType("zone", "Zone"); request.addPrefixedPropertyRef("zone", "myPrefix", "hasAltitude", "altitude");Will return the following SPARQL content:
SELECT ?zone ?altitude WHERE { ?zone rdf:type sitac:Zone . ?zone myPrefix:hasAltitude ?altitude . }
Aircraft class. We want to create a request getting the list of aircrafts.SparqlRequest request = new SparqlRequest("sitac"); request.addSelect("elt"); request.addType("elt", "Aircraft"); String query = request.getSPARQL();We will generate the following query:
SELECT ?elt WHERE { ?elt rdf:type sitac:Aircraft . }
Copyright 2025 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence