Skip to content

Instantly share code, notes, and snippets.

View jindrichmynarz's full-sized avatar

Jindřich Mynarz jindrichmynarz

View GitHub Profile
@jindrichmynarz
jindrichmynarz / data.md
Last active August 22, 2016 18:41
SPARQL queries over statistical yearbooks of pensions

Data for the queries

The queries use statistical yearbook data on pensions in the Czech Republic. The data is modelled using the Data Cube Vocabulary.

@jindrichmynarz
jindrichmynarz / monetary_value_normalization.rq
Created July 6, 2016 16:42
Normalization of amounts of money using exchange rates and GDP deflators
PREFIX country: <http://eurostat.linked-statistics.org/dic/geo#>
PREFIX currency: <http://eurostat.linked-statistics.org/dic/currency#>
PREFIX deflator-unit: <http://eurostat.linked-statistics.org/dic/unit#>
PREFIX eurostat: <http://eurostat.linked-statistics.org/property#>
PREFIX na-item: <http://eurostat.linked-statistics.org/dic/na_item#>
PREFIX qb: <http://purl.org/linked-data/cube#>
PREFIX sdmx-code: <http://purl.org/linked-data/sdmx/2009/code#>
PREFIX sdmx-dimension: <http://purl.org/linked-data/sdmx/2009/dimension#>
PREFIX sdmx-measure: <http://purl.org/linked-data/sdmx/2009/measure#>
PREFIX statinfo: <http://eurostat.linked-statistics.org/dic/statinfo#>
@jindrichmynarz
jindrichmynarz / spin_jsonld.clj
Created June 28, 2016 07:01
Generating SPARQL: SPIN RDF in JSON-LD
(ns generating-sparql.spin-jsonld
(:require [generating-sparql.data :as data]
[cheshire.core :as json]
[clojure.java.io :as io])
(:import [org.apache.jena.rdf.model ModelFactory]
[org.apache.jena.riot Lang RDFDataMgr]
[org.apache.jena.query DatasetFactory]
[org.topbraid.spin.model SPINFactory]
[org.topbraid.spin.arq ARQFactory]))
@jindrichmynarz
jindrichmynarz / spin.clj
Created June 28, 2016 07:00
Generating SPARQL: SPIN RDF
(ns generating-sparql.spin
(:import [org.apache.jena.rdf.model ModelFactory]
[org.topbraid.spin.model SPINFactory]
[org.topbraid.spin.arq ARQFactory]))
; Disable caching to allow debugging
(.setUseCaches (ARQFactory/get) false)
(def query
(let [model (doto (ModelFactory/createDefaultModel) (.read "query.ttl"))
@jindrichmynarz
jindrichmynarz / jena_query_builder.clj
Created June 28, 2016 07:00
Generating SPARQL: Jena's query builder
(ns generating-sparql.jena-query-builder
(:require [generating-sparql.data :as data])
(:import [org.apache.jena.arq.querybuilder SelectBuilder]
[org.apache.jena.vocabulary RDF]
[org.apache.jena.rdf.model ResourceFactory]
[org.apache.jena.sparql.core Var]
[org.apache.jena.sparql.expr ExprAggregator ExprVar]
[org.apache.jena.sparql.expr.aggregate AggSample]))
(defn query
@jindrichmynarz
jindrichmynarz / matsu.clj
Created June 28, 2016 06:59
Generating SPARQL: Matsu
(ns generating-sparql.matsu
(:require [generating-sparql.data :as data]
[boutros.matsu.sparql :refer :all :exclude [concat count filter]]
[boutros.matsu.core :refer [register-namespaces]]))
(def namespaces {:dbo "http://dbpedia.org/ontology/"
:foaf "http://xmlns.com/foaf/0.1/"
:rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"})
(register-namespaces (into {} (map (fn [[k v]] [k (str "<" v ">")]) namespaces)))
@jindrichmynarz
jindrichmynarz / templating.clj
Created June 28, 2016 06:58
Generating SPARQL: templating
(ns generating-sparql.templating
(:require [generating-sparql.data :as data]
[stencil.core :refer [render-file]]))
(defn query
[properties limit offset]
(render-file "query.mustache" {:properties properties
:limit limit
:offset offset}))
@jindrichmynarz
jindrichmynarz / prepared_statement.clj
Created June 28, 2016 06:58
Generating SPARQL: prepared statement
(ns generating-sparql.prepared-statement
(:require [generating-sparql.data :as data]
[clojure.java.io :as io])
(:import [org.apache.jena.query DatasetFactory QueryExecutionFactory 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))
@jindrichmynarz
jindrichmynarz / parametrized_query.clj
Created June 28, 2016 06:55
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))
@jindrichmynarz
jindrichmynarz / string_concatenation.clj
Created June 28, 2016 06:54
Generating SPARQL: string concatenation
(ns generating-sparql.string-concatenation
(:require [generating-sparql.data :as data]))
(defn query
[properties limit offset]
(letfn [(lines [template-fn properties]
(str \newline
(->> properties
(map template-fn)
(interpose \newline)