activerdf_net7 1.6.16 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. data/CHANGELOG +63 -0
  2. data/activerdf-jena/lib/activerdf_jena/jena.rb +4 -4
  3. data/activerdf-jena/lib/activerdf_jena/jena_adapter.rb +55 -55
  4. data/activerdf-jena/lib/activerdf_jena/lucene.rb +1 -1
  5. data/activerdf-jena/lib/activerdf_jena/ng4j.rb +7 -7
  6. data/activerdf-jena/lib/activerdf_jena/ng4j_adapter.rb +47 -47
  7. data/activerdf-jena/lib/activerdf_jena/pellet.rb +1 -1
  8. data/activerdf-jena/test/test_jena_adapter.rb +121 -120
  9. data/activerdf-jena/test/test_ng4j_adapter.rb +111 -110
  10. data/activerdf-rdflite/lib/activerdf_rdflite/fetching.rb +23 -19
  11. data/activerdf-rdflite/lib/activerdf_rdflite/rdflite.rb +153 -277
  12. data/activerdf-rdflite/lib/activerdf_rdflite/suggesting.rb +2 -2
  13. data/activerdf-rdflite/test/test_fetching.rb +7 -22
  14. data/activerdf-rdflite/test/test_rdflite.rb +44 -257
  15. data/activerdf-redland/lib/activerdf_redland/redland.rb +246 -282
  16. data/activerdf-redland/test/test_redland_adapter.rb +62 -224
  17. data/activerdf-sesame/ext/wrapper-sesame2.jar +0 -0
  18. data/activerdf-sesame/java/build.number +2 -2
  19. data/activerdf-sesame/java/build.xml +0 -0
  20. data/activerdf-sesame/java/lib/junit-3.8.2.jar +0 -0
  21. data/activerdf-sesame/java/settings.xml +0 -0
  22. data/activerdf-sesame/java/src/org/activerdf/wrapper/sesame2/WrapperForSesame2.java +0 -0
  23. data/activerdf-sesame/java/temp/build/org/activerdf/wrapper/sesame2/WrapperForSesame2.class +0 -0
  24. data/activerdf-sesame/java/temp/manifest/MANIFEST.MF +2 -2
  25. data/activerdf-sesame/java/test-src/org/activerdf/wrapper/sesame2/TestWrapperForSesame2.java +0 -0
  26. data/activerdf-sesame/lib/activerdf_sesame/sesame.rb +360 -364
  27. data/activerdf-sesame/test/test_sesame_adapter.rb +85 -83
  28. data/activerdf-sparql/lib/activerdf_sparql/sparql.rb +147 -148
  29. data/activerdf-sparql/lib/activerdf_sparql/sparql_result_parser.rb +5 -5
  30. data/activerdf-sparql/test/test_sparql_adapter.rb +2 -0
  31. data/activerdf-yars/lib/activerdf_yars/jars2.rb +85 -83
  32. data/lib/active_rdf/federation/active_rdf_adapter.rb +26 -39
  33. data/lib/active_rdf/federation/connection_pool.rb +119 -110
  34. data/lib/active_rdf/federation/federation_manager.rb +51 -51
  35. data/lib/active_rdf/objectmanager/bnode.rb +8 -2
  36. data/lib/active_rdf/objectmanager/literal.rb +81 -50
  37. data/lib/active_rdf/objectmanager/namespace.rb +117 -84
  38. data/lib/active_rdf/objectmanager/object_manager.rb +101 -96
  39. data/lib/active_rdf/objectmanager/ordered_set.rb +1 -1
  40. data/lib/active_rdf/objectmanager/property.rb +345 -0
  41. data/lib/active_rdf/objectmanager/property_list.rb +4 -4
  42. data/lib/active_rdf/objectmanager/property_lookup.rb +57 -0
  43. data/lib/active_rdf/objectmanager/resource.rb +293 -501
  44. data/lib/active_rdf/objectmanager/resource_like.rb +2 -2
  45. data/lib/active_rdf/objectmanager/resource_query.rb +85 -0
  46. data/lib/active_rdf/queryengine/ntriples_parser.rb +75 -68
  47. data/lib/active_rdf/queryengine/query.rb +237 -183
  48. data/lib/active_rdf/queryengine/query2jars2.rb +17 -15
  49. data/lib/active_rdf/queryengine/query2sparql.rb +107 -101
  50. data/lib/active_rdf.rb +28 -17
  51. data/lib/active_rdf_helpers.rb +37 -5
  52. data/lib/active_rdf_log.rb +11 -11
  53. data/test/adapters/test_activerdf_adapter.rb +138 -0
  54. data/test/{test_adapters.rb → adapters/test_adapters.rb} +6 -24
  55. data/test/adapters/test_bnode_capable_adapter.rb +31 -0
  56. data/test/adapters/test_context_aware_adapter.rb +31 -0
  57. data/test/adapters/test_network_aware_adapter.rb +29 -0
  58. data/test/adapters/test_persistent_adapter.rb +21 -0
  59. data/test/adapters/test_read_only_adapter.rb +15 -0
  60. data/test/adapters/test_reasoning_adapter.rb +11 -0
  61. data/test/adapters/test_writable_adapter.rb +163 -0
  62. data/test/common.rb +78 -96
  63. data/test/federation/test_connection_pool.rb +25 -44
  64. data/test/federation/test_federation_manager.rb +45 -45
  65. data/test/objectmanager/test_literal.rb +47 -26
  66. data/test/objectmanager/test_namespace.rb +3 -1
  67. data/test/objectmanager/test_object_manager.rb +35 -45
  68. data/test/objectmanager/test_ordered_set.rb +1 -1
  69. data/test/objectmanager/test_property.rb +261 -0
  70. data/test/objectmanager/test_resource_reading.rb +196 -104
  71. data/test/objectmanager/test_resource_reasoning.rb +26 -0
  72. data/test/objectmanager/test_resource_writing.rb +34 -25
  73. data/test/queryengine/my_external_resource.rb +5 -1
  74. data/test/queryengine/test_external_resource_class.rb +1 -8
  75. data/test/queryengine/test_ntriples_parser.rb +5 -3
  76. data/test/queryengine/test_query.rb +3 -3
  77. data/test/queryengine/test_query2jars2.rb +2 -2
  78. data/test/queryengine/test_query2sparql.rb +2 -2
  79. data/test/queryengine/test_query_engine.rb +46 -28
  80. metadata +16 -8
  81. data/activerdf-rdflite/test/test_bnode_data.nt +0 -5
  82. data/activerdf-rdflite/test/test_data.nt +0 -32
  83. data/activerdf-rdflite/test/test_escaped_data.nt +0 -2
  84. data/activerdf-redland/test/test_person_data.nt +0 -42
  85. data/test/objectmanager/test_talia_syntax.rb +0 -68
@@ -3,7 +3,7 @@
3
3
  # License:: LGPL
4
4
 
5
5
  class NG4JAdapter < ActiveRdfAdapter
6
-
6
+
7
7
  ConnectionPool.register_adapter(:ng4j, self)
8
8
 
9
9
  class NG4JAdapterConfigurationError < StandardError
@@ -16,9 +16,9 @@ class NG4JAdapter < ActiveRdfAdapter
16
16
  attr_accessor :root_directory
17
17
  attr_accessor :graphset
18
18
 
19
- # :database
19
+ # :database
20
20
  # either use :url, :type, :username, AND :password (for a
21
- # regular connection) OR :datasource AND :type (for a container
21
+ # regular connection) OR :datasource AND :type (for a container
22
22
  # connection), default to memory data store
23
23
  # example for a derby connection:
24
24
  # :database => {:url => "jdbc:hsqldb:file:/some/location/on/your/drive", :type => "hsql", :username => "sa", :password => ""}
@@ -29,7 +29,7 @@ class NG4JAdapter < ActiveRdfAdapter
29
29
  def initialize(params = {})
30
30
  dbparams = params[:database]
31
31
  self.keyword_search = params[:lucene]
32
-
32
+
33
33
  # if the model name is not provided and file persistence is used, then jena just
34
34
  # creates random files in the tmp dir. not good, as we need to know the model name
35
35
  # to have persistence
@@ -38,12 +38,12 @@ class NG4JAdapter < ActiveRdfAdapter
38
38
  else
39
39
  self.model_name = "http://deri.org/defaultgraph"
40
40
  end
41
-
41
+
42
42
  # do some sanity checking
43
43
  if self.keyword_search? && !LuceneARQ.lucene_available?
44
44
  raise NG4JAdapterConfigurationError, "Lucene requested but is not available"
45
45
  end
46
-
46
+
47
47
  # NG4J only supports in-memory store and database storage with HSQL, mysql and postgresql
48
48
  if dbparams
49
49
 
@@ -55,22 +55,22 @@ class NG4JAdapter < ActiveRdfAdapter
55
55
  rescue NameError
56
56
  raise NG4JAdapterConfigurationError, "database type #{dbparams[:type]} not recognized"
57
57
  end
