activerdf_rdflite 1.2 → 1.2.1
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 +4 -4
- data/lib/activerdf_rdflite/rdflite.rb +5 -1
- data/test/test_rdflite.rb +23 -0
- metadata +1 -1
data/Rakefile
CHANGED
@@ -13,13 +13,13 @@ setup_rdoc ['README', 'LICENSE', 'lib/**/*.rb', 'doc/**/*.rdoc']
|
|
13
13
|
desc "test and package gem"
|
14
14
|
task :default => [:test, :package]
|
15
15
|
|
16
|
-
# get VERSION from commandline
|
17
|
-
VERSION = '1.2'
|
16
|
+
# get @VERSION from commandline
|
17
|
+
@VERSION = '1.2.1'
|
18
18
|
NAME="activerdf_rdflite"
|
19
|
-
GEMNAME="#{NAME}-#{VERSION}.gem"
|
19
|
+
GEMNAME="#{NAME}-#{@VERSION}.gem"
|
20
20
|
|
21
21
|
# define package task
|
22
|
-
setup_gem(NAME
|
22
|
+
setup_gem(NAME,@VERSION) do |spec|
|
23
23
|
spec.summary = "an RDF database for usage in ActiveRDF (based on sqlite3)"
|
24
24
|
spec.description = spec.summary
|
25
25
|
spec.author="Eyal Oren <eyal.oren@deri.org"
|
@@ -335,7 +335,11 @@ class RDFLite < ActiveRdfAdapter
|
|
335
335
|
# but on the other hand, restating the aliases gives ambiguity:
|
336
336
|
# "from triple as t1 join triple as t2 on ... join triple as t1 ..."
|
337
337
|
# is ambiguous
|
338
|
-
|
338
|
+
if join_stmt.include?(buddyalias)
|
339
|
+
join << "and #{termjoin} = #{buddyjoin}"
|
340
|
+
else
|
341
|
+
join << " join triple as #{buddyalias} on #{termjoin} = #{buddyjoin} "
|
342
|
+
end
|
339
343
|
end
|
340
344
|
join_stmt << join
|
341
345
|
|
data/test/test_rdflite.rb
CHANGED
@@ -205,4 +205,27 @@ class TestRdfLiteAdapter < Test::Unit::TestCase
|
|
205
205
|
assert_equal 29, TEST::Person.find_all[1].age.to_i
|
206
206
|
assert_equal "Another Person", TEST::Person.find_all[1].name
|
207
207
|
end
|
208
|
+
|
209
|
+
def test_multi_join
|
210
|
+
adapter = ConnectionPool.add_data_source :type => :rdflite
|
211
|
+
type = Namespace.lookup(:rdf, 'type')
|
212
|
+
transProp = Namespace.lookup(:owl, 'TransitiveProperty')
|
213
|
+
|
214
|
+
Namespace.register(:test, 'http://test.com/')
|
215
|
+
ancestor = Namespace.lookup(:test, 'ancestor')
|
216
|
+
sue = Namespace.lookup(:test, 'Sue')
|
217
|
+
mary = Namespace.lookup(:test, 'Mary')
|
218
|
+
anne = Namespace.lookup(:test, 'Anne')
|
219
|
+
|
220
|
+
adapter.add ancestor, type, transProp
|
221
|
+
adapter.add sue, ancestor, mary
|
222
|
+
adapter.add mary, ancestor, anne
|
223
|
+
|
224
|
+
# test that query with multi-join (joining over 1.p==2.p and 1.o==2.s) works
|
225
|
+
query = Query.new.select(:Sue, :p, :Anne)
|
226
|
+
query.where(:p, type, transProp)
|
227
|
+
query.where(:Sue, :p, :Mary)
|
228
|
+
query.where(:Mary, :p, :Anne)
|
229
|
+
assert_equal 1, query.execute.size
|
230
|
+
end
|
208
231
|
end
|
metadata
CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: activerdf_rdflite
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version:
|
6
|
+
version: 1.2.1
|
7
7
|
date: 2006-12-21 00:00:00 +01:00
|
8
8
|
summary: an RDF database for usage in ActiveRDF (based on sqlite3)
|
9
9
|
require_paths:
|