Skip to content

Commit ca44281

Browse files
committed
Update to RDF 1.0
Signed-off-by: Aymeric Brisse <[email protected]>
1 parent 1133b83 commit ca44281

12 files changed

+77
-75
lines changed

Diff for: AUTHORS

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
* Eric Kidd <[email protected]>
2-
* Aymeric Brisse <aymeric.brisse@gmail.com>
1+
* Eric Kidd <https://github.com/emk>
2+
* Aymeric Brisse <https://github.com/abrisse>

Diff for: Gemfile

+2-9
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
source :rubygems
1+
source 'https://rubygems.org'
22

3-
# Automatically compute our required gems based on our Gemspec. This code
4-
# is based on http://gist.github.com/277349 .
5-
gemspec_path = File.join(File.dirname(__FILE__), '.gemspec')
6-
gemspec = eval(File.read(gemspec_path))
7-
gemspec.dependencies.each do |dep|
8-
group = dep.type == :development ? :development : :default
9-
gem dep.name, dep.requirement, :group => group
10-
end
3+
gemspec

Diff for: Gemfile.lock

+34-28
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,43 @@
1+
PATH
2+
remote: .
3+
specs:
4+
rdf-agraph (0.3.2)
5+
agraph (~> 0.2)
6+
json (~> 1.7)
7+
rdf (~> 1.0)
8+
19
GEM
2-
remote: http://rubygems.org/
10+
remote: https://rubygems.org/
311
specs:
4-
BlueCloth (1.0.1)
5-
addressable (2.2.8)
6-
agraph (0.1.5)
7-
transport (>= 1.0.0)
12+
addressable (2.3.3)
13+
agraph (0.2)
14+
transport (~> 1.0.5)
815
diff-lcs (1.1.3)
9-
json (1.7.3)
10-
rake (0.9.2.2)
11-
rdf (0.3.7)
12-
addressable (>= 2.2.6)
13-
rdf-spec (0.3.5.1)
14-
rspec (>= 2.8.0)
15-
rspec (2.11.0)
16-
rspec-core (~> 2.11.0)
17-
rspec-expectations (~> 2.11.0)
18-
rspec-mocks (~> 2.11.0)
19-
rspec-core (2.11.0)
20-
rspec-expectations (2.11.1)
16+
dotenv (0.5.0)
17+
json (1.7.7)
18+
rake (10.0.3)
19+
rdf (1.0.3)
20+
addressable (>= 2.2)
21+
rdf-spec (1.0.0)
22+
rspec (>= 2.12)
23+
rspec (2.12.0)
24+
rspec-core (~> 2.12.0)
25+
rspec-expectations (~> 2.12.0)
26+
rspec-mocks (~> 2.12.0)
27+
rspec-core (2.12.2)
28+
rspec-expectations (2.12.1)
2129
diff-lcs (~> 1.1.3)
22-
rspec-mocks (2.11.0)
23-
transport (1.0.4)
24-
yard (0.8.2.1)
30+
rspec-mocks (2.12.2)
31+
transport (1.0.5)
32+
yard (0.8.5.2)
2533

2634
PLATFORMS
2735
ruby
2836

2937
DEPENDENCIES
30-
BlueCloth (>= 1.0.1)
31-
agraph (>= 0.1.5)
32-
json (~> 1.7)
33-
rake (>= 0.8.7)
34-
rdf (>= 0.3.5)
35-
rdf-spec (>= 0.3.5.1)
36-
rspec (>= 2.5.0)
37-
yard (>= 0.6.0)
38+
dotenv (~> 0.5)
39+
rake (~> 10.0.0)
40+
rdf-agraph!
41+
rdf-spec (~> 1.0)
42+
rspec (~> 2.12.0)
43+
yard (~> 0.8)

Diff for: Rakefile

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
require 'rubygems'
2-
require 'bundler'
3-
Bundler.require(:default, :development)
4-
1+
require 'bundler/gem_tasks'
52
require 'rspec/core/rake_task'
63

74
task :default => :spec

Diff for: lib/rdf/allegro_graph.rb

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
require 'rdf'
2+
require 'rdf/ntriples'
23
require 'agraph'
34
require 'enumerator'
45

