activerdf 1.6.3 → 1.6.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ == activerdf (1.6.4)
2
+ * new method: ConnectionPool.remove_data_source(adapter) which should be called
3
+ by all adapter.close methods
4
+
1
5
  == activerdf (1.6.3) Thu, 09 Aug 2007 15:11:15 +0100
2
6
  * added support for LANG filters and engine-specific keyword search in SPARQL
3
7
 
@@ -57,6 +57,10 @@ class ConnectionPool
57
57
  @@adapter_pool.select {|adapter| adapter.reads? }
58
58
  end
59
59
 
60
+ def ConnectionPool.write_adapters
61
+ @@adapter_pool.select {|adapter| adapter.writes? }
62
+ end
63
+
60
64
  # returns adapter-instance for given parameters (either existing or new)
61
65
  def ConnectionPool.add_data_source(connection_params)
62
66
  $activerdflog.info "ConnectionPool: add_data_source with params: #{connection_params.inspect}"
@@ -83,6 +87,25 @@ class ConnectionPool
83
87
  self.write_adapter = adapter if adapter.writes?
84
88
 
85
89
  return adapter
90
+ end
91
+
92
+ # remove one adapter from activerdf
93
+ def ConnectionPool.remove_data_source(adapter)
94
+ $activerdflog.info "ConnectionPool: remove_data_source with params: #{adapter.to_s}"
95
+
96
+ index = @@adapter_pool.index(adapter)
97
+
98
+ # remove_data_source mit be called repeatedly, e.g because the adapter object is stale
99
+ unless index.nil?
100
+ @@adapter_parameters.delete_at(index)
101
+ @@adapter_pool.delete_at(index)
102
+ if self.write_adapters.empty?
103
+ self.write_adapter = nil
104
+ else
105
+ self.write_adapter = self.write_adapters.first
106
+ end
107
+ end
108
+
86
109
  end
87
110
 
88
111
  # sets adapter-instance for connection parameters (if you want to re-enable an existing adapter)
@@ -15,7 +15,6 @@ class FederationManager
15
15
  # by distributing query over complete read-pool
16
16
  # and aggregating the results
17
17
  def FederationManager.query(q, options={:flatten => true})
18
- $activerdflog.debug "querying #{q.to_sp}"
19
18
  if ConnectionPool.read_adapters.empty?
20
19
  raise ActiveRdfError, "cannot execute query without data sources"
21
20
  end
@@ -100,10 +100,14 @@ class Query
100
100
  end
101
101
 
102
102
  # filter variable on specified language tag, e.g. lang(:o, 'en')
103
- def lang variable, tag
104
- #filter "regex(lang(?#{variable}), '^#{tag}(-|$)', 'i')"
105
- filter "lang(?#{variable}) = '#{tag}'"
106
- #filter "langMatches(lang(?#{variable}), '#{tag}')"
103
+ # optionally matches exactly on language dialect, otherwise only
104
+ # language-specifier is considered
105
+ def lang variable, tag, exact=false
106
+ if exact
107
+ filter "lang(?#{variable} = '#{tag}'"
108
+ else
109
+ filter "regex(lang(?#{variable}), '^#{tag.gsub(/_.*/,'')}$')"
110
+ end
107
111
  end
108
112
 
109
113
  # adds reverse sorting predicates
@@ -177,7 +181,6 @@ class Query
177
181
  # usage:: query.execute do |s,p,o| ... end
178
182
  def execute(options={:flatten => false}, &block)
179
183
  options = {:flatten => true} if options == :flatten
180
- $activerdflog.debug("executing: #{self.to_sp}")
181
184
 
182
185
  if block_given?
183
186
  for result in FederationManager.query(self, options)
@@ -5,6 +5,7 @@ require 'active_rdf'
5
5
  # Translates abstract query into SPARQL that can be executed on SPARQL-compliant
6
6
  # data source.
7
7
  class Query2SPARQL
8
+
8
9
  Engines_With_Keyword = [:yars2, :virtuoso]
9
10
  def self.translate(query, engine=nil)
10
11
  str = ""
data/lib/active_rdf.rb CHANGED
@@ -1,11 +1,16 @@
1
1
  # ActiveRDF loader
2
2
 
3
- # adding active_rdf subdirectory to the ruby loadpath
4
- file = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
5
- this_dir = File.dirname(File.expand_path(file))
6
- $: << this_dir
3
+ if RUBY_PLATFORM =~ /java/
4
+ # jruby can not follow symlinks, because java does not know the symlink concept
5
+ this_dir = File.dirname(File.expand_path(__FILE__))
6
+ else
7
+ file = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
8
+ this_dir = File.dirname(File.expand_path(file))
9
+ end
10
+ $: << this_dir + '/'
7
11
  $: << this_dir + '/active_rdf/'
8
12
 
13
+
9
14
  require 'active_rdf_helpers'
10
15
  require 'active_rdf_log'
11
16
 
@@ -32,13 +37,19 @@ require 'rubygems'
32
37
  if Gem::cache.search(/^activerdf$/).empty?
33
38
  # we are not running as a gem
34
39
  $activerdflog.info 'ActiveRDF is NOT installed as a Gem'
35
- load_adapter this_dir + '/../activerdf-rdflite/lib/activerdf_rdflite/rdflite'
36
- load_adapter this_dir + '/../activerdf-rdflite/lib/activerdf_rdflite/fetching'
37
- load_adapter this_dir + '/../activerdf-rdflite/lib/activerdf_rdflite/suggesting'
38
- load_adapter this_dir + '/../activerdf-redland/lib/activerdf_redland/redland'
39
- load_adapter this_dir + '/../activerdf-sparql/lib/activerdf_sparql/sparql'
40
- load_adapter this_dir + '/../activerdf-yars/lib/activerdf_yars/jars2'
41
- load_adapter this_dir + '/../activerdf-sesame/lib/activerdf_sesame/sesame'
40
+ if RUBY_PLATFORM =~ /java/
41
+ load_adapter this_dir + '/activerdf/activerdf-jena/lib/activerdf_jena/init'
42
+ load_adapter this_dir + '/activerdf/activerdf-sparql/lib/activerdf_sparql/sparql'
43
+ #load_adapter this_dir + '/../activerdf-sesame/lib/activerdf_sesame/sesame'
44
+ else
45
+ load_adapter this_dir + '/../activerdf-rdflite/lib/activerdf_rdflite/rdflite'
46
+ load_adapter this_dir + '/../activerdf-rdflite/lib/activerdf_rdflite/fetching'
47
+ load_adapter this_dir + '/../activerdf-rdflite/lib/activerdf_rdflite/suggesting'
48
+ load_adapter this_dir + '/../activerdf-redland/lib/activerdf_redland/redland'
49
+ load_adapter this_dir + '/../activerdf-sparql/lib/activerdf_sparql/sparql'
50
+ load_adapter this_dir + '/../activerdf-yars/lib/activerdf_yars/jars2'
51
+ end
52
+
42
53
  else
43
54
  # we are running as a gem
44
55
  require 'gem_plugin'
metadata CHANGED
@@ -1,94 +1,89 @@
1
- --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
- name: activerdf
5
- version: !ruby/object:Gem::Version
6
- version: 1.6.3
7
- date: 2007-08-09 00:00:00 +01:00
8
- summary: Offers object-oriented access to RDF (with adapters to several datastores).
9
- require_paths:
10
- - lib
11
- email: eyal.oren@deri.org
1
+ --- !ruby/object:Gem::Specification
12
2
  homepage: http://www.activerdf.org
13
- rubyforge_project:
14
- description: Offers object-oriented access to RDF (with adapters to several datastores).
15
- autorequire: active_rdf
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
25
- platform: ruby
26
- signing_key:
27
- cert_chain:
3
+ extensions: []
4
+ executables: []
5
+ version: !ruby/object:Gem::Version
6
+ version: 1.6.4
28
7
  post_install_message:
29
- authors:
30
- - Eyal Oren
8
+ date: 2007-09-01 22:00:00 +00:00
31
9
  files:
32
10
  - LICENSE
33
11
  - README
34
12
  - CHANGELOG
13
+ - test/common.rb
35
14
  - test/federation
36
- - test/federation/test_federation_manager.rb
37
- - test/federation/test_connection_pool.rb
38
15
  - test/objectmanager
39
- - test/objectmanager/test_resource_reading.rb
16
+ - test/queryengine
17
+ - test/small-one.nt
18
+ - test/small-two.nt
19
+ - test/test_adapters.rb
20
+ - test/test_person_data.nt
21
+ - test/federation/test_connection_pool.rb
22
+ - test/federation/test_federation_manager.rb
40
23
  - test/objectmanager/test_literal.rb
41
24
  - test/objectmanager/test_namespace.rb
42
25
  - test/objectmanager/test_object_manager.rb
26
+ - test/objectmanager/test_resource_reading.rb
43
27
  - test/objectmanager/test_resource_writing.rb
44
- - test/queryengine
45
28
  - test/queryengine/test_ntriples_parser.rb
46
29
  - test/queryengine/test_query.rb
47
30
  - test/queryengine/test_query2jars2.rb
48
31
  - test/queryengine/test_query2sparql.rb
49
32
  - test/queryengine/test_query_engine.rb
50
- - test/common.rb
51
- - test/test_adapters.rb
52
- - test/test_person_data.nt
53
- - test/small-one.nt
54
- - test/small-two.nt
55
33
  - lib/active_rdf
34
+ - lib/active_rdf.rb
35
+ - lib/active_rdf_helpers.rb
36
+ - lib/active_rdf_log.rb
56
37
  - lib/active_rdf/federation
38
+ - lib/active_rdf/objectmanager
39
+ - lib/active_rdf/queryengine
40
+ - lib/active_rdf/federation/active_rdf_adapter.rb
57
41
  - lib/active_rdf/federation/connection_pool.rb
58
42
  - lib/active_rdf/federation/federation_manager.rb
59
- - lib/active_rdf/federation/active_rdf_adapter.rb
60
- - lib/active_rdf/objectmanager
61
- - lib/active_rdf/objectmanager/resource.rb
62
- - lib/active_rdf/objectmanager/namespace.rb
63
43
  - lib/active_rdf/objectmanager/literal.rb
44
+ - lib/active_rdf/objectmanager/namespace.rb
64
45
  - lib/active_rdf/objectmanager/object_manager.rb
65
- - lib/active_rdf/queryengine
66
- - lib/active_rdf/queryengine/query.rb
67
- - lib/active_rdf/queryengine/query2sparql.rb
46
+ - lib/active_rdf/objectmanager/resource.rb
68
47
  - lib/active_rdf/queryengine/ntriples_parser.rb
48
+ - lib/active_rdf/queryengine/query.rb
69
49
  - lib/active_rdf/queryengine/query2jars2.rb
70
- - lib/active_rdf.rb
71
- - lib/active_rdf_log.rb
72
- - lib/active_rdf_helpers.rb
73
- test_files: []
74
-
50
+ - lib/active_rdf/queryengine/query2sparql.rb
51
+ rubygems_version: 0.9.4
75
52
  rdoc_options: []
76
-
77
- extra_rdoc_files:
78
- - README
79
- executables: []
80
-
81
- extensions: []
82
-
83
- requirements: []
84
-
53
+ signing_key:
54
+ cert_chain:
55
+ name: activerdf
56
+ has_rdoc: true
57
+ platform: ruby
58
+ summary: Offers object-oriented access to RDF (with adapters to several datastores).
59
+ default_executable:
60
+ bindir: bin
61
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
62
+ version:
63
+ requirements:
64
+ - - '>'
65
+ - !ruby/object:Gem::Version
66
+ version: 0.0.0
67
+ require_paths:
68
+ - lib
69
+ specification_version: 1
70
+ test_files: []
85
71
  dependencies:
86
- - !ruby/object:Gem::Dependency
72
+ - !ruby/object:Gem::Dependency
87
73
  name: gem_plugin
88
74
  version_requirement:
89
- version_requirements: !ruby/object:Gem::Version::Requirement
75
+ version_requirements: !ruby/object:Gem::Version::Requirement
76
+ version:
90
77
  requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
78
+ - - '>='
79
+ - !ruby/object:Gem::Version
93
80
  version: 0.2.1
94
- version:
81
+ description: Offers object-oriented access to RDF (with adapters to several datastores).
82
+ authors:
83
+ - Eyal Oren
84
+ email: eyal.oren@deri.org
85
+ extra_rdoc_files:
86
+ - README
87
+ requirements: []
88
+ rubyforge_project:
89
+ autorequire: active_rdf