activerdf_rdflite 1.2.2 → 1.2.3
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 +17 -0
- data/lib/activerdf_rdflite/fetching.rb +4 -19
- data/lib/activerdf_rdflite/rdflite.rb +11 -11
- data/test/test_fetching.rb +33 -0
- data/test/test_rdflite.rb +9 -4
- metadata +9 -8
- data/Rakefile +0 -45
data/CHANGELOG
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
== activerdf_rdflite (1.2.3) Tue, 13 Feb 2007 20:07:01 +0000
|
2
|
+
* gems published automatically from Rakefile
|
3
|
+
* changing rapper invocation in fetching adapter
|
4
|
+
* prevent failing unit tests if ferret not installed
|
5
|
+
* bumped dependency of sqlite
|
6
|
+
|
7
|
+
== activerdf_rdflite (1.2.2)
|
8
|
+
* use same bnode function in rdflite.load (same bnodes from one file get same uri)
|
9
|
+
|
10
|
+
== activerdf_rdflite (1.2.1)
|
11
|
+
* bugfix in multijoins
|
12
|
+
|
13
|
+
== activerdf_rdflite (1.2)
|
14
|
+
* speed up rdflite.load using precompiled SQL
|
15
|
+
|
16
|
+
== activerdf_rdflite (1.1)
|
17
|
+
* added rdfs:subPropertyOf reasoning
|
@@ -4,17 +4,16 @@
|
|
4
4
|
|
5
5
|
# FetchingAdapter is an extension to rdflite for fetching RDF from online sources.
|
6
6
|
class FetchingAdapter < RDFLite
|
7
|
-
ConnectionPool.register_adapter(:fetching,self)
|
7
|
+
ConnectionPool.register_adapter(:fetching, self)
|
8
|
+
|
9
|
+
# TODO: check that rapper is installed
|
8
10
|
|
9
11
|
# fetches RDF/XML data from given url and adds it to the datastore, using the
|
10
12
|
# source url as context identifier.
|
11
13
|
def fetch url
|
14
|
+
# check if url starts with http://
|
12
15
|
return unless url.match(/http:\/\/(.*)/)
|
13
16
|
|
14
|
-
# remove fragment identifier from url
|
15
|
-
hashidx = url.rindex('#')
|
16
|
-
url = url[0..url.rindex('#')-1] unless hashidx.nil?
|
17
|
-
|
18
17
|
$activerdflog.debug "fetching from #{url}"
|
19
18
|
|
20
19
|
#model = Redland::Model.new
|
@@ -33,17 +32,3 @@ class FetchingAdapter < RDFLite
|
|
33
32
|
add_ntriples(triples, context)
|
34
33
|
end
|
35
34
|
end
|
36
|
-
|
37
|
-
#class String
|
38
|
-
# alias _match match
|
39
|
-
# def match(*args)
|
40
|
-
# m = _match(args.first)
|
41
|
-
# if m && m.length > 1
|
42
|
-
# args[1..-1].each_with_index do |name, index|
|
43
|
-
# m.instance_eval "def #{name}; self[#{index+1}] end"
|
44
|
-
# end
|
45
|
-
# end
|
46
|
-
# m
|
47
|
-
# end
|
48
|
-
#end
|
49
|
-
|
@@ -5,7 +5,7 @@
|
|
5
5
|
require 'sqlite3'
|
6
6
|
require 'active_rdf'
|
7
7
|
require 'federation/connection_pool'
|
8
|
-
|
8
|
+
require 'uuidtools'
|
9
9
|
|
10
10
|
$activerdflog.info "loading RDFLite adapter"
|
11
11
|
|
@@ -35,7 +35,7 @@ class RDFLite < ActiveRdfAdapter
|
|
35
35
|
|
36
36
|
@reads = true
|
37
37
|
@writes = true
|
38
|
-
|
38
|
+
|
39
39
|
# if no file-location given, we use in-memory store
|
40
40
|
file = params[:location] || ':memory:'
|
41
41
|
@db = SQLite3::Database.new(file)
|
@@ -53,7 +53,7 @@ class RDFLite < ActiveRdfAdapter
|
|
53
53
|
# we setup the fields not to store object's contents
|
54
54
|
infos.add_field(:subject, :store => :yes, :index => :no, :term_vector => :no)
|
55
55
|
infos.add_field(:object, :store => :no) #, :index => :omit_norms)
|
56
|
-
|
56
|
+
|
57
57
|
@ferret = if params[:location]
|
58
58
|
Ferret::I.new(:path => params[:location] + '.ferret', :field_infos => infos)
|
59
59
|
else
|
@@ -96,15 +96,15 @@ class RDFLite < ActiveRdfAdapter
|
|
96
96
|
# convert non-nil input to internal format
|
97
97
|
quad = [s,p,o,c].collect {|r| r.nil? ? nil : internalise(r) }
|
98
98
|
|
99
|
-
|
99
|
+
# construct where clause for deletion (for all non-nil input)
|
100
100
|
where_clauses = []
|
101
101
|
conditions = []
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
102
|
+
quad.each_with_index do |r,i|
|
103
|
+
unless r.nil?
|
104
|
+
conditions << r
|
105
|
+
where_clauses << "#{SPOC[i]} = ?"
|
106
|
+
end
|
107
|
+
end
|
108
108
|
|
109
109
|
# construct delete string
|
110
110
|
ds = 'delete from triple'
|
@@ -122,7 +122,7 @@ class RDFLite < ActiveRdfAdapter
|
|
122
122
|
|
123
123
|
@db
|
124
124
|
end
|
125
|
-
|
125
|
+
|
126
126
|
# adds triple(s,p,o) to datastore
|
127
127
|
# s,p must be resources, o can be primitive data or resource
|
128
128
|
def add(s,p,o,c=nil)
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Author:: Eyal Oren
|
2
|
+
# Copyright:: (c) 2005-2006
|
3
|
+
# License:: LGPL
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'test/unit'
|
7
|
+
require 'active_rdf'
|
8
|
+
|
9
|
+
class TestFetchingAdapter < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
ConnectionPool.clear
|
12
|
+
@adapter = ConnectionPool.add(:type => :fetching)
|
13
|
+
end
|
14
|
+
|
15
|
+
def teardown
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_parse_foaf
|
19
|
+
@adapter.fetch("http://eyaloren.org/foaf.rdf#me")
|
20
|
+
assert @adapter.size > 0
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_sioc_schema
|
24
|
+
@adapter.fetch("http://rdfs.org/sioc/ns#")
|
25
|
+
assert_equal 461, @adapter.size
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_foaf_schema
|
29
|
+
@adapter.fetch("http://xmlns.com/foaf/0.1/")
|
30
|
+
# foaf contains 563 triples but with two duplicates
|
31
|
+
assert_equal 561, @adapter.size
|
32
|
+
end
|
33
|
+
end
|
data/test/test_rdflite.rb
CHANGED
@@ -19,7 +19,8 @@ class TestRdfLiteAdapter < Test::Unit::TestCase
|
|
19
19
|
def test_registration
|
20
20
|
adapter = ConnectionPool.add_data_source(:type => :rdflite)
|
21
21
|
assert_instance_of RDFLite, adapter
|
22
|
-
|
22
|
+
# we cant garantuee that the rdflite adapter can do keyword search
|
23
|
+
# assert adapter.keyword_search?
|
23
24
|
end
|
24
25
|
|
25
26
|
def test_initialise
|
@@ -190,9 +191,13 @@ class TestRdfLiteAdapter < Test::Unit::TestCase
|
|
190
191
|
adapter.load(File.dirname(File.expand_path(__FILE__)) + '/test_data.nt')
|
191
192
|
|
192
193
|
eyal = RDFS::Resource.new('http://activerdf.org/test/eyal')
|
193
|
-
|
194
|
-
|
195
|
-
|
194
|
+
|
195
|
+
# we cant garantuee that ferret is installed
|
196
|
+
if adapter.keyword_search?
|
197
|
+
assert_equal eyal, Query.new.distinct(:s).where(:s,:keyword,"blue").execute(:flatten => true)
|
198
|
+
assert_equal eyal, Query.new.distinct(:s).where(:s,:keyword,"27").execute(:flatten => true)
|
199
|
+
assert_equal eyal, Query.new.distinct(:s).where(:s,:keyword,"eyal oren").execute(:flatten => true)
|
200
|
+
end
|
196
201
|
end
|
197
202
|
|
198
203
|
def test_bnodes
|
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_rdflite
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.2.
|
7
|
-
date: 2007-
|
6
|
+
version: 1.2.3
|
7
|
+
date: 2007-02-13 00:00:00 +00:00
|
8
8
|
summary: an RDF database for usage in ActiveRDF (based on sqlite3)
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -31,14 +31,15 @@ authors:
|
|
31
31
|
files:
|
32
32
|
- LICENSE
|
33
33
|
- README
|
34
|
-
-
|
35
|
-
- test/test_rdflite.rb
|
36
|
-
- test/test_data.nt
|
34
|
+
- CHANGELOG
|
37
35
|
- test/test_bnode_data.nt
|
36
|
+
- test/test_data.nt
|
37
|
+
- test/test_fetching.rb
|
38
|
+
- test/test_rdflite.rb
|
38
39
|
- lib/activerdf_rdflite
|
40
|
+
- lib/activerdf_rdflite/fetching.rb
|
39
41
|
- lib/activerdf_rdflite/init.rb
|
40
42
|
- lib/activerdf_rdflite/rdflite.rb
|
41
|
-
- lib/activerdf_rdflite/fetching.rb
|
42
43
|
- lib/activerdf_rdflite/suggesting.rb
|
43
44
|
test_files: []
|
44
45
|
|
@@ -87,5 +88,5 @@ dependencies:
|
|
87
88
|
requirements:
|
88
89
|
- - ">="
|
89
90
|
- !ruby/object:Gem::Version
|
90
|
-
version: 1.
|
91
|
+
version: 1.2.1
|
91
92
|
version:
|
data/Rakefile
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
require 'rake'
|
2
|
-
require 'rake/testtask'
|
3
|
-
require 'rake/clean'
|
4
|
-
require 'rake/gempackagetask'
|
5
|
-
require 'rake/rdoctask'
|
6
|
-
require '../tools/rakehelp'
|
7
|
-
require 'fileutils'
|
8
|
-
include FileUtils
|
9
|
-
|
10
|
-
setup_tests
|
11
|
-
setup_rdoc ['README', 'LICENSE', 'lib/**/*.rb', 'doc/**/*.rdoc']
|
12
|
-
|
13
|
-
desc "test and package gem"
|
14
|
-
task :default => [:test, :package]
|
15
|
-
|
16
|
-
# get @VERSION from commandline
|
17
|
-
@VERSION = '1.2.2'
|
18
|
-
NAME="activerdf_rdflite"
|
19
|
-
GEMNAME="#{NAME}-#{@VERSION}.gem"
|
20
|
-
|
21
|
-
# define package task
|
22
|
-
setup_gem(NAME,@VERSION) do |spec|
|
23
|
-
spec.summary = "an RDF database for usage in ActiveRDF (based on sqlite3)"
|
24
|
-
spec.description = spec.summary
|
25
|
-
spec.author="Eyal Oren <eyal.oren@deri.org"
|
26
|
-
spec.add_dependency('gem_plugin', '>= 0.2.1')
|
27
|
-
spec.add_dependency('uuidtools')
|
28
|
-
spec.add_dependency('activerdf', '>= 1.2')
|
29
|
-
spec.add_dependency('sqlite3-ruby', '>= 1.1.0.1')
|
30
|
-
end
|
31
|
-
|
32
|
-
task :install => [:package] do
|
33
|
-
sh %{sudo gem install pkg/#{name}-#{version}.gem}
|
34
|
-
end
|
35
|
-
|
36
|
-
task :uninstall => [:clean] do
|
37
|
-
sh %{sudo gem uninstall #{name}}
|
38
|
-
end
|
39
|
-
|
40
|
-
task :reinstall => [:uninstall, :install]
|
41
|
-
|
42
|
-
task :upload => :package do |task|
|
43
|
-
sh "scp pkg/#{GEMNAME} eyal@activerdf.org:/home/eyal/webs/activerdf/gems/"
|
44
|
-
end
|
45
|
-
|