mirror of
https://github.com/balkian/hook.io-sparql.git
synced 2024-11-22 05:32:28 +00:00
First commit
This commit is contained in:
commit
a75a16dee0
15
README.md
Normal file
15
README.md
Normal file
@ -0,0 +1,15 @@
|
||||
![GSI Logo](http://gsi.dit.upm.es/templates/jgsi/images/logo.png)
|
||||
[Web 4.0](http://gsi.dit.upm.es)
|
||||
==================================
|
||||
|
||||
Description
|
||||
---------------------
|
||||
This module is part of the Web4.0 project.
|
||||
|
||||
So far, it performs basic queries to dbpedia, but the same code could be use to query any other sparql endpoint.
|
||||
|
||||
Dependencies
|
||||
--------------------
|
||||
coffee-script
|
||||
sparql
|
||||
hook.io
|
4
bin/index.js
Normal file
4
bin/index.js
Normal file
@ -0,0 +1,4 @@
|
||||
require('coffee-script')
|
||||
var Hook = require('../lib/hook.io-dbpedia').DBPediaHook
|
||||
var SparHook = new Hook()
|
||||
SparHook.start()
|
41
lib/hook.io-dbpedia.coffee
Normal file
41
lib/hook.io-dbpedia.coffee
Normal file
@ -0,0 +1,41 @@
|
||||
# Imports
|
||||
sparql = require 'sparql'
|
||||
Hook = require('hook.io').Hook
|
||||
|
||||
examplequery = "
|
||||
SELECT DISTINCT ?label ?abstract ?population
|
||||
WHERE { ?place rdf:type dbpedia-owl:PopulatedPlace.
|
||||
?place foaf:name ?label.
|
||||
?place dbpprop:population ?population.
|
||||
OPTIONAL{
|
||||
?place dbpedia-owl:abstract ?abstract.
|
||||
FILTER langMatches( lang(?abstract), 'en')
|
||||
}
|
||||
} LIMIT 10"
|
||||
|
||||
|
||||
class DBPediaHook extends Hook
|
||||
constructor: (options) ->
|
||||
self = this
|
||||
Hook.call(self, options)
|
||||
@client = new sparql.Client 'http://dbpedia.org/sparql'
|
||||
#Set some initial namespaces
|
||||
@client.prefix_map.dbprop = 'http://dbpedia.org/property/'
|
||||
@client.prefix_map.dbpedia = 'http://dbpedia.org/resource/'
|
||||
@client.prefix_map.rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
|
||||
@client.prefix_map.dbpedia-owl = 'http://dbpedia.org/ontology/'
|
||||
|
||||
self.on 'hook::ready', ->
|
||||
self.on '*::query', (data,fn) ->
|
||||
@queryDBPedia data , (res) ->
|
||||
console.log res
|
||||
fn res
|
||||
console.log "Created"
|
||||
|
||||
|
||||
queryDBPedia: (query, cb) ->
|
||||
console.log ">>Going to query"
|
||||
@client.rows query, (err, res) ->
|
||||
cb res
|
||||
|
||||
exports.DBPediaHook = DBPediaHook
|
Loading…
Reference in New Issue
Block a user