roadforest 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/examples/file-management.rb +7 -1
- data/lib/roadforest/application.rb +0 -2
- data/lib/roadforest/application/dispatcher.rb +20 -1
- data/lib/roadforest/model.rb +4 -4
- data/lib/roadforest/rdf/{context-fascade.rb → access-manager.rb} +96 -42
- data/lib/roadforest/rdf/focus-list.rb +1 -1
- data/lib/roadforest/rdf/graph-copier.rb +10 -5
- data/lib/roadforest/rdf/graph-focus.rb +222 -32
- data/lib/roadforest/rdf/graph-store.rb +1 -12
- data/lib/roadforest/rdf/investigation.rb +3 -1
- data/lib/roadforest/rdf/post-focus.rb +7 -15
- data/lib/roadforest/remote-host.rb +20 -8
- data/lib/roadforest/resource/rdf/read-only.rb +5 -2
- data/lib/roadforest/test-support/matchers.rb +40 -9
- data/lib/roadforest/utility/class-registry.rb +8 -1
- data/spec/focus-list.rb +7 -1
- data/spec/graph-copier.rb +27 -43
- data/spec/graph-store.rb +41 -15
- data/spec/update-focus.rb +10 -8
- metadata +63 -12
- data/lib/roadforest/rdf/graph-reading.rb +0 -200
- data/lib/roadforest/rdf/update-focus.rb +0 -18
- data/lib/roadforest/resource/handlers.rb +0 -43
data/spec/update-focus.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'roadforest/rdf/source-rigor'
|
2
|
-
require 'roadforest/rdf/update-focus'
|
3
2
|
require 'roadforest/rdf/graph-store'
|
4
3
|
require 'roadforest/rdf/document'
|
5
4
|
require 'rdf/rdfa'
|
6
5
|
|
7
|
-
describe RoadForest::RDF::
|
6
|
+
describe RoadForest::RDF::GraphFocus, "with UpdateManager" do
|
8
7
|
class Voc < ::RDF::Vocabulary("http:/pred.org/"); end
|
9
8
|
|
10
9
|
let :context_node do
|
@@ -62,15 +61,18 @@ describe RoadForest::RDF::UpdateFocus do
|
|
62
61
|
end
|
63
62
|
end
|
64
63
|
|
65
|
-
|
66
|
-
RoadForest::RDF::
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
updater.source_rigor = source_rigor
|
64
|
+
let :access do
|
65
|
+
RoadForest::RDF::UpdateManager.new.tap do |access|
|
66
|
+
access.source_graph = source_graph
|
67
|
+
access.target_graph = target_graph
|
68
|
+
access.rigor = source_rigor
|
71
69
|
end
|
72
70
|
end
|
73
71
|
|
72
|
+
subject :updater do
|
73
|
+
RoadForest::RDF::GraphFocus.new(access, context_node)
|
74
|
+
end
|
75
|
+
|
74
76
|
it "should make relevant prefixes available" do
|
75
77
|
updater[[:rdf, :type]] = [:voc, :Thing]
|
76
78
|
updater[[:voc, :a]] = 15
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: roadforest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Judson Lester
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
prerelease: false
|
@@ -17,14 +17,22 @@ dependencies:
|
|
17
17
|
name: rdf
|
18
18
|
version_requirements: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
+
segments:
|
23
|
+
- 1
|
24
|
+
- 0
|
25
|
+
- 6
|
22
26
|
version: 1.0.6
|
23
27
|
none: false
|
24
28
|
requirement: !ruby/object:Gem::Requirement
|
25
29
|
requirements:
|
26
|
-
- -
|
30
|
+
- - ~>
|
27
31
|
- !ruby/object:Gem::Version
|
32
|
+
segments:
|
33
|
+
- 1
|
34
|
+
- 0
|
35
|
+
- 6
|
28
36
|
version: 1.0.6
|
29
37
|
none: false
|
30
38
|
- !ruby/object:Gem::Dependency
|
@@ -35,13 +43,21 @@ dependencies:
|
|
35
43
|
requirements:
|
36
44
|
- - ~>
|
37
45
|
- !ruby/object:Gem::Version
|
38
|
-
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 0
|
49
|
+
- 8
|
50
|
+
version: 1.0.8
|
39
51
|
none: false
|
40
52
|
requirement: !ruby/object:Gem::Requirement
|
41
53
|
requirements:
|
42
54
|
- - ~>
|
43
55
|
- !ruby/object:Gem::Version
|
44
|
-
|
56
|
+
segments:
|
57
|
+
- 1
|
58
|
+
- 0
|
59
|
+
- 8
|
60
|
+
version: 1.0.8
|
45
61
|
none: false
|
46
62
|
- !ruby/object:Gem::Dependency
|
47
63
|
prerelease: false
|
@@ -51,12 +67,20 @@ dependencies:
|
|
51
67
|
requirements:
|
52
68
|
- - ! '>='
|
53
69
|
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 1
|
72
|
+
- 1
|
73
|
+
- 0
|
54
74
|
version: 1.1.0
|
55
75
|
none: false
|
56
76
|
requirement: !ruby/object:Gem::Requirement
|
57
77
|
requirements:
|
58
78
|
- - ! '>='
|
59
79
|
- !ruby/object:Gem::Version
|
80
|
+
segments:
|
81
|
+
- 1
|
82
|
+
- 1
|
83
|
+
- 0
|
60
84
|
version: 1.1.0
|
61
85
|
none: false
|
62
86
|
- !ruby/object:Gem::Dependency
|
@@ -67,12 +91,20 @@ dependencies:
|
|
67
91
|
requirements:
|
68
92
|
- - ~>
|
69
93
|
- !ruby/object:Gem::Version
|
94
|
+
segments:
|
95
|
+
- 2
|
96
|
+
- 2
|
97
|
+
- 8
|
70
98
|
version: 2.2.8
|
71
99
|
none: false
|
72
100
|
requirement: !ruby/object:Gem::Requirement
|
73
101
|
requirements:
|
74
102
|
- - ~>
|
75
103
|
- !ruby/object:Gem::Version
|
104
|
+
segments:
|
105
|
+
- 2
|
106
|
+
- 2
|
107
|
+
- 8
|
76
108
|
version: 2.2.8
|
77
109
|
none: false
|
78
110
|
- !ruby/object:Gem::Dependency
|
@@ -83,12 +115,18 @@ dependencies:
|
|
83
115
|
requirements:
|
84
116
|
- - ~>
|
85
117
|
- !ruby/object:Gem::Version
|
118
|
+
segments:
|
119
|
+
- 0
|
120
|
+
- 25
|
86
121
|
version: '0.25'
|
87
122
|
none: false
|
88
123
|
requirement: !ruby/object:Gem::Requirement
|
89
124
|
requirements:
|
90
125
|
- - ~>
|
91
126
|
- !ruby/object:Gem::Version
|
127
|
+
segments:
|
128
|
+
- 0
|
129
|
+
- 25
|
92
130
|
version: '0.25'
|
93
131
|
none: false
|
94
132
|
- !ruby/object:Gem::Dependency
|
@@ -99,12 +137,20 @@ dependencies:
|
|
99
137
|
requirements:
|
100
138
|
- - ! '>='
|
101
139
|
- !ruby/object:Gem::Version
|
140
|
+
segments:
|
141
|
+
- 1
|
142
|
+
- 3
|
143
|
+
- 6
|
102
144
|
version: 1.3.6
|
103
145
|
none: false
|
104
146
|
requirement: !ruby/object:Gem::Requirement
|
105
147
|
requirements:
|
106
148
|
- - ! '>='
|
107
149
|
- !ruby/object:Gem::Version
|
150
|
+
segments:
|
151
|
+
- 1
|
152
|
+
- 3
|
153
|
+
- 6
|
108
154
|
version: 1.3.6
|
109
155
|
none: false
|
110
156
|
- !ruby/object:Gem::Dependency
|
@@ -115,12 +161,20 @@ dependencies:
|
|
115
161
|
requirements:
|
116
162
|
- - ! '>='
|
117
163
|
- !ruby/object:Gem::Version
|
164
|
+
segments:
|
165
|
+
- 0
|
166
|
+
- 9
|
167
|
+
- 1
|
118
168
|
version: 0.9.1
|
119
169
|
none: false
|
120
170
|
requirement: !ruby/object:Gem::Requirement
|
121
171
|
requirements:
|
122
172
|
- - ! '>='
|
123
173
|
- !ruby/object:Gem::Version
|
174
|
+
segments:
|
175
|
+
- 0
|
176
|
+
- 9
|
177
|
+
- 1
|
124
178
|
version: 0.9.1
|
125
179
|
none: false
|
126
180
|
description: ! " RoaD FoReST is a web framework designed to use the Resource Description\n
|
@@ -137,9 +191,8 @@ files:
|
|
137
191
|
- lib/roadforest/rdf/graph-store.rb
|
138
192
|
- lib/roadforest/rdf/normalization.rb
|
139
193
|
- lib/roadforest/rdf/focus-list.rb
|
140
|
-
- lib/roadforest/rdf/graph-reading.rb
|
141
194
|
- lib/roadforest/rdf/graph-copier.rb
|
142
|
-
- lib/roadforest/rdf/
|
195
|
+
- lib/roadforest/rdf/access-manager.rb
|
143
196
|
- lib/roadforest/rdf/source-rigor.rb
|
144
197
|
- lib/roadforest/rdf/graph-focus.rb
|
145
198
|
- lib/roadforest/rdf/etagging.rb
|
@@ -153,7 +206,6 @@ files:
|
|
153
206
|
- lib/roadforest/rdf/source-rigor/credence-annealer.rb
|
154
207
|
- lib/roadforest/rdf/post-focus.rb
|
155
208
|
- lib/roadforest/rdf/investigation.rb
|
156
|
-
- lib/roadforest/rdf/update-focus.rb
|
157
209
|
- lib/roadforest/rdf/vocabulary.rb
|
158
210
|
- lib/roadforest/rdf/document.rb
|
159
211
|
- lib/roadforest/rdf/resource-pattern.rb
|
@@ -170,7 +222,6 @@ files:
|
|
170
222
|
- lib/roadforest/resource/http/form-parsing.rb
|
171
223
|
- lib/roadforest/resource/role/writable.rb
|
172
224
|
- lib/roadforest/resource/role/has-children.rb
|
173
|
-
- lib/roadforest/resource/handlers.rb
|
174
225
|
- lib/roadforest/resource/rdf.rb
|
175
226
|
- lib/roadforest/test-support/http-client.rb
|
176
227
|
- lib/roadforest/test-support/trace-formatter.rb
|
@@ -218,7 +269,7 @@ rdoc_options:
|
|
218
269
|
- --main
|
219
270
|
- doc/README
|
220
271
|
- --title
|
221
|
-
- roadforest-0.0.
|
272
|
+
- roadforest-0.0.3 Documentation
|
222
273
|
require_paths:
|
223
274
|
- lib/
|
224
275
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -227,7 +278,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
227
278
|
- !ruby/object:Gem::Version
|
228
279
|
segments:
|
229
280
|
- 0
|
230
|
-
hash: -
|
281
|
+
hash: -124333677
|
231
282
|
version: '0'
|
232
283
|
none: false
|
233
284
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -1,200 +0,0 @@
|
|
1
|
-
require 'roadforest/rdf/focus-list'
|
2
|
-
require 'roadforest/rdf/normalization'
|
3
|
-
require 'roadforest/rdf/resource-query'
|
4
|
-
require 'rdf/model/node'
|
5
|
-
require 'roadforest/rdf'
|
6
|
-
|
7
|
-
|
8
|
-
module RoadForest::RDF
|
9
|
-
class GraphReading
|
10
|
-
#XXX Any changes to this class heirarchy or to ContextFascade should start
|
11
|
-
#with a refactor like:
|
12
|
-
# Reduce this to the single-node API ([] []=)
|
13
|
-
# Change the ContextFascade into a family of classes (RO, RW, Update)
|
14
|
-
include Normalization
|
15
|
-
|
16
|
-
#attr_accessor :source_graph, :target_graph, :subject, :root_url,
|
17
|
-
#:source_rigor
|
18
|
-
|
19
|
-
attr_accessor :subject, :access_manager
|
20
|
-
|
21
|
-
alias rdf subject
|
22
|
-
|
23
|
-
def initialize(subject = nil, graph = nil, rigor = nil)
|
24
|
-
@access_manager = ContextFascade.new
|
25
|
-
@access_manager.rigor = rigor
|
26
|
-
self.target_graph = graph
|
27
|
-
self.source_graph = graph
|
28
|
-
|
29
|
-
self.subject = subject unless subject.nil?
|
30
|
-
end
|
31
|
-
|
32
|
-
def source_graph
|
33
|
-
@access_manager.source_graph
|
34
|
-
end
|
35
|
-
|
36
|
-
def source_graph=(graph)
|
37
|
-
@access_manager.source_graph = graph
|
38
|
-
end
|
39
|
-
|
40
|
-
def target_graph
|
41
|
-
nil
|
42
|
-
end
|
43
|
-
|
44
|
-
def target_graph=(graph)
|
45
|
-
@access_manager.target_graph = nil
|
46
|
-
end
|
47
|
-
|
48
|
-
def source_rigor
|
49
|
-
@access_manager.rigor
|
50
|
-
end
|
51
|
-
|
52
|
-
def source_rigor=(rigor)
|
53
|
-
@access_manager.rigor = rigor
|
54
|
-
end
|
55
|
-
|
56
|
-
def root_url
|
57
|
-
@access_manager.resource
|
58
|
-
end
|
59
|
-
|
60
|
-
def subject=(*value)
|
61
|
-
@subject = normalize_resource(value)
|
62
|
-
case @subject
|
63
|
-
when ::RDF::URI
|
64
|
-
@access_manager.resource = @subject
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def inspect
|
69
|
-
"#<#{self.class.name}:0x#{"%x" % object_id} (#{subject.to_s}) #{forward_properties.inspect}>"
|
70
|
-
end
|
71
|
-
alias to_s inspect
|
72
|
-
|
73
|
-
def dup
|
74
|
-
other = self.class.new
|
75
|
-
other.access_manager = access_manager.dup
|
76
|
-
other.subject = subject
|
77
|
-
other
|
78
|
-
end
|
79
|
-
|
80
|
-
def wrap_node(value)
|
81
|
-
next_step = dup
|
82
|
-
if ::RDF::Node === value
|
83
|
-
next_step.root_url = self.root_url
|
84
|
-
else
|
85
|
-
next_step.root_url = normalize_context(value)
|
86
|
-
end
|
87
|
-
next_step.subject = value
|
88
|
-
next_step
|
89
|
-
end
|
90
|
-
|
91
|
-
def unwrap_value(value)
|
92
|
-
return nil if value.nil?
|
93
|
-
if value.respond_to? :object
|
94
|
-
value.object
|
95
|
-
else
|
96
|
-
wrap_node(value)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
def to_context
|
101
|
-
normalize_context(subject)
|
102
|
-
end
|
103
|
-
|
104
|
-
def root_url=(*value) #XXX curies?
|
105
|
-
@root_url = normalize_resource(value)
|
106
|
-
end
|
107
|
-
|
108
|
-
#XXX This probably wants to be handled completely in the MediaType handler
|
109
|
-
def relevant_prefixes
|
110
|
-
relevant_prefixes_for_graph(source_graph)
|
111
|
-
end
|
112
|
-
|
113
|
-
def get(prefix, property = nil)
|
114
|
-
return single_or_enum(forward_query_value( prefix, property))
|
115
|
-
end
|
116
|
-
alias_method :[], :get
|
117
|
-
|
118
|
-
def first(prefix, property = nil)
|
119
|
-
return forward_query_value( prefix, property ).first
|
120
|
-
end
|
121
|
-
|
122
|
-
def all(prefix, property = nil)
|
123
|
-
return forward_query_value( prefix, property )
|
124
|
-
end
|
125
|
-
|
126
|
-
#XXX Maybe rev should return a decorator, so it looks like:
|
127
|
-
#focus.rev.get(...) or focus.rev.all(...)
|
128
|
-
def rev(prefix, property = nil)
|
129
|
-
return single_or_enum(reverse_query_value( prefix, property))
|
130
|
-
end
|
131
|
-
|
132
|
-
def rev_first(prefix, property = nil)
|
133
|
-
return reverse_query_value(prefix, property).first
|
134
|
-
end
|
135
|
-
|
136
|
-
def rev_all(prefix, property = nil)
|
137
|
-
return reverse_query_value(prefix, property)
|
138
|
-
end
|
139
|
-
|
140
|
-
def as_list
|
141
|
-
list = FocusList.new(subject, access_manager)
|
142
|
-
list.base_node = self
|
143
|
-
list
|
144
|
-
end
|
145
|
-
|
146
|
-
def forward_properties
|
147
|
-
query_properties( build_query{|q| q.pattern([ normalize_resource(subject), :property, :value ])} )
|
148
|
-
end
|
149
|
-
|
150
|
-
def reverse_properties
|
151
|
-
query_properties( build_query{|q| q.pattern([ :value, :property, normalize_resource(subject)])} )
|
152
|
-
end
|
153
|
-
|
154
|
-
protected
|
155
|
-
|
156
|
-
def single_or_enum(values)
|
157
|
-
case values.length
|
158
|
-
when 0
|
159
|
-
return nil
|
160
|
-
when 1
|
161
|
-
return values.first
|
162
|
-
else
|
163
|
-
return values.enum_for(:each)
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
def reverse_query_value(prefix, property=nil)
|
168
|
-
query_value(build_query{|q|
|
169
|
-
q.pattern([ :value, normalize_property(prefix, property), normalize_resource(subject)])
|
170
|
-
})
|
171
|
-
end
|
172
|
-
|
173
|
-
def forward_query_value(prefix, property=nil)
|
174
|
-
query_value(build_query{|q|
|
175
|
-
q.pattern([ normalize_resource(subject), normalize_property(prefix, property), :value])
|
176
|
-
})
|
177
|
-
end
|
178
|
-
|
179
|
-
def build_query(&block)
|
180
|
-
access_manager.build_query(&block)
|
181
|
-
end
|
182
|
-
|
183
|
-
def query_value(query)
|
184
|
-
solutions = query.execute(access_manager)
|
185
|
-
solutions.map do |solution|
|
186
|
-
unwrap_value(solution.value)
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
def query_properties(query)
|
191
|
-
Hash[query.execute(access_manager).map do |solution|
|
192
|
-
prop = solution.property
|
193
|
-
if qname = prop.qname
|
194
|
-
prop = qname
|
195
|
-
end
|
196
|
-
[prop, solution.value]
|
197
|
-
end]
|
198
|
-
end
|
199
|
-
end
|
200
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'roadforest/rdf/graph-focus'
|
2
|
-
require 'roadforest/rdf/parcel'
|
3
|
-
|
4
|
-
module RoadForest::RDF
|
5
|
-
class UpdateFocus < GraphWriting
|
6
|
-
def target_graph
|
7
|
-
@access_manager.target_graph
|
8
|
-
end
|
9
|
-
|
10
|
-
def target_graph=(graph)
|
11
|
-
@access_manager.target_graph = graph
|
12
|
-
end
|
13
|
-
|
14
|
-
def relevant_prefixes
|
15
|
-
super.merge(relevant_prefixes_for_graph(target_graph))
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|