Home

Awesome

kineo-endpoint

SPARQL 1.1 Protocol implementation in Swift/Vapor

Build

% swift build -c release

Creating an in-memory endpoint

Create an in-memory endpoint with data loaded into the default graph:

% ./.build/release/kineo-endpoint -m --default-graph=examples/geo-data/geo.ttl &

Creating a persistent database endpoint

Alternatively, a persistent database file (geo.db) can be created and loaded with N-Triples or Turtle files offline:

% ./.build/release/kineo-create-db -q geo.db --default-graph=examples/geo-data/geo.ttl

After loading data, an endpoint can be started using this persistent database:

./.build/release/kineo-endpoint -q geo.db &

Query

Querying of the data can be done using SPARQL protocol:

% curl -s -H "Accept: application/sparql-results+json" -H "Content-Type: application/sparql-query" --data 'PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> SELECT ?s ?lat ?long WHERE { ?s geo:lat ?lat ; geo:long ?long } LIMIT 1' 'http://localhost:8080/sparql' | jq .
{
  "head": {
    "vars": [ "s", "lat", "long" ]
  },
  "results": {
    "bindings": [
      {
        "lat": {
          "datatype": "http://www.w3.org/2001/XMLSchema#float",
          "type": "literal",
          "value": "51.78333333333333"
        },
        "long": {
          "datatype": "http://www.w3.org/2001/XMLSchema#float",
          "type": "literal",
          "value": "4.616666666666667"
        },
        "s": {
          "type": "uri",
          "value": "http://dbpedia.org/resource/'s-Gravendeel"
        }
      }
    ]
  }
}