rdf-sesame 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -1,32 +1,59 @@
1
- RDF::Sesame: Sesame 2.0 Adapter for RDF.rb
2
- ==========================================
1
+ Sesame 2.0 Adapter for RDF.rb
2
+ =============================
3
3
 
4
- This is an [RDF.rb](http://rdf.rubyforge.org/) plugin that adds support for
5
- Sesame 2.0-compatible RDF repositories accessed using Sesame's
6
- [HTTP API](http://www.openrdf.org/doc/sesame2/system/ch08.html).
4
+ This is an [RDF.rb][] plugin that adds support for [Sesame 2.0][]-compatible
5
+ RDF repositories accessed using Sesame's [HTTP API][Sesame API].
7
6
 
8
7
  * <http://github.com/bendiken/rdf-sesame>
9
8
 
10
- ### About Sesame
11
-
12
- * <http://www.openrdf.org/>
13
-
14
9
  Documentation
15
10
  -------------
16
11
 
17
12
  * {RDF::Sesame}
13
+ * {RDF::Sesame::Connection}
14
+ * {RDF::Sesame::Repository}
15
+ * {RDF::Sesame::Server}
16
+
17
+ This adapter implements the [`RDF::Repository`][RDF::Repository] interface;
18
+ refer to the relevant RDF.rb API documentation for further usage instructions.
19
+
20
+ Limitations
21
+ -----------
22
+
23
+ * This adapter does not contain any SPARQL support. To use a Sesame endpoint
24
+ with SPARQL, see the [`SPARQL::Client`](http://sparql.rubyforge.org/client/)
25
+ gem.
26
+ * This adapter is not yet optimized for RDF.rb 0.2.x's bulk-operation APIs,
27
+ meaning that statement insertions and deletions are currently performed
28
+ one by one; this may affect the performance of loading large datasets into
29
+ Sesame. This will be addressed in an upcoming version.
30
+ * This adapter is not yet optimized for RDF.rb 0.2.x's enhanced query APIs;
31
+ this may adversely affect triple pattern query performance. This
32
+ will be addressed in an upcoming version.
33
+
34
+ Caveats
35
+ -------
36
+
37
+ * Sesame rewrites blank node identifiers on inserted statements. For
38
+ example, if you supply a `_:foobar` identifier, it becomes something like
39
+ `_:node156oo6equx12769` as soon as you insert it into a Sesame repository.
40
+ This means that you can't construct and insert a statement containing a
41
+ blank node term and then expect to successfully be able check for its
42
+ existence using the `Repository#has_statement?` method. This is also the
43
+ reason that 7 specs for `RDF::Repository` currently fail with this
44
+ adapter.
18
45
 
19
46
  Dependencies
20
47
  ------------
21
48
 
22
- * [RDF.rb](http://gemcutter.org/gems/rdf) (>= 0.0.9)
23
- * [JSON](http://gemcutter.org/gems/json_pure) (>= 1.2.0)
49
+ * [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.2.2)
50
+ * [JSON](http://rubygems.org/gems/json_pure) (>= 1.4.3)
24
51
 
25
52
  Installation
26
53
  ------------
27
54
 
28
- The recommended installation method is via RubyGems. To install the latest
29
- official release from Gemcutter, do:
55
+ The recommended installation method is via [RubyGems](http://rubygems.org/).
56
+ To install the latest official release of the `RDF::Sesame` gem, do:
30
57
 
31
58
  % [sudo] gem install rdf-sesame
32
59
 
@@ -52,3 +79,8 @@ License
52
79
 
53
80
  `RDF::Sesame` is free and unencumbered public domain software. For more
54
81
  information, see <http://unlicense.org/> or the accompanying UNLICENSE file.
82
+
83
+ [RDF.rb]: http://rdf.rubyforge.org/
84
+ [RDF::Repository]: http://rdf.rubyforge.org/RDF/Repository.html
85
+ [Sesame 2.0]: http://www.openrdf.org/
86
+ [Sesame API]: http://www.openrdf.org/doc/sesame2/system/ch08.html
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
data/lib/rdf/sesame.rb CHANGED
@@ -4,27 +4,6 @@ module RDF
4
4
  ##
5
5
  # **`RDF::Sesame`** is a Sesame 2.0 adapter for RDF.rb.
6
6
  #
7
- # Dependencies
8
- # ------------
9
- #
10
- # * [RDF.rb](http://gemcutter.org/gems/rdf) (>= 0.0.9)
11
- # * [JSON](http://gemcutter.org/gems/json_pure) (>= 1.2.0)
12
- #
13
- # Installation
14
- # ------------
15
- #
16
- # The recommended installation method is via RubyGems. To install the latest
17
- # official release from Gemcutter, do:
18
- #
19
- # % [sudo] gem install rdf-sesame
20
- #
21
- # Documentation
22
- # -------------
23
- #
24
- # * {RDF::Sesame::Connection}
25
- # * {RDF::Sesame::Repository}
26
- # * {RDF::Sesame::Server}
27
- #
28
7
  # @example Requiring the `RDF::Sesame` module
29
8
  # require 'rdf/sesame'
30
9
  #
@@ -21,17 +21,19 @@ module RDF::Sesame
21
21
  # call {#close} explicitly.
22
22
  #
23
23
  # @example Opening a connection to a Sesame server (1)
24
- # url = RDF::URI.new("http://localhost:8080/openrdf-sesame")
24
+ # url = RDF::URI("http://localhost:8080/openrdf-sesame")
25
25
  # conn = RDF::Sesame::Connection.open(url)
26
26
  # ...
27
27
  # conn.close
28
28
  #
29
29
  # @example Opening a connection to a Sesame server (2)
30
+ # url = RDF::URI("http://localhost:8080/openrdf-sesame")
30
31
  # RDF::Sesame::Connection.open(url) do |conn|
31
32
  # ...
32
33
  # end
33
34
  #
34
35
  # @example Performing an HTTP GET on a Sesame server
36
+ # url = RDF::URI("http://localhost:8080/openrdf-sesame")
35
37
  # RDF::Sesame::Connection.open(url) do |conn|
36
38
  # conn.get("/openrdf-sesame/protocol") do |response|
37
39
  # version = response.body.to_i
@@ -332,7 +334,7 @@ module RDF::Sesame
332
334
  # @yieldparam [Net::HTTPResponse] response
333
335
  # @return [Net::HTTPResponse]
334
336
  def put(path, headers = {}, &block)
335
- # TODO
337
+ raise NotImplementedError, "#{self.class}#put" # TODO
336
338
  end
337
339
 
338
340
  ##
@@ -353,5 +355,5 @@ module RDF::Sesame
353
355
  end
354
356
  end
355
357
  end
356
- end
357
- end
358
+ end # class Connection
359
+ end # module RDF::Sesame
@@ -18,10 +18,11 @@ module RDF::Sesame
18
18
  # repository = server.repository(:SYSTEM)
19
19
  #
20
20
  # @see RDF::Sesame
21
+ # @see http://rdf.rubyforge.org/RDF/Repository.html
21
22
  # @see http://www.openrdf.org/doc/sesame2/system/ch08.html
22
23
  class Repository < RDF::Repository
23
24
  # @return [RDF::URI]
24
- attr_reader :url
25
+ attr_reader :url
25
26
  alias_method :uri, :url
26
27
 
27
28
  # @return [String]
@@ -67,8 +68,8 @@ module RDF::Sesame
67
68
  @options = {}
68
69
 
69
70
  when Hash
70
- raise ArgumentError.new("missing options[:server]") unless url_or_options.has_key?(:server)
71
- raise ArgumentError.new("missing options[:id]") unless url_or_options.has_key?(:id)
71
+ raise ArgumentError, "missing options[:server]" unless url_or_options.has_key?(:server)
72
+ raise ArgumentError, "missing options[:id]" unless url_or_options.has_key?(:id)
72
73
  @options = url_or_options.dup
73
74
  @server = @options.delete(:server)
74
75
  @id = @options.delete(:id)
@@ -76,7 +77,7 @@ module RDF::Sesame
76
77
  @title = @options.delete(:title)
77
78
 
78
79
  else
79
- raise ArgumentError.new("wrong argument type #{url_or_options.class} (expected String, RDF::URI or Hash)")
80
+ raise ArgumentError, "expected String, RDF::URI or Hash, but got #{url_or_options.inspect}"
80
81
  end
81
82
 
82
83
  if block_given?
@@ -100,12 +101,13 @@ module RDF::Sesame
100
101
  when RDF::Statement
101
102
  writer = RDF::NTriples::Writer.new
102
103
  query = {
103
- :subj => writer.format_value(query.subject),
104
- :pred => writer.format_value(query.predicate),
105
- :obj => writer.format_value(query.object),
104
+ :subj => writer.format_value(query.subject),
105
+ :pred => writer.format_value(query.predicate),
106
+ :obj => writer.format_value(query.object),
107
+ :context => query.has_context? ? writer.format_value(query.context) : 'null',
106
108
  }
107
109
  url.query_values = query
108
- when Hash then query
110
+ when Hash
109
111
  url.query_values = query unless query.empty?
110
112
  end
111
113
  end
@@ -115,80 +117,135 @@ module RDF::Sesame
115
117
  alias_method :uri, :url
116
118
 
117
119
  ##
118
- # Returns `true` to indicate that this repository is durable.
119
- #
120
- # @return [Boolean]
120
+ # @private
121
+ # @see RDF::Repository#supports?
122
+ def supports?(feature)
123
+ case feature.to_sym
124
+ when :context then true # statement contexts / named graphs
125
+ else super
126
+ end
127
+ end
128
+
129
+ ##
130
+ # @private
131
+ # @see RDF::Durable#durable?
121
132
  def durable?
122
- true # FIXME
133
+ true # TODO: would need to query the SYSTEM repository for this information
123
134
  end
124
135
 
125
136
  ##
126
- # Returns `true` if this repository contains no RDF statements.
127
- #
128
- # @return [Boolean]
137
+ # @private
138
+ # @see RDF::Countable#empty?
129
139
  def empty?
130
140
  count.zero?
131
141
  end
132
142
 
133
143
  ##
134
- # Returns the number of RDF statements in this repository.
135
- #
136
- # @return [Integer]
137
- # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e569
144
+ # @private
145
+ # @see RDF::Countable#count
146
+ # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e569
138
147
  def count
139
148
  server.get(url(:size)) do |response|
140
149
  case response
141
150
  when Net::HTTPSuccess
142
151
  size = response.body
143
152
  size.to_i rescue 0
144
- else 0
153
+ else -1 # FIXME: raise error
145
154
  end
146
155
  end
147
156
  end
148
157
 
149
158
  ##
150
- # Returns `true` if this repository contains the given RDF statement.
151
- #
152
- # @param [RDF::Statement] statement
153
- # @return [Boolean]
154
- # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
159
+ # @private
160
+ # @see RDF::Enumerable#has_triple?
161
+ def has_triple?(triple)
162
+ has_statement?(RDF::Statement.from(triple))
163
+ end
164
+
165
+ ##
166
+ # @private
167
+ # @see RDF::Enumerable#has_quad?
168
+ def has_quad?(quad)
169
+ has_statement?(RDF::Statement.new(quad[0], quad[1], quad[2], :context => quad[3]))
170
+ end
171
+
172
+ ##
173
+ # @private
174
+ # @see RDF::Enumerable#has_statement?
175
+ # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
155
176
  def has_statement?(statement)
156
177
  server.get(url(:statements, statement), 'Accept' => 'text/plain') do |response|
157
178
  case response
158
179
  when Net::HTTPSuccess
159
- reader = RDF::NTriples::Reader.new(response.body)
160
- reader.include?(statement)
180
+ !response.body.empty?
161
181
  else false
162
182
  end
163
183
  end
164
184
  end
165
185
 
166
186
  ##
167
- # Enumerates each RDF statement in this repository.
168
- #
169
- # @yield [statement]
170
- # @yieldparam [RDF::Statement] statement
171
- # @return [Enumerator]
172
- # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
173
- def each(&block)
174
- server.get(url(:statements), 'Accept' => 'text/plain') do |response|
187
+ # @private
188
+ # @see RDF::Enumerable#each_statement
189
+ # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
190
+ def each_statement(&block)
191
+ return enum_statement unless block_given?
192
+
193
+ [nil, *enum_context].uniq.each do |context|
194
+ ctxt = context ? RDF::NTriples.serialize(context) : 'null'
195
+ server.get(url(:statements, :context => ctxt), 'Accept' => 'text/plain') do |response|
196
+ case response
197
+ when Net::HTTPSuccess
198
+ reader = RDF::NTriples::Reader.new(response.body)
199
+ reader.each_statement do |statement|
200
+ statement.context = context
201
+ block.call(statement)
202
+ end
203
+ end
204
+ end
205
+ end
206
+ end
207
+
208
+ alias_method :each, :each_statement
209
+
210
+ ##
211
+ # @private
212
+ # @see RDF::Enumerable#each_context
213
+ def each_context(&block)
214
+ return enum_context unless block_given?
215
+
216
+ require 'json' unless defined?(::JSON)
217
+ server.get(url(:contexts), Server::ACCEPT_JSON) do |response|
175
218
  case response
176
219
  when Net::HTTPSuccess
177
- reader = RDF::NTriples::Reader.new(response.body)
178
- reader.each_statement(&block)
220
+ json = ::JSON.parse(response.body)
221
+ json['results']['bindings'].map { |binding| binding['contextID'] }.each do |context_id|
222
+ context = case context_id['type'].to_s.to_sym
223
+ when :bnode then RDF::Node.new(context_id['value'])
224
+ when :uri then RDF::URI.new(context_id['value'])
225
+ end
226
+ block.call(context) if context
227
+ end
179
228
  end
180
229
  end
181
230
  end
182
231
 
232
+ protected
233
+
183
234
  ##
184
- # Inserts the given RDF statement into this repository.
185
- #
186
- # @param [RDF::Statement] statement
187
- # @return [Boolean]
188
- # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
235
+ # @private
236
+ # @see RDF::Queryable#query
237
+ def query_pattern(pattern, &block)
238
+ super # TODO
239
+ end
240
+
241
+ ##
242
+ # @private
243
+ # @see RDF::Mutable#insert
244
+ # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
189
245
  def insert_statement(statement)
190
- data = RDF::NTriples::Writer.buffer { |writer| writer << statement } # FIXME for RDF.rb 0.1.0
191
- server.post(url(:statements), data, 'Content-Type' => 'text/plain') do |response|
246
+ ctxt = statement.has_context? ? RDF::NTriples.serialize(statement.context) : 'null'
247
+ data = RDF::NTriples.serialize(statement)
248
+ server.post(url(:statements, :context => ctxt), data, 'Content-Type' => 'text/plain') do |response|
192
249
  case response
193
250
  when Net::HTTPSuccess then true
194
251
  else false
@@ -197,11 +254,9 @@ module RDF::Sesame
197
254
  end
198
255
 
199
256
  ##
200
- # Deletes the given RDF statement from this repository.
201
- #
202
- # @param [RDF::Statement] statement
203
- # @return [Boolean]
204
- # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
257
+ # @private
258
+ # @see RDF::Mutable#delete
259
+ # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
205
260
  def delete_statement(statement)
206
261
  server.delete(url(:statements, statement)) do |response|
207
262
  case response
@@ -212,10 +267,9 @@ module RDF::Sesame
212
267
  end
213
268
 
214
269
  ##
215
- # Deletes all RDF statements from this repository.
216
- #
217
- # @return [Boolean]
218
- # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
270
+ # @private
271
+ # @see RDF::Mutable#clear
272
+ # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
219
273
  def clear_statements
220
274
  server.delete(url(:statements)) do |response|
221
275
  case response
@@ -224,5 +278,5 @@ module RDF::Sesame
224
278
  end
225
279
  end
226
280
  end
227
- end
228
- end
281
+ end # class Repository
282
+ end # module RDF::Sesame
@@ -6,7 +6,7 @@ module RDF::Sesame
6
6
  # one or more readable and/or writable RDF {Repository repositories}.
7
7
  #
8
8
  # @example Connecting to a Sesame server
9
- # url = RDF::URI.new("http://localhost:8080/openrdf-sesame")
9
+ # url = RDF::URI("http://localhost:8080/openrdf-sesame")
10
10
  # server = RDF::Sesame::Server.new(url)
11
11
  #
12
12
  # @example Retrieving the server's protocol version
@@ -145,7 +145,7 @@ module RDF::Sesame
145
145
  #
146
146
  # @yield [repository]
147
147
  # @yieldparam [Repository] repository
148
- # @return [Enumerable]
148
+ # @return [Enumerator]
149
149
  # @see #repository
150
150
  # @see #repositories
151
151
  def each_repository(&block)
@@ -155,9 +155,9 @@ module RDF::Sesame
155
155
  alias_method :each, :each_repository
156
156
 
157
157
  ##
158
- # Returns `true` if
158
+ # Returns `true` if this server has a repository identified by `id`.
159
159
  #
160
- # @param [id] String
160
+ # @param [String] id
161
161
  # @return [Boolean]
162
162
  def has_repository?(id)
163
163
  repositories.has_key?(id.to_s)
@@ -184,20 +184,20 @@ module RDF::Sesame
184
184
  # @see #each_repository
185
185
  # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e204
186
186
  def repositories
187
- require 'json' unless defined?(JSON)
187
+ require 'json' unless defined?(::JSON)
188
188
 
189
189
  get(url(:repositories), ACCEPT_JSON) do |response|
190
190
  case response
191
191
  when Net::HTTPSuccess
192
- json = JSON.parse(response.body)
192
+ json = ::JSON.parse(response.body)
193
193
  json['results']['bindings'].inject({}) do |repositories, binding|
194
194
  repository = Repository.new({
195
195
  :server => self,
196
196
  :uri => (uri = RDF::URI.new(binding['uri']['value'])),
197
197
  :id => (id = binding['id']['value']),
198
198
  :title => (title = binding['title']['value']),
199
- :readable => binding['readable']['value'] == 'true',
200
- :writable => binding['writable']['value'] == 'true',
199
+ :readable => binding['readable']['value'].to_s == 'true',
200
+ :writable => binding['writable']['value'].to_s == 'true',
201
201
  })
202
202
  repositories.merge({id => repository})
203
203
  end
@@ -223,5 +223,5 @@ module RDF::Sesame
223
223
  self.connection.delete(path, headers, &block)
224
224
  end
225
225
  end
226
- end
227
- end
226
+ end # class Server
227
+ end # module RDF::Sesame
@@ -1,19 +1,22 @@
1
- module RDF module Sesame
1
+ module RDF; module Sesame
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 1
4
+ MINOR = 2
5
5
  TINY = 0
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]
13
- def self.to_s() STRING end
12
+ def self.to_s() STRING end
14
13
 
15
14
  ##
16
15
  # @return [String]
17
16
  def self.to_str() STRING end
17
+
18
+ ##
19
+ # @return [Array(Integer, Integer, Integer)]
20
+ def self.to_a() [MAJOR, MINOR, TINY] end
18
21
  end
19
- end end
22
+ end; end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-sesame
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Arto Bendiken
@@ -9,51 +14,81 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-02 00:00:00 +01:00
17
+ date: 2010-07-08 00:00:00 +02:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
- name: rspec
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
21
+ name: json_pure
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
- - - ">="
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 4
30
+ - 3
31
+ version: 1.4.3
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: rdf
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
22
40
  - !ruby/object:Gem::Version
23
- version: 1.2.9
24
- version:
41
+ segments:
42
+ - 0
43
+ - 2
44
+ - 2
45
+ version: 0.2.2
46
+ type: :runtime
47
+ version_requirements: *id002
25
48
  - !ruby/object:Gem::Dependency
26
49
  name: yard
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
30
52
  requirements:
31
53
  - - ">="
32
54
  - !ruby/object:Gem::Version
33
- version: 0.5.2
34
- version:
55
+ segments:
56
+ - 0
57
+ - 5
58
+ - 8
59
+ version: 0.5.8
60
+ type: :development
61
+ version_requirements: *id003
35
62
  - !ruby/object:Gem::Dependency
36
- name: rdf
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
63
+ name: rspec
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
40
66
  requirements:
41
67
  - - ">="
42
68
  - !ruby/object:Gem::Version
43
- version: 0.0.9
44
- version:
69
+ segments:
70
+ - 1
71
+ - 3
72
+ - 0
73
+ version: 1.3.0
74
+ type: :development
75
+ version_requirements: *id004
45
76
  - !ruby/object:Gem::Dependency
46
- name: json_pure
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
77
+ name: rdf-spec
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
50
80
  requirements:
51
- - - ">="
81
+ - - ~>
52
82
  - !ruby/object:Gem::Version
53
- version: 1.2.0
54
- version:
83
+ segments:
84
+ - 0
85
+ - 2
86
+ - 2
87
+ version: 0.2.2
88
+ type: :development
89
+ version_requirements: *id005
55
90
  description: RDF.rb plugin providing a Sesame 2.0 storage adapter.
56
- email: arto.bendiken@gmail.com
91
+ email: public-rdf-ruby@w3.org
57
92
  executables: []
58
93
 
59
94
  extensions: []
@@ -71,7 +106,7 @@ files:
71
106
  - lib/rdf/sesame/version.rb
72
107
  - lib/rdf/sesame.rb
73
108
  has_rdoc: false
74
- homepage: http://rdf.rubyforge.org/
109
+ homepage: http://rdf.rubyforge.org/sesame/
75
110
  licenses:
76
111
  - Public Domain
77
112
  post_install_message:
@@ -83,18 +118,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
83
118
  requirements:
84
119
  - - ">="
85
120
  - !ruby/object:Gem::Version
86
- version: 1.8.2
87
- version:
121
+ segments:
122
+ - 1
123
+ - 8
124
+ - 1
125
+ version: 1.8.1
88
126
  required_rubygems_version: !ruby/object:Gem::Requirement
89
127
  requirements:
90
128
  - - ">="
91
129
  - !ruby/object:Gem::Version
130
+ segments:
131
+ - 0
92
132
  version: "0"
93
- version:
94
133
  requirements: []
95
134
 
96
135
  rubyforge_project: rdf
97
- rubygems_version: 1.3.5
136
+ rubygems_version: 1.3.6
98
137
  signing_key:
99
138
  specification_version: 3
100
139
  summary: Sesame 2.0 adapter for RDF.rb.