58
-
59
- self.connection = NG4J::DB::DriverManager.getConnection(dbparams[:url],
58
+
59
+ self.connection = NG4J::DB::DriverManager.getConnection(dbparams[:url],
60
60
  dbparams[:username],
61
61
  dbparams[:password])
62
-
62
+
63
63
  self.graphset = NG4J::DB::NamedGraphSetDB.new(self.connection)
64
-
65
- else
66
- self.graphset = NG4J::Impl::NamedGraphSetImpl.new()
64
+
65
+ else
66
+ self.graphset = NG4J::Impl::NamedGraphSetImpl.new()
67
67
  end
68
68
 
69
69
  self.model = self.graphset.asJenaModel(self.model_name)
70
-
70
+
71
71
  self.reads = true
72
72
  self.writes = true
73
-
73
+
74
74
  self
75
75
  end
76
76
 
@@ -116,7 +116,7 @@ class NG4JAdapter < ActiveRdfAdapter
116
116
  o = (is_wildcard?(object) ? Jena::Graph::Node.create("??") : build_object(object))
117
117
 
118
118
  self.graphset.removeQuad(NG4J::Internal::Quad.new(c, s, p, o))
119
-
119
+
120
120
  self.model.prepare if self.model.respond_to? :prepare
121
121
  self.model.rebind if self.model.respond_to? :rebind
122
122
  end
@@ -127,10 +127,10 @@ class NG4JAdapter < ActiveRdfAdapter
127
127
  if context.nil?
128
128
  context = RDFS::Resource.new(self.model_name)
129
129
  end
130
-
131
- self.graphset.addQuad(NG4J::Internal::Quad.new(build_context(context), build_subject(subject),
130
+
131
+ self.graphset.addQuad(NG4J::Internal::Quad.new(build_context(context), build_subject(subject),
132
132
  build_predicate(predicate), build_object(object)))
133
-
133
+
134
134
  self.model.prepare if self.model.respond_to? :prepare
135
135
  self.model.rebind if self.model.respond_to? :rebind
136
136
  end
@@ -143,12 +143,12 @@ class NG4JAdapter < ActiveRdfAdapter
143
143
  # :format
144
144
  # format -- :ntriples, :n3, or :rdfxml, default :rdfxml
145
145
  # :into
146
- # :default_model for the main model, otherwise the contents of the uri get loaded
147
- # into a context with the same uri
146
+ # :default_model for the main model, otherwise the contents of the uri get loaded
147
+ # into a context with the same uri
148
148
  # TODO: add quad support
149
149
  def load(uri_as_string, params = {})
150
150
  format = params[:format] ? params[:format] : :rdfxml
151
-
151
+
152
152
  jena_format =
153
153
  case format
154
154
  when :rdfxml
@@ -165,20 +165,20 @@ class NG4JAdapter < ActiveRdfAdapter
165
165
  else
166
166
  self.graphset.read(uri_as_string, jena_format)
167
167
  end
168
-
168
+
169
169
  self.lucene_index_behind = true
170
-
171
- end
170
+
171
+ end
172
172
 
173
173
  # this method gets called by the ActiveRDF query engine
174
174
  # TODO: add quad support
175
- def query(query, params = {})
175
+ def execute(query)
176
176
 
177
177
  if self.keyword_search? && query.keyword?
178
-
178
+
179
179
  # duplicate the query
180
180
  query_with_keywords = query.dup
181
-
181
+
182
182
  # now duplicate the where stuff so we can fiddle with it...
183
183
  # this is GROSS -- fix this if Query ever sprouts a proper
184
184
  # deep copy or a where_clauses setter
@@ -191,7 +191,7 @@ class NG4JAdapter < ActiveRdfAdapter
191
191
  #query.where("lucene_literal_#{var}".to_sym, LuceneARQ::KEYWORD_PREDICATE, keyword)
192
192
  #query.where(var, "lucene_property_#{var}".to_sym, "lucene_literal_#{var}".to_sym)
193
193
 
194
- # use this if activerdf expects the literal to come back, not the
194
+ # use this if activerdf expects the literal to come back, not the
195
195
  # subject, or if using indexbuildersubject (which makes the subject
196
196
  # come back instead of the literal
197
197
  query_with_keywords.where(var, RDFS::Resource.new(LuceneARQ::KEYWORD_PREDICATE), keyword)
@@ -210,17 +210,17 @@ class NG4JAdapter < ActiveRdfAdapter
210
210
  return [[true]] if results.size > 0
211
211
  return [[false]]
212
212
  end
213
-
213
+
214
214
  if query.count?
215
215
  return results.size
216
216
  end
217
217
 
218
218
  results
219
-
219
+
220
220
  end
221
221
 
222
222
  # ==========================================================================
223
- # put private methods here to seperate api methods from the
223
+ # put private methods here to seperate api methods from the
224
224
  # inner workings of the adapter
225
225
  private
226
226
 
@@ -234,7 +234,7 @@ class NG4JAdapter < ActiveRdfAdapter
234
234
  else
235
235
  objlit = object
236
236
  end
237
-
237
+
238
238
  if objlit.type
239
239
  type = Jena::Datatypes::TypeMapper.getInstance.getTypeByName(objlit.type.uri)
240
240
  o = Jena::Graph::Node.createLiteral(objlit.value.to_s, nil, type)
@@ -243,11 +243,11 @@ class NG4JAdapter < ActiveRdfAdapter
243
243
  else
244
244
  o = Jena::Graph::Node.createLiteral(objlit.value.to_s)
245
245
  end
246
- end
246
+ end
247
247
  return o
248
248
  end
249
249
 
250
- def build_subject(subject)
250
+ def build_subject(subject)
251
251
  # TODO: raise error if not URI
252
252
  return Jena::Graph::Node.createURI(subject.uri)
253
253
  end
@@ -272,7 +272,7 @@ class NG4JAdapter < ActiveRdfAdapter
272
272
  # else
273
273
  # objlit = object
274
274
  # end
275
- #
275
+ #
276
276
  # if objlit.type
277
277
  # type = Jena::Datatypes::TypeMapper.getInstance.getTypeByName(objlit.type.uri)
278
278
  # o = self.model.createTypedLiteral(objlit.value, type)
@@ -281,14 +281,14 @@ class NG4JAdapter < ActiveRdfAdapter
281
281
  # else
282
282
  # o = self.model.createTypedLiteral(objlit.value, nil)
283
283
  # end
284
- # end
284
+ # end
285
285
  # return o
286
286
  # end
287
- #
288
- # def build_model_subject(subject)
287
+ #
288
+ # def build_model_subject(subject)
289
289
  # self.model.getResource(subject.uri)
290
290
  # end
291
- #
291
+ #
292
292
  # def build_model_predicate(predicate)
293
293
  # self.model.getProperty(predicate.uri)
294
294
  # end
@@ -298,16 +298,16 @@ class NG4JAdapter < ActiveRdfAdapter
298
298
  end
299
299
 
300
300
  def query_jena(query)
301
- query_sparql = translate(query)
302
-
301
+ query_sparql = translate(query)
302
+
303
303
  # jena_query = Jena::Query::QueryFactory.create(query_sparql)
304
- #
304
+ #
305
305
  # puts jena_query
306
306
  #
307
-
307
+
308
308
  if query_sparql =~ /GRAPH/
309
309
  # query contains GRAPH keyword and has to be executed against an NG4J NamedGraphDataset
310
- qexec = Jena::Query::QueryExecutionFactory.create(query_sparql,
310
+ qexec = Jena::Query::QueryExecutionFactory.create(query_sparql,
311
311
  NG4J::Sparql::NamedGraphDataset.new(self.graphset, Jena::Graph::Node.createURI(self.model_name)))
312
312
  else
313
313
  # query without GRAPH keyword gets executed against the union model
@@ -321,7 +321,7 @@ class NG4JAdapter < ActiveRdfAdapter
321
321
  LuceneARQ::LARQ.setDefaultIndex(qexec.getContext, retrieve_lucene_index)
322
322
  end
323
323
 
324
- begin
324
+ begin
325
325
  results = perform_query(query, qexec)
326
326
  ensure
327
327
  qexec.close
@@ -334,7 +334,7 @@ class NG4JAdapter < ActiveRdfAdapter
334
334
  def perform_query(query, qexec)
335
335
  results = qexec.execSelect
336
336
  arr_results = []
337
-
337
+
338
338
  while results.hasNext
339
339
  row = results.nextSolution
340
340
  res_row = []
@@ -351,7 +351,7 @@ class NG4JAdapter < ActiveRdfAdapter
351
351
  # datatyped literal
352
352
  res_row << Literal.new(thing.getValue, RDFS::Resource.new(thing.getDatatypeURI))
353
353
  elsif thing.getDatatypeURI.nil?
354
- # language tagged literal
354
+ # language tagged literal
355
355
  res_row << Literal.new(thing.getLexicalForm, "@" + thing.getLanguage)
356
356
  else
357
357
  raise ActiveRdfError, "Jena Sparql returned a strange literal"
@@ -4,7 +4,7 @@
4
4
  # License: LGPL
5
5
  #
6
6
  module Pellet
7
-
7
+
8
8
  class << self
9
9
  bool_accessor :pellet_available
10
10
  attr_accessor :reasoner_factory