Diff for: lib/rdf/allegro_graph/abstract_repository.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ def clear(options = {})
388388
def serialize(value)
389389
case value
390390
when RDF::Query::Variable then value.to_s
391+
when false then nil
391392
else RDF::NTriples::Writer.serialize(map_to_server(value))
392393
end
393394
end
@@ -469,7 +470,7 @@ def query_to_sparql(query)
469470
variables = []
470471
patterns = []
471472
query.patterns.each do |p|
472-
p.variables.each {|_,v| variables << v unless variables.include?(v) }
473+
variables.concat(p.variables.values)
473474
triple = [p.subject, p.predicate, p.object]
474475
str = triple.map {|v| serialize(v) }.join(" ")
475476
# TODO: Wrap in graph block for context!
@@ -478,7 +479,7 @@ def query_to_sparql(query)
478479
end
479480
patterns << "#{str} ."
480481
end
481-
"SELECT #{variables.join(" ")}\nWHERE {\n #{patterns.join("\n ")} }"
482+
"SELECT #{variables.uniq.join(" ")}\nWHERE {\n #{patterns.join("\n ")} }"
482483
end
483484

484485
# Convert a JSON query solution to a list of RDF::Query::Solution

Diff for: lib/rdf/allegro_graph/query.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,10 @@ def to_prolog(repository)
102102
functors = []
103103
patterns.each do |p|
104104
# Extract any new variables we see in the query.
105-
p.variables.each {|_,v| variables << v unless variables.include?(v) }
105+
variables.concat(p.variables.values)
106106
functors << convert_to_functor(p).to_prolog(repository)
107107
end
108-
"(select (#{variables.join(" ")})\n #{functors.join("\n ")})"
108+
"(select (#{variables.uniq.join(" ")})\n #{functors.join("\n ")})"
109109
end
110110

111111
protected

Diff for: .gemspec renamed to rdf-agraph.gemspec

+9-10
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Gem::Specification.new do |gem|
99
gem.summary = "AllegroGraph adapter for RDF.rb"
1010
gem.description = "An AllegroGraph adapter for use with RDF.rb."
1111
gem.rubyforge_project = 'rdf-agraph'
12-
12+
1313
gem.authors = ['Eric Kidd']
1414
gem.email = '[email protected]'
1515

@@ -19,17 +19,16 @@ Gem::Specification.new do |gem|
1919
#gem.executables = %w()
2020
gem.require_paths = %w(lib)
2121
gem.has_rdoc = false
22-
22+
2323
gem.required_ruby_version = '>= 1.8.7'
2424

25-
gem.add_runtime_dependency 'rdf', '>= 0.3.5'
26-
gem.add_runtime_dependency 'agraph', '>= 0.1.5'
27-
# This should be pulled in by agraph, but it isn't.
25+
gem.add_runtime_dependency 'rdf', '~> 1.0'
26+
gem.add_runtime_dependency 'agraph', '~> 0.2'
2827
gem.add_runtime_dependency 'json', '~> 1.7'
2928

30-
gem.add_development_dependency 'rdf-spec', '>= 0.3.5.1'
31-
gem.add_development_dependency 'yard', '>= 0.6.0'
32-
gem.add_development_dependency 'BlueCloth', '>= 1.0.1' # For yard.
33-
gem.add_development_dependency 'rspec', '>= 2.5.0'
34-
gem.add_development_dependency 'rake', '>= 0.8.7'
29+
gem.add_development_dependency 'rdf-spec', '~> 1.0'
30+
gem.add_development_dependency 'yard', '~> 0.8'
31+
gem.add_development_dependency 'rspec', '~> 2.12.0'
32+
gem.add_development_dependency 'rake', '~> 10.0.0'
33+
gem.add_development_dependency 'dotenv', '~> 0.5'
3534
end

Diff for: spec/query_spec.rb

+17-15
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,87 @@
11
require 'spec_helper'
2-
require 'rdf/spec/query'
2+
require 'rdf/spec/queryable'
33

44
describe RDF::AllegroGraph::Query do
55

66
before :each do
77
@repository = RDF::AllegroGraph::Repository.new(REPOSITORY_OPTIONS)
88
@new = RDF::AllegroGraph::Query.method(:new)
9+
@queryable = @repository
910
end
1011

1112
after :each do
1213
@repository.clear
1314
end
1415

15-
it_should_behave_like RDF_Query
16+
include RDF_Queryable
1617

