activerdf_sparql 1.1 → 1.2
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/Rakefile +34 -7
- data/lib/activerdf_sparql/sparql.rb +1 -1
- data/test/test_sparql_adapter.rb +82 -72
- metadata +13 -4
data/Rakefile
CHANGED
@@ -3,29 +3,56 @@ require 'rake/testtask'
|
|
3
3
|
require 'rake/clean'
|
4
4
|
require 'rake/gempackagetask'
|
5
5
|
require 'rake/rdoctask'
|
6
|
-
require '../tools/rakehelp'
|
7
6
|
require 'fileutils'
|
8
7
|
include FileUtils
|
9
8
|
|
10
|
-
|
11
|
-
|
9
|
+
# setup tests
|
10
|
+
Rake::TestTask.new do |task|
|
11
|
+
task.test_files = FileList['test/**/*.rb']
|
12
|
+
end
|
13
|
+
|
14
|
+
# setup which files to clean
|
15
|
+
CLEAN.include ['**/*.log', 'pkg', 'lib/*.bundle', '*.gem', '.config']
|
12
16
|
|
13
|
-
|
17
|
+
# setup rdoc
|
18
|
+
Rake::RDocTask.new do |rdoc|
|
19
|
+
rdoc.rdoc_dir = 'doc/rdoc'
|
20
|
+
rdoc.options << '--line-numbers'
|
21
|
+
rdoc.rdoc_files.add ['README', 'LICENSE', 'lib/**/*.rb', 'doc/**/*.rdoc']
|
22
|
+
end
|
14
23
|
|
15
24
|
desc "Does a full compile, test run"
|
16
25
|
task :default => [:test, :package]
|
17
26
|
|
18
|
-
|
19
|
-
name=
|
27
|
+
spec = Gem::Specification.new do |spec|
|
28
|
+
spec.name = 'activerdf_sparql'
|
29
|
+
spec.version = '1.2'
|
30
|
+
spec.platform = Gem::Platform::RUBY
|
31
|
+
spec.has_rdoc = true
|
32
|
+
spec.extra_rdoc_files = [ "README" ]
|
33
|
+
|
34
|
+
spec.files = %w(LICENSE README Rakefile) +
|
35
|
+
Dir.glob("{bin,doc/rdoc,test,lib}/**/*") +
|
36
|
+
Dir.glob("ext/**/*.{h,c,rb}") +
|
37
|
+
Dir.glob("examples/**/*.rb") +
|
38
|
+
Dir.glob("tools/*.rb")
|
39
|
+
|
40
|
+
spec.require_path = "lib"
|
41
|
+
spec.extensions = FileList["ext/**/extconf.rb"].to_a
|
42
|
+
spec.bindir = "bin"
|
20
43
|
|
21
|
-
setup_gem(name, version) do |spec|
|
22
44
|
spec.summary = "ActiveRDF adapter to SPARQL endpoint"
|
23
45
|
spec.description = spec.summary
|
24
46
|
spec.author="Eyal Oren <eyal.oren@deri.org"
|
25
47
|
spec.add_dependency('gem_plugin', '>= 0.2.1')
|
26
48
|
spec.add_dependency('activerdf', '>= 0.9.2')
|
49
|
+
spec.add_dependency('json')
|
27
50
|
end
|
28
51
|
|
52
|
+
Rake::GemPackageTask.new(spec) do |p|
|
53
|
+
p.gem_spec = spec
|
54
|
+
p.need_tar = false
|
55
|
+
end
|
29
56
|
|
30
57
|
task :install => [:package] do
|
31
58
|
sh %{sudo gem install pkg/#{name}-#{version}.gem}
|
data/test/test_sparql_adapter.rb
CHANGED
@@ -10,7 +10,9 @@ require 'queryengine/query'
|
|
10
10
|
class TestSparqlAdapter < Test::Unit::TestCase
|
11
11
|
def setup
|
12
12
|
ConnectionPool.clear
|
13
|
-
|
13
|
+
@adapter = ConnectionPool.add(:type => :sparql,
|
14
|
+
:url => "http://m3pe.org:8080/repositories/test-people/",
|
15
|
+
:results => :sparql_xml)
|
14
16
|
end
|
15
17
|
|
16
18
|
def teardown
|
@@ -21,88 +23,96 @@ class TestSparqlAdapter < Test::Unit::TestCase
|
|
21
23
|
end
|
22
24
|
|
23
25
|
def test_simple_query
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
begin
|
27
|
+
result = Query.new.select(:s).where(:s, Namespace.lookup(:rdf,:type), :t).execute.first
|
28
|
+
rescue
|
29
|
+
# don't fail if SPARQL server doesn't respond
|
30
|
+
else
|
31
|
+
assert_instance_of RDFS::Resource, result
|
32
|
+
|
33
|
+
second_result = Query.new.select(:s, :p).where(:s, :p, 27).execute.flatten
|
34
|
+
assert_equal 2, second_result.size
|
35
|
+
assert_instance_of RDFS::Resource, second_result[0]
|
36
|
+
assert_instance_of RDFS::Resource, second_result[1]
|
37
|
+
end
|
31
38
|
end
|
32
39
|
|
33
40
|
def test_query_with_block
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
assert reached_block, "querying with a block does not work"
|
45
|
-
end
|
46
|
-
|
47
|
-
# TODO: move this to the query test cases
|
48
|
-
def test_query_refuses_string_in_where_clause_subject_or_predicate
|
49
|
-
assert_raises ActiveRdfError do
|
50
|
-
Query.new.select(:s).where("http://test.org/uri",:p, :o).execute
|
51
|
-
end
|
41
|
+
begin
|
42
|
+
reached_block = false
|
43
|
+
Query.new.select(:s,:p).where(:s,:p, 27).execute do |s,p|
|
44
|
+
reached_block = true
|
45
|
+
assert_equal 'http://activerdf.org/test/eyal', s.uri
|
46
|
+
assert_equal 'http://activerdf.org/test/age', p.uri
|
47
|
+
end
|
48
|
+
assert reached_block, "querying with a block does not work"
|
49
|
+
rescue
|
50
|
+
end
|
52
51
|
end
|
53
52
|
|
54
53
|
def test_refuse_to_write
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
54
|
+
begin
|
55
|
+
eyal = RDFS::Resource.new 'http://activerdf.org/test/eyal'
|
56
|
+
age = RDFS::Resource.new 'foaf:age'
|
57
|
+
test = RDFS::Resource.new 'test'
|
58
|
+
|
59
|
+
# NameError gets thown if the method is unknown
|
60
|
+
assert_raises NoMethodError do
|
61
|
+
@adapter.add(eyal, age, test)
|
62
|
+
end
|
63
|
+
rescue
|
64
|
+
end
|
63
65
|
end
|
64
66
|
|
65
67
|
def test_federated_query
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
68
|
+
begin
|
69
|
+
# we first ask one sparql endpoint
|
70
|
+
first_size = Query.new.select(:o).where(:s, :p, :o).execute(:flatten => false).size
|
71
|
+
ConnectionPool.clear
|
72
|
+
|
73
|
+
# then we ask the second endpoint
|
74
|
+
ConnectionPool.add_data_source(:type => :sparql,
|
75
|
+
:url => "http://www.m3pe.org:8080/repositories/mindpeople",
|
76
|
+
:results => :sparql_xml)
|
77
|
+
|
78
|
+
second_size = Query.new.select(:o).where(:s, :p, :o).execute.size
|
79
|
+
|
80
|
+
ConnectionPool.clear
|
81
|
+
|
82
|
+
# now we ask both
|
83
|
+
ConnectionPool.add_data_source(:type => :sparql,
|
84
|
+
:url => "http://www.m3pe.org:8080/repositories/test-people/",
|
85
|
+
:results => :sparql_xml)
|
86
|
+
ConnectionPool.add_data_source(:type => :sparql,
|
87
|
+
:url => "http://www.m3pe.org:8080/repositories/mindpeople",
|
88
|
+
:results => :sparql_xml)
|
89
|
+
|
90
|
+
union_size = Query.new.select(:o).where(:s, :p, :o).execute.size
|
91
|
+
assert_equal union_size, first_size + second_size
|
92
|
+
rescue
|
93
|
+
end
|
87
94
|
end
|
88
95
|
|
89
96
|
def test_person_data
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
97
|
+
begin
|
98
|
+
eyal = RDFS::Resource.new("http://activerdf.org/test/eyal")
|
99
|
+
eye = RDFS::Resource.new("http://activerdf.org/test/eye")
|
100
|
+
type = RDFS::Resource.new("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")
|
101
|
+
age = RDFS::Resource.new("http://activerdf.org/test/age")
|
102
|
+
person = RDFS::Resource.new("http://www.w3.org/2000/01/rdf-schema#Resource")
|
103
|
+
resource = RDFS::Resource.new("http://activerdf.org/test/Person")
|
104
|
+
|
105
|
+
color = Query.new.select(:o).where(eyal, eye,:o).execute.first
|
106
|
+
assert_equal 'blue', color
|
107
|
+
assert_instance_of String, color
|
108
|
+
|
109
|
+
age_result = Query.new.select(:o).where(eyal, age, :o).execute.first.to_i
|
110
|
+
assert_equal 27, age_result
|
111
|
+
|
112
|
+
types_result = Query.new.select(:o).where(eyal, type, :o).execute
|
113
|
+
assert types_result.include?(person)
|
114
|
+
assert types_result.include?(resource)
|
115
|
+
rescue
|
116
|
+
end
|
107
117
|
end
|
108
118
|
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.2
|
3
3
|
specification_version: 1
|
4
4
|
name: activerdf_sparql
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: "1.
|
7
|
-
date:
|
6
|
+
version: "1.2"
|
7
|
+
date: 2007-02-13 00:00:00 +00:00
|
8
8
|
summary: ActiveRDF adapter to SPARQL endpoint
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -34,9 +34,9 @@ files:
|
|
34
34
|
- Rakefile
|
35
35
|
- test/test_sparql_adapter.rb
|
36
36
|
- lib/activerdf_sparql
|
37
|
+
- lib/activerdf_sparql/init.rb
|
37
38
|
- lib/activerdf_sparql/sparql.rb
|
38
39
|
- lib/activerdf_sparql/sparql_result_parser.rb
|
39
|
-
- lib/activerdf_sparql/init.rb
|
40
40
|
test_files: []
|
41
41
|
|
42
42
|
rdoc_options: []
|
@@ -68,3 +68,12 @@ dependencies:
|
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: 0.9.2
|
70
70
|
version:
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: json
|
73
|
+
version_requirement:
|
74
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 0.0.0
|
79
|
+
version:
|