rdf-reasoner 0.3.0 → 0.4.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 82811d1af73f62458a8c0ae0b719ff6a0ea14a3f
4
- data.tar.gz: 37ba1a731d2a5435e9fb61d0a2caa7b008b58d51
3
+ metadata.gz: a2462f0f18c4790b96eac4f876b5b86e02dcf954
4
+ data.tar.gz: b4bbb74da3b2aabb56cd0aec8342b81e5ee77ec3
5
5
  SHA512:
6
- metadata.gz: 93b537c3d167f0cdd99d19163b40caa33a2a611e9b6a5f3550ef29d211472215cfaa5fabce00dbde74a3865ffd8a82f8c00394899e9a551ef9c5c3fadda46aba
7
- data.tar.gz: facc4fbf521fb828f83488a13dd713b051576350fc959c4fd4493aeb954c4f96c294a0a1f6c4ce17a6489adf75b223d4ec6cd2947dbf7203ccb2bb4d66f53e93
6
+ metadata.gz: 00d0ba92e3a61bf6a4d9b584121a2979670d65188b6b1afee2ee388763a10b414aa13d09a01a997a2246954b541632c258b22903846b3aa5eb7ef08297de296e
7
+ data.tar.gz: 1d8dd8ced1e8a0a87919287d9b2a0db357783e8e922a0134ebe7ce50d05b4a17dc2e709bc2dce1206f552cfd0ac7a17daed324da4b3775246c193d60ff8bbbf5
data/README.md CHANGED
@@ -51,7 +51,7 @@ Domain and Range entailment include specific rules for schema.org vocabularies.
51
51
  RDF::Reasoner.apply(:rdfs)
52
52
  graph = RDF::Graph.load("etc/doap.ttl")
53
53
  subj = RDF::URI("http://rubygems.org/gems/rdf-reasoner")
54
- RDF::DOAP.name.domain_compatible?(subj, graph) # => true
54
+ RDF::Vocab::DOAP.name.domain_compatible?(subj, graph) # => true
55
55
 
56
56
  ### Determine if a resource is compatible with the ranges of a property
57
57
 
@@ -61,7 +61,7 @@ Domain and Range entailment include specific rules for schema.org vocabularies.
61
61
  RDF::Reasoner.apply(:rdfs)
62
62
  graph = RDF::Graph.load("etc/doap.ttl")
63
63
  obj = RDF::Literal(Date.new)
64
- RDF::DOAP.created.range_compatible?(obj, graph) # => true
64
+ RDF::Vocab::DOAP.created.range_compatible?(obj, graph) # => true
65
65
 
66
66
  ### Perform equivalentClass entailment on a graph
67
67
 
@@ -99,8 +99,8 @@ Domain and Range entailment include specific rules for schema.org vocabularies.
99
99
 
100
100
  ## Dependencies
101
101
 