1718
describe "#run" do
18-
19+
1920
context "in any case" do
2021
before do
22+
@repository.clear # because of include RDF_Queryable
2123
@repository.insert(
2224
[EX.me, RDF.type, FOAF.Person],
2325
[EX.john, RDF.type, FOAF.Person])
2426
@query = RDF::AllegroGraph::Query.new(@repository) do |q|
2527
q.pattern [:person, RDF.type, FOAF.Person]
2628
end
2729
end
28-
30+
2931
it "runs the query against the repository" do
3032
@query.run.to_a.should include_solution(:person => EX.me)
3133
end
32-
34+
3335
it "accepts a block argument" do
3436
solutions = []
3537
@query.run {|s| solutions << s }
3638
solutions.should include_solution(:person => EX.me)
3739
end
38-
40+
3941
it "should not limit the number of results by default" do
40-
sln = @query.run.to_a.should have(2).items
42+
sln = @query.run.to_a.should have(2).items
4143
end
42-
44+
4345
it "should limit the number of results when passed :limit => n" do
4446
@repository.build_query(:limit => 1) do |q|
4547
q << [:person, RDF.type, FOAF.Person]
4648
end.run.to_a.should have(1).items
4749
end
4850
end
49-
51+
5052
context "with an RDFS/OWL ontology" do
5153
Concepts = RDF::Vocabulary.new("http://www.example.com/Concepts#")
52-
54+
5355
before do
5456
@repository.insert(
5557
[Concepts.Celine, RDF.type, Concepts.Woman],
5658
[Concepts.Woman, RDF.type, RDF::OWL.Class],
5759
[Concepts.Person, RDF.type, RDF::OWL.Class],
5860
[Concepts.Woman, RDF::RDFS.subClassOf, Concepts.Person])
5961
end
60-
62+
6163
it "does not run inference by default" do
6264
sln = @repository.build_query do |q|
6365
q << [Concepts.Celine, RDF.type, :klass]
6466
end.run.to_a
6567
sln.should include_solution(:klass => Concepts.Woman)
6668
sln.should_not include_solution(:klass => Concepts.Person)
6769
end
68-
70+
6971
it "does run inference when passed :infer => true" do
7072
sln = @repository.build_query(:infer => true) do |q|
7173
q << [Concepts.Celine, RDF.type, :klass]
7274
end.run.to_a
7375
sln.should include_solution(:klass => Concepts.Woman)
74-
sln.should include_solution(:klass => Concepts.Person)
76+
sln.should include_solution(:klass => Concepts.Person)
7577
end
76-
78+
7779
it "does run inference when passed :infer => 'rdfs++'" do
7880
sln = @repository.build_query(:infer => 'rdfs++') do |q|
7981
q << [Concepts.Celine, RDF.type, :klass]
8082
end.run.to_a
8183
sln.should include_solution(:klass => Concepts.Woman)
82-
sln.should include_solution(:klass => Concepts.Person)
84+
sln.should include_solution(:klass => Concepts.Person)
8385
end
8486
end
8587
end

Diff for: spec/shared_abstract_repository_examples.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
shared_examples_for RDF::AllegroGraph::AbstractRepository do
1010
# This pulls in a huge number of specifications from rdf-spec, ensuring
1111
# that we implement the standard API correctly.
12-
it_should_behave_like RDF_Repository
12+
include RDF_Repository
1313

1414
describe "#supports?" do
1515
it "returns true if passed :context" do

Diff for: spec/sna_functors_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
q.neighbor_count(EX.me, @knows, :n)
8080
end.run.to_a
8181
solutions.length.should == 1
82-
solutions.first.n.should == 3
82+
solutions.first.n.object.should == 3
8383
end
8484
end
8585

Diff for: spec/spec_helper.rb

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Set up bundler and require all our support gems.
22
require 'rubygems'
33
require 'bundler'
4+
require 'dotenv'
45
Bundler.require(:default, :development)
56

67
# Add our library directory to our require path.
@@ -9,10 +10,12 @@
910
# Load the entire gem through our top-level file.
1011
require 'rdf-agraph'
1112

13+
Dotenv.load
14+
1215
# Options that we use to connect to a repository.
1316
REPOSITORY_OPTIONS = {
1417
:id => 'rdf_agraph_test',
15-
:url => 'http://test:test@localhost:10035'
18+
:url => "http://#{ENV['AG_USER']}:#{ENV['AG_PASS']}@localhost:10035"
1619
}
1720
server = RDF::AllegroGraph::Server.new(REPOSITORY_OPTIONS[:url])
1821
server.repository(REPOSITORY_OPTIONS[:id], :create => true)

0 commit comments

Comments
 (0)