activerdf 1.0

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.
@@ -0,0 +1,52 @@
1
+ # Author:: Eyal Oren
2
+ # Copyright:: (c) 2005-2006
3
+ # License:: LGPL
4
+
5
+ require 'test/unit'
6
+ require 'active_rdf'
7
+ require 'queryengine/query'
8
+ require 'queryengine/query2sparql'
9
+ require "#{File.dirname(__FILE__)}/../common"
10
+
11
+ class TestQueryEngine < Test::Unit::TestCase
12
+ def setup
13
+ end
14
+
15
+ def teardown
16
+ end
17
+
18
+ def test_sparql_generation
19
+
20
+ # TODO: write tests for distinct, ask
21
+
22
+ query = Query.new
23
+ query.select(:s)
24
+ query.where(:s, RDFS::Resource.new('predicate'), '30')
25
+
26
+ generated = Query2SPARQL.translate(query)
27
+ expected = "SELECT ?s WHERE { ?s <predicate> \"30\" . }"
28
+ assert_equal expected, generated
29
+
30
+ query = Query.new
31
+ query.select(:s)
32
+ query.where(:s, RDFS::Resource.new('foaf:age'), :a)
33
+ query.where(:a, RDFS::Resource.new('rdf:type'), RDFS::Resource.new('xsd:int'))
34
+ generated = Query2SPARQL.translate(query)
35
+ expected = "SELECT ?s WHERE { ?s <foaf:age> ?a. ?a <rdf:type> <xsd:int> . }"
36
+ assert_equal expected, generated
37
+
38
+ # query = Query.new
39
+ # query.select(:s).select(:a)
40
+ # query.where(:s, 'foaf:age', :a)
41
+ # generated = Query2SPARQL.translate(query)
42
+ # expected = "SELECT DISTINCT ?s ?a WHERE { ?s foaf:age ?a .}"
43
+ # assert_equal expected, generated
44
+ end
45
+
46
+ def test_query_omnipotent
47
+ # can define multiple select clauses at once or separately
48
+ q1 = Query.new.select(:s,:a)
49
+ q2 = Query.new.select(:s).select(:a)
50
+ assert_equal Query2SPARQL.translate(q1),Query2SPARQL.translate(q2)
51
+ end
52
+ end
@@ -0,0 +1,52 @@
1
+ # Author:: Eyal Oren
2
+ # Copyright:: (c) 2005-2006
3
+ # License:: LGPL
4
+
5
+ require 'test/unit'
6
+ require 'active_rdf'
7
+ require 'federation/federation_manager'
8
+ require 'queryengine/query'
9
+ require "#{File.dirname(__FILE__)}/common"
10
+
11
+ class TestAdapter < Test::Unit::TestCase
12
+ def setup
13
+ ConnectionPool.clear
14
+ end
15
+
16
+ def teardown
17
+ end
18
+
19
+ def test_ensure_adapter_behaviour
20
+ read_adapters = get_all_read_adapters
21
+ write_adapters = get_all_write_adapters
22
+ read_behaviour = [:query, :translate, :writes?, :reads?]
23
+ write_behaviour = [:add, :delete, :flush, :load]
24
+
25
+ read_behaviour.each do |method|
26
+ read_adapters.each do |a|
27
+ assert a.respond_to?(method), "adapter #{a.class} should respond to #{method}"
28
+ end
29
+ end
30
+
31
+ write_behaviour.each do |method|
32
+ write_adapters.each do |a|
33
+ assert a.respond_to?(method), "adapter #{a.class} should respond to #{method}"
34
+ end
35
+ end
36
+ end
37
+
38
+ def test_update_value
39
+ adapter = get_write_adapter
40
+ adapter.load "#{File.dirname(__FILE__)}/test_person_data.nt"
41
+
42
+ Namespace.register(:test, 'http://activerdf.org/test/')
43
+ eyal = Namespace.lookup(:test, :eyal)
44
+
45
+ assert_equal '27', eyal.age
46
+ eyal.age = 30
47
+
48
+ assert eyal.age.include?('30')
49
+ assert eyal.age.include?('27')
50
+ end
51
+ end
52
+
@@ -0,0 +1,28 @@
1
+ <http://activerdf.org/test/Person> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
2
+ <http://activerdf.org/test/Person> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://www.w3.org/2000/01/rdf-schema#Resource> .
3
+ <http://activerdf.org/test/eyal> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://activerdf.org/test/Person> .
4
+ <http://activerdf.org/test/eyal> <http://activerdf.org/test/age> "27" .
5
+ <http://activerdf.org/test/eyal> <http://activerdf.org/test/eye> "blue" .
6
+ <http://activerdf.org/test/age> <http://www.w3.org/2000/01/rdf-schema#domain> <http://www.w3.org/2000/01/rdf-schema#Resource> .
7
+ <http://activerdf.org/test/eye> <http://www.w3.org/2000/01/rdf-schema#domain> <http://www.w3.org/2000/01/rdf-schema#Resource> .
8
+ <http://activerdf.org/test/car> <http://www.w3.org/2000/01/rdf-schema#domain> <http://www.w3.org/2000/01/rdf-schema#Resource> .
9
+ <http://activerdf.org/test/age> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> .
10
+ <http://activerdf.org/test/eye> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> .
11
+ <http://activerdf.org/test/car> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> .
12
+ <http://activerdf.org/test/age> <http://www.w3.org/2000/01/rdf-schema#domain> <http://activerdf.org/test/Person> .
13
+ <http://activerdf.org/test/age> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Literal> .
14
+ <http://activerdf.org/test/eye> <http://www.w3.org/2000/01/rdf-schema#domain> <http://activerdf.org/test/Person> .
15
+ <http://activerdf.org/test/eye> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Literal> .
16
+ <http://activerdf.org/test/car> <http://www.w3.org/2000/01/rdf-schema#domain> <http://activerdf.org/test/Person> .
17
+ <http://activerdf.org/test/car> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Literal> .
18
+ <http://activerdf.org/test/Person> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
19
+ <http://activerdf.org/test/eye> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
20
+ <http://activerdf.org/test/eyal> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
21
+ <http://activerdf.org/test/age> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
22
+ <http://activerdf.org/test/car> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
23
+ <http://www.w3.org/2000/01/rdf-schema#Class> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
24
+ <http://www.w3.org/2000/01/rdf-schema#Class> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
25
+ <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
26
+ <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
27
+ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#domain> <http://www.w3.org/2000/01/rdf-schema#Resource> .
28
+ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2000/01/rdf-schema#Class> .
data/tools/rakehelp.rb ADDED
@@ -0,0 +1,103 @@
1
+
2
+ def make(makedir)
3
+ Dir.chdir(makedir) do
4
+ sh(PLATFORM =~ /win32/ ? 'nmake' : 'make')
5
+ end
6
+ end
7
+
8
+
9
+ def extconf(dir)
10
+ Dir.chdir(dir) do ruby "extconf.rb" end
11
+ end
12
+
13
+
14
+ def setup_tests
15
+ Rake::TestTask.new do |t|
16
+ t.test_files = FileList['test/**/*.rb']
17
+ end
18
+ end
19
+
20
+
21
+ def setup_clean otherfiles
22
+ files = ['build/*', '**/*.o', '**/*.so', '**/*.a', 'lib/*-*', '**/*.log'] + otherfiles
23
+ CLEAN.include(files)
24
+ end
25
+
26
+
27
+ def setup_rdoc files
28
+ Rake::RDocTask.new do |rdoc|
29
+ rdoc.rdoc_dir = 'doc/rdoc'
30
+ rdoc.options << '--line-numbers'
31
+ rdoc.rdoc_files.add(files)
32
+ end
33
+ end
34
+
35
+
36
+ def setup_extension(dir, extension)
37
+ ext = "ext/#{dir}"
38
+ ext_so = "#{ext}/#{extension}.#{Config::CONFIG['DLEXT']}"
39
+ ext_files = FileList[
40
+ "#{ext}/*.c",
41
+ "#{ext}/*.h",
42
+ "#{ext}/extconf.rb",
43
+ "#{ext}/Makefile",
44
+ "lib"
45
+ ]
46
+
47
+ task "lib" do
48
+ directory "lib"
49
+ end
50
+
51
+ desc "Builds just the #{extension} extension"
52
+ task extension.to_sym => ["#{ext}/Makefile", ext_so ]
53
+
54
+ file "#{ext}/Makefile" => ["#{ext}/extconf.rb"] do
55
+ extconf "#{ext}"
56
+ end
57
+
58
+ file ext_so => ext_files do
59
+ make "#{ext}"
60
+ cp ext_so, "lib"
61
+ end
62
+ end
63
+
64
+
65
+ def base_gem_spec(pkg_name, pkg_version)
66
+ pkg_version = pkg_version
67
+ pkg_name = pkg_name
68
+ pkg_file_name = "#{pkg_name}-#{pkg_version}"
69
+ Gem::Specification.new do |s|
70
+ s.name = pkg_name
71
+ s.version = pkg_version
72
+ s.platform = Gem::Platform::RUBY
73
+ s.has_rdoc = true
74
+ s.extra_rdoc_files = [ "README" ]
75
+
76
+ s.files = %w(LICENSE README Rakefile) +
77
+ Dir.glob("{bin,doc/rdoc,test,lib}/**/*") +
78
+ Dir.glob("ext/**/*.{h,c,rb}") +
79
+ Dir.glob("examples/**/*.rb") +
80
+ Dir.glob("tools/*.rb")
81
+
82
+ s.require_path = "lib"
83
+ s.extensions = FileList["ext/**/extconf.rb"].to_a
84
+ s.bindir = "bin"
85
+ end
86
+ end
87
+
88
+ def setup_gem(pkg_name, pkg_version)
89
+ spec = base_gem_spec(pkg_name, pkg_version)
90
+ yield spec if block_given?
91
+
92
+ Rake::GemPackageTask.new(spec) do |p|
93
+ p.gem_spec = spec
94
+ p.need_tar = false
95
+ end
96
+ end
97
+
98
+ def setup_win32_gem(pkg_name, pkg_version)
99
+ spec = base_gem_spec(pkg_name, pkg_version)
100
+ yield spec if block_given?
101
+
102
+ Gem::Builder.new(spec).build
103
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.0
3
+ specification_version: 1
4
+ name: activerdf
5
+ version: !ruby/object:Gem::Version
6
+ version: "1.0"
7
+ date: 2006-11-02 00:00:00 +00: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
12
+ 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:
28
+ post_install_message:
29
+ authors:
30
+ - Eyal Oren
31
+ files:
32
+ - LICENSE
33
+ - README
34
+ - Rakefile
35
+ - test/federation
36
+ - test/objectmanager
37
+ - test/queryengine
38
+ - test/common.rb
39
+ - test/test_adapters.rb
40
+ - test/test_person_data.nt
41
+ - test/federation/test_connection_pool.rb
42
+ - test/federation/test_federation_manager.rb
43
+ - test/objectmanager/test_namespace.rb
44
+ - test/objectmanager/test_object_manager.rb
45
+ - test/objectmanager/test_resource_reading.rb
46
+ - test/objectmanager/test_resource_writing.rb
47
+ - test/queryengine/test_query.rb
48
+ - test/queryengine/test_query2jars2.rb
49
+ - test/queryengine/test_query2sparql.rb
50
+ - test/queryengine/test_query_engine.rb
51
+ - lib/active_rdf.rb
52
+ - lib/active_rdf_log.rb
53
+ - lib/active_rdf
54
+ - lib/active_rdf_helpers.rb
55
+ - lib/active_rdf/federation
56
+ - lib/active_rdf/objectmanager
57
+ - lib/active_rdf/queryengine
58
+ - lib/active_rdf/federation/connection_pool.rb
59
+ - lib/active_rdf/federation/federation_manager.rb
60
+ - lib/active_rdf/federation/active_rdf_adapter.rb
61
+ - lib/active_rdf/objectmanager/namespace.rb
62
+ - lib/active_rdf/objectmanager/object_manager.rb
63
+ - lib/active_rdf/objectmanager/resource.rb
64
+ - lib/active_rdf/queryengine/query.rb
65
+ - lib/active_rdf/queryengine/query2jars2.rb
66
+ - lib/active_rdf/queryengine/query2sparql.rb
67
+ - tools/rakehelp.rb
68
+ test_files: []
69
+
70
+ rdoc_options: []
71
+
72
+ extra_rdoc_files:
73
+ - README
74
+ executables: []
75
+
76
+ extensions: []
77
+
78
+ requirements: []
79
+
80
+ dependencies:
81
+ - !ruby/object:Gem::Dependency
82
+ name: gem_plugin
83
+ version_requirement:
84
+ version_requirements: !ruby/object:Gem::Version::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 0.2.1
89
+ version: