mirror of
				https://github.com/balkian/hook.io-sparql.git
				synced 2025-11-04 09:38:20 +00:00 
			
		
		
		
	First commit
This commit is contained in:
		
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||

 | 
			
		||||
[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
 | 
			
		||||
		Reference in New Issue
	
	Block a user