activerdf_sparql 1.0 → 1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|