Skip to content

Instantly share code, notes, and snippets.

@jindrichmynarz
Created June 28, 2016 06:55
Show Gist options
  • Select an option

  • Save jindrichmynarz/6b45f43f10a5e77313bffdc2c4d60301 to your computer and use it in GitHub Desktop.

Select an option

Save jindrichmynarz/6b45f43f10a5e77313bffdc2c4d60301 to your computer and use it in GitHub Desktop.
Generating SPARQL: Parameterized query
(ns generating-sparql.parametrized-query
(:require [generating-sparql.data :as data]
[clojure.java.io :as io])
(:import [org.apache.jena.query ParameterizedSparqlString QuerySolutionMap]
[org.apache.jena.rdf.model ResourceFactory]
[org.apache.jena.datatypes.xsd XSDDatatype]))
(def parameterized-query (slurp (io/resource "parametrized_query.rq")))
(defn ->integer [n] (ResourceFactory/createTypedLiteral (str n) XSDDatatype/XSDinteger))
(defn query
[limit offset]
(let [bindings (doto (QuerySolutionMap.)
(.add "limit" (->integer limit))
(.add "offset" (->integer offset)))]
(str (ParameterizedSparqlString. parameterized-query bindings))))
; Alternative solution
#_(defn query
[limit offset]
(str (doto (ParameterizedSparqlString. parameterized-query)
(.setLiteral "limit" limit)
(.setLiteral "offset" offset))))
#_(println (query data/limit data/offset))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment