activerdf 1.6.3 → 1.6.4

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/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