rdf-reasoner 0.3.0 → 0.4.0.beta1

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.
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