seki

Semantic Web middleware

npm install seki
16 downloads in the last month

Seki is a front-end to an independent SPARQL server using node.js

It operates as a Web server, building queries from HTTP requests and passing them to the SPARQL server and formatting the results to HTML which is passed back to the client (typically a browser).

Block Diagram

For updates see Seki on G+

Also TODO List

Note 2013-08-15 : currently trying to package as npm and tidy up dependencies - may be a messfor a little while

If (were it live) you pointed a browser at http://hyperdata.org/seki/Hello it would take "http://hyperdata.org/seki/Hello" to build a query to find out about that resource - in the data store it will have a title, content etc. - which then get turned into HTML to show in the browser.

There is a form to allow POSTing, inserting title, content etc. for a given resource into the RDF store (there's no authentication as yet). Files can also be served from the filesystem.

It has been built against a Fuseki server, which uses protocols/query syntax according to the latest SPARQL 1.1 drafts, and so it should be reusable with any SPARQL server.

(Note that the current version includes a little SAX-based XML SPARQL results to JSON converter, this was for demo purposes (don't ask!) - future versions may use JSON SPARQL results directly).

At present it considers all resources to be information resources - the ones that get displayed are instances of sioc:Post. Descriptions of those resources are contained in little named graphs (named by the resources in question). The Fuseki config includes #dataset tdb:unionDefaultGraph true so SPARQL queries can be applied over a (virtual) merge of all the named graphs.

After the tutorial version is stable the plan is to use it as an experimental Read/Write Data Web testbed, e.g. adding support for the linked data API, RDF affordances play.

See contents.txt in individual folders for description.

Installation/running is easy :

  • install node.js (or copy node.exe into the src dir)
  • run Fuseki using jena-fuseki-0.2.6/run.bat (make executable first on *nix)
  • in another terminal: node seki.js
  • point a browser at http://localhost:8888/seki/

post data should have URIs of the form http://hyperdata.org/seki/Hello the Fuseki server (SPARQL endpoint) will be accessible at http://localhost:3030/

Exploring data from Fuseki, first select the /seki dataset through the Control Panel, then go to the query panel with e.g. SELECT * WHERE { GRAPH ?graph { ?s ?p ?o } }

Danny 2011-2013

npm loves you