102
- * [Ruby](http://ruby-lang.org/) (>= 1.9.2)
103
- * [RDF.rb](http://rubygems.org/gems/rdf) (>= 1.1)
102
+ * [Ruby](http://ruby-lang.org/) (>= 2.0)
103
+ * [RDF.rb](http://rubygems.org/gems/rdf) (>= 2.0)
104
104
 
105
105
  ## Mailing List
106
106
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.4.0.beta1
@@ -186,7 +186,7 @@ module RDF
186
186
  # Must be a defined term, not in RDF or RDFS vocabularies
187
187
  if term && term.class?
188
188
  # Warn against using a deprecated term
189
- superseded = term.attributes['schema:supersededBy']
189
+ superseded = term.attributes[:'schema:supersededBy']
190
190
  (messages[:class] ||= {})[pname] = ["Term is superseded by #{superseded}"] if superseded
191
191
  else
192
192
  (messages[:class] ||= {})[pname] = ["No class definition found"] unless vocab.nil? || [RDF::RDFV, RDF::RDFS].include?(vocab)
@@ -203,7 +203,7 @@ module RDF
203
203
  # Must be a defined property
204
204
  if term && term.property?
205
205
  # Warn against using a deprecated term
206
- superseded = term.attributes['schema:supersededBy']
206
+ superseded = term.attributes[:'schema:supersededBy']
207
207
  (messages[:property] ||= {})[pname] = ["Term is superseded by #{superseded}"] if superseded
208
208
  else
209
209
  ((messages[:property] ||= {})[pname] ||= []) << "No property definition found" unless vocab.nil?
@@ -50,7 +50,7 @@ module RDF::Reasoner
50
50
  if self.predicate == RDF.type
51
51
  if term = (RDF::Vocabulary.find_term(self.object) rescue nil)
52
52
  term._entail_equivalentClass do |t|
53
- statements << RDF::Statement.new(self.to_hash.merge(object: t))
53
+ statements << RDF::Statement(self.to_hash.merge(object: t))
54
54
  end
55
55
  end
56
56
  end
@@ -89,7 +89,7 @@ module RDF::Reasoner
89
89
  statements = []
90
90
  if term = (RDF::Vocabulary.find_term(self.predicate) rescue nil)
91
91
  term._entail_equivalentProperty do |t|
92
- statements << RDF::Statement.new(self.to_hash.merge(predicate: t))
92
+ statements << RDF::Statement(self.to_hash.merge(predicate: t))
93
93
  end
94
94
  end
95
95
  statements.each {|s| yield s} if block_given?
@@ -107,7 +107,7 @@ module RDF::Reasoner
107
107
  # @return [Array<RDF::Vocabulary::Term>]
108
108
  def equivalentClass
109
109
  raise RDF::Reasoner::Error, "#{self} Can't entail equivalentClass" unless class?
110
- Array(self.attributes["owl:equivalentClass"]).map {|t| RDF::Vocabulary.expand_pname(t)}
110
+ Array(self.attributes[:"owl:equivalentClass"]).map {|t| RDF::Vocabulary.expand_pname(t)}
111
111
  end
112
112
 
113
113
  ##
@@ -119,7 +119,7 @@ module RDF::Reasoner
119
119
  # @return [Array<RDF::Vocabulary::Term>]
120
120
  def equivalentProperty
121
121
  raise RDF::Reasoner::Error, "#{self} Can't entail equivalentProperty" unless property?
122
- Array(self.attributes["owl:equivalentProperty"]).map {|t| RDF::Vocabulary.expand_pname(t)}
122
+ Array(self.attributes[:"owl:equivalentProperty"]).map {|t| RDF::Vocabulary.expand_pname(t)}
123
123
  end
124
124
 
125
125
  def self.included(mod)
@@ -58,7 +58,7 @@ module RDF::Reasoner
58
58
  if self.predicate == RDF.type
59
59
  if term = (RDF::Vocabulary.find_term(self.object) rescue nil)
60
60
  term._entail_subClassOf do |t|
61
- statements << RDF::Statement.new(self.to_hash.merge(object: t))
61
+ statements << RDF::Statement(self.to_hash.merge(object: t))
62
62
  end
63
63
  end
64
64
  #$stderr.puts("subClassf(#{self.predicate.pname}): #{statements.map(&:object).map {|r| r.respond_to?(:pname) ? r.pname : r.to_ntriples}}}")
@@ -127,7 +127,7 @@ module RDF::Reasoner
127
127
  statements = []
128
128
  if term = (RDF::Vocabulary.find_term(self.predicate) rescue nil)
129
129
  term._entail_subPropertyOf do |t|
130
- statements << RDF::Statement.new(self.to_hash.merge(predicate: t))
130
+ statements << RDF::Statement(self.to_hash.merge(predicate: t))
131
131
  end
132
132
  #$stderr.puts("subPropertyOf(#{self.predicate.pname}): #{statements.map(&:object).map {|r| r.respond_to?(:pname) ? r.pname : r.to_ntriples}}}")
133
133
  end
@@ -146,7 +146,7 @@ module RDF::Reasoner
146
146
  statements = []
147
147
  if term = (RDF::Vocabulary.find_term(self.predicate) rescue nil)
148
148
  term.domain.each do |t|
149
- statements << RDF::Statement.new(self.to_hash.merge(predicate: RDF.type, object: t))
149
+ statements << RDF::Statement(self.to_hash.merge(predicate: RDF.type, object: t))
150
150
  end
151
151
  end
152
152
  #$stderr.puts("domain(#{self.predicate.pname}): #{statements.map(&:object).map {|r| r.respond_to?(:pname) ? r.pname : r.to_ntriples}}}")
@@ -165,7 +165,7 @@ module RDF::Reasoner
165
165
  statements = []
166
166
  if object.resource? && term = (RDF::Vocabulary.find_term(self.predicate) rescue nil)
167
167
  term.range.each do |t|
168
- statements << RDF::Statement.new(self.to_hash.merge(subject: self.object, predicate: RDF.type, object: t))
168
+ statements << RDF::Statement(self.to_hash.merge(subject: self.object, predicate: RDF.type, object: t))
169
169
  end
170
170
  end
171
171
  #$stderr.puts("range(#{self.predicate.pname}): #{statements.map(&:object).map {|r| r.respond_to?(:pname) ? r.pname : r.to_ntriples}}")
@@ -227,12 +227,12 @@ module RDF::Reasoner
227
227
  # XSD types are valid if the datatype matches, or they are plain and valid according to the grammar of the range
228
228
  resource.datatype == range ||
229
229
  resource.plain? && RDF::Literal.new(resource.value, datatype: range).valid?
230
- elsif range.start_with?(RDF::OGC)
230
+ elsif range.start_with?(RDF::Vocab::OGC)
231
231
  case range
232
- when RDF::OGC.boolean_str
233
- [RDF::OGC.boolean_str, RDF::XSD.boolean].include?(resource.datatype) ||
232
+ when RDF::Vocab::OGC.boolean_str
233
+ [RDF::Vocab::OGC.boolean_str, RDF::XSD.boolean].include?(resource.datatype) ||
234
234
  resource.plain? && RDF::Literal::Boolean.new(resource.value).valid?
235
- when RDF::OGC.date_time_str
235
+ when RDF::Vocab::OGC.date_time_str
236
236
  # Schema.org date based on ISO 8601, mapped to appropriate XSD types for validation
237
237
  case resource
238
238
  when RDF::Literal::Date, RDF::Literal::Time, RDF::Literal::DateTime, RDF::Literal::Duration
@@ -240,27 +240,27 @@ module RDF::Reasoner
240
240
  else
241
241
  ISO_8601.match(resource.value)
242
242
  end
243
- when RDF::OGC.determiner_str
243
+ when RDF::Vocab::OGC.determiner_str
244
244
  # The lexical space: "", "the", "a", "an", and "auto".
245
245
  resource.plain? && (%w(the a an auto) + [""]).include?(resource.value)
246
- when RDF::OGC.float_str
246
+ when RDF::Vocab::OGC.float_str
247
247
  # A string representation of a 64-bit signed floating point number. Example lexical values include "1.234", "-1.234", "1.2e3", "-1.2e3", and "7E-10".
248
- [RDF::OGC.float_str, RDF::Literal::Double, RDF::Literal::Float].include?(resource.datatype) ||
248
+ [RDF::Vocab::OGC.float_str, RDF::Literal::Double, RDF::Literal::Float].include?(resource.datatype) ||
249
249
  resource.plain? && RDF::Literal::Double.new(resource.value).valid?
250
- when RDF::OGC.integer_str
250
+ when RDF::Vocab::OGC.integer_str
251
251
  resource.is_a?(RDF::Literal::Integer) ||
252
- [RDF::OGC.integer_str].include?(resource.datatype) ||
252
+ [RDF::Vocab::OGC.integer_str].include?(resource.datatype) ||
253
253
  resource.plain? && RDF::Literal::Integer.new(resource.value).valid?
254
- when RDF::OGC.mime_type_str
254
+ when RDF::Vocab::OGC.mime_type_str
255
255
  # Valid mime type strings \(e.g., "application/mp3"\).
256
- [RDF::OGC.mime_type_str].include?(resource.datatype) ||
256
+ [RDF::Vocab::OGC.mime_type_str].include?(resource.datatype) ||
257
257
  resource.plain? && resource.value =~ %r(^[\w\-\+]+/[\w\-\+]+$)
258
- when RDF::OGC.string
258
+ when RDF::Vocab::OGC.string
259
259
  resource.plain?
260
- when RDF::OGC.url
260
+ when RDF::Vocab::OGC.url
261
261
  # A string of Unicode characters forming a valid URL having the http or https scheme.
262
262
  u = RDF::URI(resource.value)
263
- resource.datatype == RDF::OGC.url ||
263
+ resource.datatype == RDF::Vocab::OGC.url ||
264
264
  resource.datatype == RDF::XSD.anyURI ||
265
265
  resource.simple? && u.valid? && u.scheme.to_s =~ /^https?$/
266
266
  else
@@ -163,7 +163,7 @@ module RDF::Reasoner
163
163
  acc
164
164
  end ||
165
165
  # Resource also acceptable if it is a List, and every member of the list is range compatible with the predicate
166
- (list = RDF::List.new(resource, queryable)).valid? && list.all? do |member|
166
+ (list = RDF::List.new(subject: resource, graph: queryable)).valid? && list.all? do |member|
167
167
  self.range_compatible_schema?(member, queryable)
168
168
  end
169
169
  end
metadata CHANGED
@@ -1,91 +1,115 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-reasoner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Kellogg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-30 00:00:00.000000000 Z
11
+ date: 2016-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdf
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.1'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
- version: 1.1.4.2
19
+ version: 2.0.0.beta
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '1.1'
30
27
  - - ">="
31
28
  - !ruby/object:Gem::Version
32
- version: 1.1.4.2
29
+ version: 2.0.0.beta
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rdf-xsd
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 2.0.0.beta
40
+ - - "<"
38
41
  - !ruby/object:Gem::Version
39
- version: '1.1'
42
+ version: '3'
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
43
46
  requirements:
44
- - - "~>"
47
+ - - ">="
45
48
  - !ruby/object:Gem::Version
46
- version: '1.1'
49
+ version: 2.0.0.beta
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '3'
47
53
  - !ruby/object:Gem::Dependency
48
- name: rdf-turtle
54
+ name: json-ld
49
55
  requirement: !ruby/object:Gem::Requirement
50
56
  requirements:
51
- - - "~>"
57
+ - - ">="
52
58
  - !ruby/object:Gem::Version
53
- version: '1.1'
54
- type: :runtime
59
+ version: 2.0.0.beta
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '3'
63
+ type: :development
55
64
  prerelease: false
56
65
  version_requirements: !ruby/object:Gem::Requirement
57
66
  requirements:
58
- - - "~>"
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 2.0.0.beta
70
+ - - "<"
59
71
  - !ruby/object:Gem::Version
60
- version: '1.1'
72
+ version: '3'
61
73
  - !ruby/object:Gem::Dependency
62
- name: rdf-vocab
74
+ name: rdf-turtle
63
75
  requirement: !ruby/object:Gem::Requirement
64
76
  requirements:
65
- - - "~>"
77
+ - - ">="
66
78
  - !ruby/object:Gem::Version
67
- version: '0.8'
68
- type: :runtime
79
+ version: 2.0.0.beta
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '3'
83
+ type: :development
69
84
  prerelease: false
70
85
  version_requirements: !ruby/object:Gem::Requirement
71
86
  requirements:
72
- - - "~>"
87
+ - - ">="
73
88
  - !ruby/object:Gem::Version
74
- version: '0.8'
89
+ version: 2.0.0.beta
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '3'
75
93
  - !ruby/object:Gem::Dependency
76
- name: linkeddata
94
+ name: rdf-vocab
77
95
  requirement: !ruby/object:Gem::Requirement
78
96
  requirements:
79
- - - "~>"
97
+ - - ">="
80
98
  - !ruby/object:Gem::Version
81
- version: '1.1'
99
+ version: 2.0.0.beta
100
+ - - "<"
101
+ - !ruby/object:Gem::Version
102
+ version: '3'
82
103
  type: :development
83
104
  prerelease: false
84
105
  version_requirements: !ruby/object:Gem::Requirement
85
106
  requirements:
86
- - - "~>"
107
+ - - ">="
87
108
  - !ruby/object:Gem::Version
88
- version: '1.1'
109
+ version: 2.0.0.beta
110
+ - - "<"
111
+ - !ruby/object:Gem::Version
112
+ version: '3'
89
113
  - !ruby/object:Gem::Dependency
90
114
  name: equivalent-xml
91
115
  requirement: !ruby/object:Gem::Requirement
@@ -106,14 +130,14 @@ dependencies:
106
130
  requirements:
107
131
  - - "~>"
108
132
  - !ruby/object:Gem::Version
109
- version: '3.0'
133
+ version: '3.4'
110
134
  type: :development
111
135
  prerelease: false
112
136
  version_requirements: !ruby/object:Gem::Requirement
113
137
  requirements:
114
138
  - - "~>"
115
139
  - !ruby/object:Gem::Version
116
- version: '3.0'
140
+ version: '3.4'
117
141
  - !ruby/object:Gem::Dependency
118
142
  name: yard
119
143
  requirement: !ruby/object:Gem::Requirement
@@ -149,7 +173,7 @@ files:
149
173
  - lib/rdf/reasoner/version.rb
150
174
  homepage: http://github.com/gkellogg/rdf-reasoner
151
175
  licenses:
152
- - Public Domain
176
+ - Unlicense
153
177
  metadata: {}
154
178
  post_install_message:
155
179
  rdoc_options: []
@@ -159,15 +183,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
159
183
  requirements:
160
184
  - - ">="
161
185
  - !ruby/object:Gem::Version
162
- version: 1.9.3
186
+ version: '2.0'
163
187
  required_rubygems_version: !ruby/object:Gem::Requirement
164
188
  requirements:
165
- - - ">="
189
+ - - ">"
166
190
  - !ruby/object:Gem::Version
167
- version: '0'
191
+ version: 1.3.1
168
192
  requirements: []
169
193
  rubyforge_project:
170
- rubygems_version: 2.4.5.1
194
+ rubygems_version: 2.5.1
171
195
  signing_key:
172
196
  specification_version: 4
173
197
  summary: RDFS/OWL Reasoner for RDF.rb