activerdf_sparql 1.0 → 1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/activerdf_sparql/sparql.rb +18 -26
- data/lib/activerdf_sparql/sparql_result_parser.rb +1 -6
- metadata +2 -2
data/Rakefile
CHANGED
@@ -1,8 +1,3 @@
|
|
1
|
-
# SPARQL adapter
|
2
|
-
#
|
3
|
-
# Author:: Eyal Oren and Sebastian Gerke
|
4
|
-
# Copyright:: (c) 2005-2006
|
5
|
-
# License:: LGPL
|
6
1
|
require 'active_rdf'
|
7
2
|
require 'queryengine/query2sparql'
|
8
3
|
require 'open-uri'
|
@@ -10,9 +5,9 @@ require 'cgi'
|
|
10
5
|
require 'rexml/document'
|
11
6
|
require "#{File.dirname(__FILE__)}/sparql_result_parser"
|
12
7
|
|
13
|
-
|
8
|
+
# SPARQL adapter
|
14
9
|
class SparqlAdapter < ActiveRdfAdapter
|
15
|
-
$
|
10
|
+
$activerdflog.info "loading SPARQL adapter"
|
16
11
|
ConnectionPool.register_adapter(:sparql, self)
|
17
12
|
|
18
13
|
# Instantiate the connection with the SPARQL Endpoint.
|
@@ -30,7 +25,7 @@ class SparqlAdapter < ActiveRdfAdapter
|
|
30
25
|
raise ActiveRdfError, "Result format unsupported" unless
|
31
26
|
known_formats.include?(@result_format)
|
32
27
|
|
33
|
-
$
|
28
|
+
$activerdflog.info "Sparql adapter initialised #{inspect}"
|
34
29
|
end
|
35
30
|
|
36
31
|
def size
|
@@ -42,21 +37,24 @@ class SparqlAdapter < ActiveRdfAdapter
|
|
42
37
|
def query(query, &block)
|
43
38
|
time = Time.now
|
44
39
|
qs = Query2SPARQL.translate(query)
|
45
|
-
$
|
40
|
+
$activerdflog.debug "executing sparql query #{query}"
|
46
41
|
|
47
42
|
execute_sparql_query(qs, header(query), &block)
|
48
43
|
end
|
49
44
|
|
50
45
|
# do the real work of executing the sparql query
|
51
46
|
def execute_sparql_query(qs, header, &block)
|
52
|
-
$
|
47
|
+
$activerdflog.debug "executing query #{qs} on url #@url"
|
53
48
|
|
54
49
|
# encoding query string in URL
|
55
50
|
url = "#@url?query=#{CGI.escape(qs)}"
|
56
51
|
|
57
52
|
# querying sparql endpoint
|
53
|
+
response = ''
|
58
54
|
begin
|
59
|
-
|
55
|
+
open(url, header) do |f|
|
56
|
+
response = f.read
|
57
|
+
end
|
60
58
|
rescue OpenURI::HTTPError => e
|
61
59
|
raise ActiveRdfError, "could not query SPARQL endpoint, server said: #{e}"
|
62
60
|
return []
|
@@ -105,21 +103,15 @@ class SparqlAdapter < ActiveRdfAdapter
|
|
105
103
|
results = []
|
106
104
|
vars = parsed_object['head']['vars']
|
107
105
|
objects = parsed_object['results']['bindings']
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
objects.each do |obj|
|
118
|
-
obj.each_value do |e|
|
119
|
-
results << create_node(e['type'], e['value'])
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
106
|
+
|
107
|
+
objects.each do |obj|
|
108
|
+
result = []
|
109
|
+
vars.each do |v|
|
110
|
+
result << create_node( obj[v]['type'], obj[v]['value'])
|
111
|
+
end
|
112
|
+
results << result
|
113
|
+
end
|
114
|
+
|
123
115
|
results
|
124
116
|
end
|
125
117
|
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: activerdf_sparql
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: "1.
|
7
|
-
date: 2006-
|
6
|
+
version: "1.1"
|
7
|
+
date: 2006-12-08 00:00:00 +00:00
|
8
8
|
summary: ActiveRDF adapter to SPARQL endpoint
|
9
9
|
require_paths:
|
10
10
|
- lib
|