sparql-client 0.0.4 → 0.0.5
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/CREDITS +4 -0
- data/README +39 -14
- data/VERSION +1 -1
- data/lib/sparql.rb +4 -1
- data/lib/sparql/client.rb +47 -20
- data/lib/sparql/client/query.rb +97 -34
- data/lib/sparql/client/version.rb +2 -3
- metadata +33 -33
- data/CONTRIBUTORS +0 -1
data/CREDITS
ADDED
data/README
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
SPARQL Client for RDF.rb
|
2
2
|
========================
|
3
3
|
|
4
|
-
This is a
|
4
|
+
This is a [Ruby][] implementation of a [SPARQL][] client for [RDF.rb][].
|
5
5
|
|
6
6
|
* <http://github.com/bendiken/sparql-client>
|
7
7
|
|
@@ -68,7 +68,8 @@ Documentation
|
|
68
68
|
Dependencies
|
69
69
|
------------
|
70
70
|
|
71
|
-
* [
|
71
|
+
* [Ruby](http://ruby-lang.org/) (>= 1.8.7) or (>= 1.8.1 with [Backports][])
|
72
|
+
* [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.2.0)
|
72
73
|
* [JSON](http://rubygems.org/gems/json_pure) (>= 1.4.0)
|
73
74
|
|
74
75
|
Installation
|
@@ -91,6 +92,35 @@ as follows:
|
|
91
92
|
|
92
93
|
% wget http://github.com/bendiken/sparql-client/tarball/master
|
93
94
|
|
95
|
+
Authors
|
96
|
+
-------
|
97
|
+
|
98
|
+
* [Arto Bendiken](mailto:arto.bendiken@gmail.com) - <http://ar.to/>
|
99
|
+
* [Ben Lavender](mailto:blavender@gmail.com) - <http://bhuga.net/>
|
100
|
+
|
101
|
+
Contributors
|
102
|
+
------------
|
103
|
+
|
104
|
+
* [Gabriel Horner](http://github.com/cldwalker) - <http://tagaholic.me/>
|
105
|
+
* [Nicholas Humfrey](http://github.com/njh) - <http://www.aelius.com/njh/>
|
106
|
+
* [David Nielsen](http://github.com/drankard) - <http://github.com/drankard>
|
107
|
+
* [Thamaraiselvan Poomalai](http://github.com/selvan) - <http://softonaut.blogspot.com/>
|
108
|
+
|
109
|
+
Contributing
|
110
|
+
------------
|
111
|
+
|
112
|
+
* Do your best to adhere to the existing coding conventions and idioms.
|
113
|
+
* Don't use hard tabs, and don't leave trailing whitespace on any line.
|
114
|
+
* Do document every method you add using [YARD][] annotations. Read the
|
115
|
+
[tutorial][YARD-GS] or just look at the existing code for examples.
|
116
|
+
* Don't touch the `.gemspec`, `VERSION` or `AUTHORS` files. If you need to
|
117
|
+
change them, do so on your private branch only.
|
118
|
+
* Do feel free to add yourself to the `CREDITS` file and the corresponding
|
119
|
+
list in the the `README`. Alphabetical order applies.
|
120
|
+
* Do note that in order for us to merge any non-trivial changes (as a rule
|
121
|
+
of thumb, additions larger than about 15 lines of code), we need an
|
122
|
+
explicit [public domain dedication][PDD] on record from you.
|
123
|
+
|
94
124
|
Resources
|
95
125
|
---------
|
96
126
|
|
@@ -101,22 +131,13 @@ Resources
|
|
101
131
|
* <http://raa.ruby-lang.org/project/sparql-client/>
|
102
132
|
* <http://www.ohloh.net/p/rdf>
|
103
133
|
|
104
|
-
Authors
|
105
|
-
-------
|
106
|
-
|
107
|
-
* [Arto Bendiken](mailto:arto.bendiken@gmail.com) - <http://ar.to/>
|
108
|
-
* [Ben Lavender](mailto:blavender@gmail.com) - <http://bhuga.net/>
|
109
|
-
|
110
|
-
Contributors
|
111
|
-
------------
|
112
|
-
* [Nicholas Humfrey](mailto:njh@aelius.com) - <http://www.aelius.com/njh/>
|
113
|
-
|
114
134
|
License
|
115
135
|
-------
|
116
136
|
|
117
|
-
|
118
|
-
|
137
|
+
This is free and unencumbered public domain software. For more information,
|
138
|
+
see <http://unlicense.org/> or the accompanying {file:UNLICENSE} file.
|
119
139
|
|
140
|
+
[Ruby]: http://ruby-lang.org/
|
120
141
|
[RDF]: http://www.w3.org/RDF/
|
121
142
|
[SPARQL]: http://en.wikipedia.org/wiki/SPARQL
|
122
143
|
[SPARQL JSON]: http://www.w3.org/TR/rdf-sparql-json-res/
|
@@ -125,3 +146,7 @@ information, see <http://unlicense.org/> or the accompanying UNLICENSE file.
|
|
125
146
|
[RDF::Repository]: http://rdf.rubyforge.org/RDF/Repository.html
|
126
147
|
[DSL]: http://en.wikipedia.org/wiki/Domain-specific_language
|
127
148
|
"domain-specific language"
|
149
|
+
[YARD]: http://yardoc.org/
|
150
|
+
[YARD-GS]: http://rubydoc.info/docs/yard/file/docs/GettingStarted.md
|
151
|
+
[PDD]: http://unlicense.org/#unlicensing-contributions
|
152
|
+
[Backports]: http://rubygems.org/gems/backports
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
data/lib/sparql.rb
CHANGED
data/lib/sparql/client.rb
CHANGED
@@ -43,12 +43,7 @@ module SPARQL
|
|
43
43
|
#
|
44
44
|
# @return [Query]
|
45
45
|
def ask(*args)
|
46
|
-
|
47
|
-
result = Query.ask(*args)
|
48
|
-
(class << result; self; end).send(:define_method, :execute) do
|
49
|
-
client.query(self)
|
50
|
-
end
|
51
|
-
result
|
46
|
+
call_query_method(:ask, *args)
|
52
47
|
end
|
53
48
|
|
54
49
|
##
|
@@ -57,12 +52,16 @@ module SPARQL
|
|
57
52
|
# @param [Array<Symbol>] variables
|
58
53
|
# @return [Query]
|
59
54
|
def select(*args)
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
55
|
+
call_query_method(:select, *args)
|
56
|
+
end
|
57
|
+
|
58
|
+
##
|
59
|
+
# Executes a `DESCRIBE` query.
|
60
|
+
#
|
61
|
+
# @param [Array<Symbol, RDF::URI>] variables
|
62
|
+
# @return [Query]
|
63
|
+
def describe(*args)
|
64
|
+
call_query_method(:describe, *args)
|
66
65
|
end
|
67
66
|
|
68
67
|
##
|
@@ -71,8 +70,14 @@ module SPARQL
|
|
71
70
|
# @param [Array<Symbol>] pattern
|
72
71
|
# @return [Query]
|
73
72
|
def construct(*args)
|
73
|
+
call_query_method(:construct, *args)
|
74
|
+
end
|
75
|
+
|
76
|
+
##
|
77
|
+
# @private
|
78
|
+
def call_query_method(meth, *args)
|
74
79
|
client = self
|
75
|
-
result = Query.
|
80
|
+
result = Query.send(meth, *args)
|
76
81
|
(class << result; self; end).send(:define_method, :execute) do
|
77
82
|
client.query(self)
|
78
83
|
end
|
@@ -84,6 +89,7 @@ module SPARQL
|
|
84
89
|
#
|
85
90
|
# @param [String, #to_s] url
|
86
91
|
# @param [Hash{Symbol => Object}] options
|
92
|
+
# @option options [String] :content_type
|
87
93
|
# @return [Array<RDF::Query::Solution>]
|
88
94
|
def query(query, options = {})
|
89
95
|
get(query) do |response|
|
@@ -95,16 +101,17 @@ module SPARQL
|
|
95
101
|
when Net::HTTPServerError # 5xx
|
96
102
|
raise ServerError.new(response.body)
|
97
103
|
when Net::HTTPSuccess # 2xx
|
98
|
-
parse_response(response)
|
104
|
+
parse_response(response, options)
|
99
105
|
end
|
100
106
|
end
|
101
107
|
end
|
102
108
|
|
103
109
|
##
|
104
110
|
# @param [Net::HTTPSuccess] response
|
111
|
+
# @param [Hash{Symbol => Object}] options
|
105
112
|
# @return [Object]
|
106
|
-
def parse_response(response)
|
107
|
-
case content_type = response.content_type
|
113
|
+
def parse_response(response, options = {})
|
114
|
+
case content_type = options[:content_type] || response.content_type
|
108
115
|
when RESULT_BOOL # Sesame-specific
|
109
116
|
response.body == 'true'
|
110
117
|
when RESULT_JSON
|
@@ -112,7 +119,7 @@ module SPARQL
|
|
112
119
|
when RESULT_XML
|
113
120
|
parse_xml_bindings(response.body)
|
114
121
|
else
|
115
|
-
parse_rdf_serialization(response)
|
122
|
+
parse_rdf_serialization(response, options)
|
116
123
|
end
|
117
124
|
end
|
118
125
|
|
@@ -202,9 +209,11 @@ module SPARQL
|
|
202
209
|
|
203
210
|
##
|
204
211
|
# @param [Net::HTTPSuccess] response
|
212
|
+
# @param [Hash{Symbol => Object}] options
|
205
213
|
# @return [RDF::Enumerable]
|
206
|
-
def parse_rdf_serialization(response)
|
207
|
-
|
214
|
+
def parse_rdf_serialization(response, options = {})
|
215
|
+
options = {:content_type => response.content_type} if options.empty?
|
216
|
+
if reader = RDF::Reader.for(options)
|
208
217
|
reader.new(response.body)
|
209
218
|
end
|
210
219
|
end
|
@@ -227,6 +236,24 @@ module SPARQL
|
|
227
236
|
|
228
237
|
protected
|
229
238
|
|
239
|
+
##
|
240
|
+
# Returns an HTTP class or HTTP proxy class based on environment http_proxy & https_proxy settings
|
241
|
+
# @return [Net::HTTP::Proxy]
|
242
|
+
def http_klass(scheme)
|
243
|
+
proxy_uri = nil
|
244
|
+
case scheme
|
245
|
+
when "http"
|
246
|
+
proxy_uri = URI.parse(ENV['http_proxy']) unless ENV['http_proxy'].nil?
|
247
|
+
when "https"
|
248
|
+
proxy_uri = URI.parse(ENV['https_proxy']) unless ENV['https_proxy'].nil?
|
249
|
+
end
|
250
|
+
return Net::HTTP if proxy_uri.nil?
|
251
|
+
|
252
|
+
proxy_host, proxy_port = proxy_uri.host, proxy_uri.port
|
253
|
+
proxy_user, proxy_pass = proxy_uri.userinfo.split(/:/) if proxy_uri.userinfo
|
254
|
+
Net::HTTP::Proxy(proxy_host, proxy_port, proxy_user, proxy_pass)
|
255
|
+
end
|
256
|
+
|
230
257
|
##
|
231
258
|
# Performs an HTTP GET request against the SPARQL endpoint.
|
232
259
|
#
|
@@ -239,7 +266,7 @@ module SPARQL
|
|
239
266
|
url = self.url.dup
|
240
267
|
url.query_values = {:query => query.to_s}
|
241
268
|
|
242
|
-
|
269
|
+
http_klass(url.scheme).start(url.host, url.port) do |http|
|
243
270
|
response = http.get(url.path + "?#{url.query}", @headers.merge(headers))
|
244
271
|
if block_given?
|
245
272
|
block.call(response)
|
data/lib/sparql/client/query.rb
CHANGED
@@ -16,6 +16,10 @@ module SPARQL; class Client
|
|
16
16
|
# @return [Hash{Symbol => Object}]
|
17
17
|
attr_reader :options
|
18
18
|
|
19
|
+
##
|
20
|
+
# @return [Array<[key, RDF::Value]>]
|
21
|
+
attr_reader :values
|
22
|
+
|
19
23
|
##
|
20
24
|
# Creates a boolean `ASK` query.
|
21
25
|
#
|
@@ -35,7 +39,19 @@ module SPARQL; class Client
|
|
35
39
|
# @see http://www.w3.org/TR/rdf-sparql-query/#select
|
36
40
|
def self.select(*variables)
|
37
41
|
options = variables.last.is_a?(Hash) ? variables.pop : {}
|
38
|
-
self.new(:select, options).select(*variables)
|
42
|
+
self.new(:select, options).select(*variables)
|
43
|
+
end
|
44
|
+
|
45
|
+
##
|
46
|
+
# Creates a `DESCRIBE` query.
|
47
|
+
#
|
48
|
+
# @param [Array<Symbol, RDF::URI>] variables
|
49
|
+
# @param [Hash{Symbol => Object}] options
|
50
|
+
# @return [Query]
|
51
|
+
# @see http://www.w3.org/TR/rdf-sparql-query/#describe
|
52
|
+
def self.describe(*variables)
|
53
|
+
options = variables.last.is_a?(Hash) ? variables.pop : {}
|
54
|
+
self.new(:describe, options).describe(*variables)
|
39
55
|
end
|
40
56
|
|
41
57
|
##
|
@@ -70,15 +86,21 @@ module SPARQL; class Client
|
|
70
86
|
|
71
87
|
##
|
72
88
|
# @param [Array<Symbol>] variables
|
73
|
-
# @param [Hash{Symbol => Object}] options
|
74
89
|
# @return [Query]
|
75
90
|
# @see http://www.w3.org/TR/rdf-sparql-query/#select
|
76
91
|
def select(*variables)
|
77
|
-
@
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
92
|
+
@values = variables.map { |var| [var, RDF::Query::Variable.new(var)] }
|
93
|
+
self
|
94
|
+
end
|
95
|
+
|
96
|
+
##
|
97
|
+
# @param [Array<Symbol>] variables
|
98
|
+
# @return [Query]
|
99
|
+
# @see http://www.w3.org/TR/rdf-sparql-query/#describe
|
100
|
+
def describe(*variables)
|
101
|
+
@values = variables.map { |var|
|
102
|
+
[var, var.is_a?(RDF::URI) ? var : RDF::Query::Variable.new(var)]
|
103
|
+
}
|
82
104
|
self
|
83
105
|
end
|
84
106
|
|
@@ -86,12 +108,15 @@ module SPARQL; class Client
|
|
86
108
|
# @param [Array<RDF::Query::Pattern, Array>] patterns
|
87
109
|
# @return [Query]
|
88
110
|
def construct(*patterns)
|
89
|
-
options[:template] = patterns
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
111
|
+
options[:template] = build_patterns(patterns)
|
112
|
+
self
|
113
|
+
end
|
114
|
+
|
115
|
+
# @param RDF::URI uri
|
116
|
+
# @return [Query]
|
117
|
+
# @see http://www.w3.org/TR/rdf-sparql-query/#specDataset
|
118
|
+
def from(uri)
|
119
|
+
options[:from] = uri
|
95
120
|
self
|
96
121
|
end
|
97
122
|
|
@@ -100,19 +125,14 @@ module SPARQL; class Client
|
|
100
125
|
# @return [Query]
|
101
126
|
# @see http://www.w3.org/TR/rdf-sparql-query/#GraphPattern
|
102
127
|
def where(*patterns)
|
103
|
-
@patterns += patterns
|
104
|
-
case pattern
|
105
|
-
when RDF::Query::Pattern then pattern
|
106
|
-
else RDF::Query::Pattern.new(*pattern.to_a)
|
107
|
-
end
|
108
|
-
end
|
128
|
+
@patterns += build_patterns(patterns)
|
109
129
|
self
|
110
130
|
end
|
111
131
|
|
112
132
|
alias_method :whether, :where
|
113
133
|
|
114
134
|
##
|
115
|
-
# @param [Array<Symbol>] variables
|
135
|
+
# @param [Array<Symbol, String>] variables
|
116
136
|
# @return [Query]
|
117
137
|
# @see http://www.w3.org/TR/rdf-sparql-query/#modOrderBy
|
118
138
|
def order(*variables)
|
@@ -164,6 +184,33 @@ module SPARQL; class Client
|
|
164
184
|
self
|
165
185
|
end
|
166
186
|
|
187
|
+
##
|
188
|
+
# @return [Query]
|
189
|
+
# @see http://www.w3.org/TR/rdf-sparql-query/#prefNames
|
190
|
+
def prefix(string)
|
191
|
+
(options[:prefixes] ||= []) << string
|
192
|
+
self
|
193
|
+
end
|
194
|
+
|
195
|
+
##
|
196
|
+
# @return [Query]
|
197
|
+
# @see http://www.w3.org/TR/rdf-sparql-query/#optionals
|
198
|
+
def optional(*patterns)
|
199
|
+
(options[:optionals] ||= []) << build_patterns(patterns)
|
200
|
+
self
|
201
|
+
end
|
202
|
+
|
203
|
+
##
|
204
|
+
# @private
|
205
|
+
def build_patterns(patterns)
|
206
|
+
patterns.map do |pattern|
|
207
|
+
case pattern
|
208
|
+
when RDF::Query::Pattern then pattern
|
209
|
+
else RDF::Query::Pattern.new(*pattern.to_a)
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
167
214
|
##
|
168
215
|
# @private
|
169
216
|
def filter(string)
|
@@ -220,38 +267,54 @@ module SPARQL; class Client
|
|
220
267
|
def to_s
|
221
268
|
buffer = [form.to_s.upcase]
|
222
269
|
case form
|
223
|
-
when :select
|
270
|
+
when :select, :describe
|
224
271
|
buffer << 'DISTINCT' if options[:distinct]
|
225
272
|
buffer << 'REDUCED' if options[:reduced]
|
226
|
-
buffer << (
|
273
|
+
buffer << (values.empty? ? '*' : values.map { |v| serialize_value(v[1]) }.join(' '))
|
227
274
|
when :construct
|
228
275
|
buffer << '{'
|
229
|
-
buffer += options[:template]
|
230
|
-
p.to_triple.map { |v| serialize_value(v) }.join(' ') + " . "
|
231
|
-
end
|
276
|
+
buffer += serialize_patterns(options[:template])
|
232
277
|
buffer << '}'
|
233
278
|
end
|
234
279
|
|
235
|
-
buffer <<
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
280
|
+
buffer << "FROM #{serialize_value(options[:from])}" if options[:from]
|
281
|
+
|
282
|
+
unless patterns.empty? && form == :describe
|
283
|
+
buffer << 'WHERE {'
|
284
|
+
buffer += serialize_patterns(patterns)
|
285
|
+
if options[:optionals]
|
286
|
+
options[:optionals].each do |patterns|
|
287
|
+
buffer << 'OPTIONAL {'
|
288
|
+
buffer += serialize_patterns(patterns)
|
289
|
+
buffer << '}'
|
290
|
+
end
|
291
|
+
end
|
292
|
+
if options[:filters]
|
293
|
+
buffer += options[:filters].map { |filter| "FILTER(#{filter})" }
|
294
|
+
end
|
295
|
+
buffer << '}'
|
241
296
|
end
|
242
|
-
buffer << '}'
|
243
297
|
|
244
298
|
if options[:order_by]
|
245
299
|
buffer << 'ORDER BY'
|
246
|
-
buffer += options[:order_by].map { |var| "?#{var}" }
|
300
|
+
buffer += options[:order_by].map { |var| var.is_a?(String) ? var : "?#{var}" }
|
247
301
|
end
|
248
302
|
|
249
303
|
buffer << "OFFSET #{options[:offset]}" if options[:offset]
|
250
304
|
buffer << "LIMIT #{options[:limit]}" if options[:limit]
|
305
|
+
options[:prefixes].reverse.each {|e| buffer.unshift("PREFIX #{e}") } if options[:prefixes]
|
251
306
|
|
252
307
|
buffer.join(' ')
|
253
308
|
end
|
254
309
|
|
310
|
+
##
|
311
|
+
# @private
|
312
|
+
def serialize_patterns(patterns)
|
313
|
+
patterns.map do |p|
|
314
|
+
p.to_triple.map { |v| serialize_value(v) }.join(' ') + " ."
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
255
318
|
##
|
256
319
|
# Outputs a developer-friendly representation of this query to `stderr`.
|
257
320
|
#
|
@@ -279,7 +342,7 @@ module SPARQL; class Client
|
|
279
342
|
# SPARQL queries are UTF-8, but support ASCII-style Unicode escapes, so
|
280
343
|
# the N-Triples serializer is fine unless it's a variable:
|
281
344
|
case
|
282
|
-
when value.variable? then
|
345
|
+
when value.variable? then value.to_s
|
283
346
|
else RDF::NTriples.serialize(value)
|
284
347
|
end
|
285
348
|
end
|
@@ -2,11 +2,10 @@ module SPARQL; class Client
|
|
2
2
|
module VERSION
|
3
3
|
MAJOR = 0
|
4
4
|
MINOR = 0
|
5
|
-
TINY =
|
5
|
+
TINY = 5
|
6
6
|
EXTRA = nil
|
7
7
|
|
8
|
-
STRING = [MAJOR, MINOR, TINY].join('.')
|
9
|
-
STRING << ".#{EXTRA}" if EXTRA
|
8
|
+
STRING = [MAJOR, MINOR, TINY, EXTRA].compact.join('.')
|
10
9
|
|
11
10
|
##
|
12
11
|
# @return [String]
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Arto Bendiken
|
@@ -15,36 +15,36 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-09-06 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
22
|
+
name: json_pure
|
23
23
|
prerelease: false
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - ~>
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
segments:
|
29
|
-
- 0
|
30
29
|
- 1
|
31
|
-
-
|
32
|
-
|
33
|
-
|
30
|
+
- 4
|
31
|
+
- 0
|
32
|
+
version: 1.4.0
|
33
|
+
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
36
|
+
name: rdf
|
37
37
|
prerelease: false
|
38
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - ~>
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
segments:
|
43
|
-
- 1
|
44
|
-
- 3
|
45
43
|
- 0
|
46
|
-
|
47
|
-
|
44
|
+
- 2
|
45
|
+
- 0
|
46
|
+
version: 0.2.0
|
47
|
+
type: :runtime
|
48
48
|
version_requirements: *id002
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: yard
|
@@ -55,41 +55,41 @@ dependencies:
|
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
segments:
|
57
57
|
- 0
|
58
|
-
-
|
59
|
-
-
|
60
|
-
version: 0.
|
58
|
+
- 6
|
59
|
+
- 0
|
60
|
+
version: 0.6.0
|
61
61
|
type: :development
|
62
62
|
version_requirements: *id003
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
64
|
+
name: rspec
|
65
65
|
prerelease: false
|
66
66
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - ">="
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
segments:
|
71
|
-
- 0
|
72
71
|
- 1
|
73
|
-
-
|
74
|
-
|
75
|
-
|
72
|
+
- 3
|
73
|
+
- 0
|
74
|
+
version: 1.3.0
|
75
|
+
type: :development
|
76
76
|
version_requirements: *id004
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
|
-
name:
|
78
|
+
name: rdf-spec
|
79
79
|
prerelease: false
|
80
80
|
requirement: &id005 !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - ~>
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
segments:
|
85
|
-
- 1
|
86
|
-
- 4
|
87
85
|
- 0
|
88
|
-
|
89
|
-
|
86
|
+
- 2
|
87
|
+
- 0
|
88
|
+
version: 0.2.0
|
89
|
+
type: :development
|
90
90
|
version_requirements: *id005
|
91
91
|
description: SPARQL client for RDF.rb.
|
92
|
-
email:
|
92
|
+
email: public-rdf-ruby@w3.org
|
93
93
|
executables: []
|
94
94
|
|
95
95
|
extensions: []
|
@@ -98,7 +98,7 @@ extra_rdoc_files: []
|
|
98
98
|
|
99
99
|
files:
|
100
100
|
- AUTHORS
|
101
|
-
-
|
101
|
+
- CREDITS
|
102
102
|
- README
|
103
103
|
- UNLICENSE
|
104
104
|
- VERSION
|
@@ -108,7 +108,7 @@ files:
|
|
108
108
|
- lib/sparql/client.rb
|
109
109
|
- lib/sparql.rb
|
110
110
|
has_rdoc: false
|
111
|
-
homepage: http://sparql.rubyforge.org/
|
111
|
+
homepage: http://sparql.rubyforge.org/client/
|
112
112
|
licenses:
|
113
113
|
- Public Domain
|
114
114
|
post_install_message:
|
@@ -123,8 +123,8 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
123
|
segments:
|
124
124
|
- 1
|
125
125
|
- 8
|
126
|
-
-
|
127
|
-
version: 1.8.
|
126
|
+
- 1
|
127
|
+
version: 1.8.1
|
128
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - ">="
|
data/CONTRIBUTORS
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
* Nicholas Humfrey <njh@aelius.com>
|