rdf-reasoner 0.6.2 → 0.8.0

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
  SHA256:
3
- metadata.gz: 07635fa242cf39764de458b06e4afe87fbaddf311a37fb67c4e2a1137389ab20
4
- data.tar.gz: 654c79cfc3d28e9ac29f890f264552c9c9af13d19aca0361cb79dfca19c38002
3
+ metadata.gz: 0e75c24da7eb57a1b7c670665192cfd023907a461ab813222231130699562965
4
+ data.tar.gz: 3d89941dde1e6cf0528ff3b70ea9019551524d85c4f09ec09b97125b36f868d8
5
5
  SHA512:
6
- metadata.gz: b303be11f5f865989558acb9865c5a5cf55f2a16f464e14ad049b30ff316b87eec2006fa3ad6f13fd081332ae12a11fd1500d6cb66d75acebc59d1b95c351212
7
- data.tar.gz: 5406d22674e0fe00252c6b26c60265e1e0dd8340317fae6c8f7cf2b2dd3223152a0fa065f47644878613e076754b6cd76de21b182047f0e272ed161e4f82af28
6
+ metadata.gz: 791384df059259071ece3543ada759724b64420d21e78ef01479fded2fbaabb7035cff17c4feb2f1e4d9dedffb1961d07db4271c095563b9b4ce7b12724a9cdb
7
+ data.tar.gz: 9925f559f0a2f77b7128561024bce44c577958a5dc7fb644eb05ca0e7cd2e307bc539b35c19de4e176922b2cda88bf21fec4fe77034de5e3ed596c4fd27c7bf1
data/README.md CHANGED
@@ -1,4 +1,13 @@
1
- # rdf-reasoner
1
+ # RDF::Reasoner
2
+
3
+ A partial RDFS/OWL/schema.org reasoner for [RDF.rb][].
4
+
5
+ [![Gem Version](https://badge.fury.io/rb/rdf-reasoner.png)](https://badge.fury.io/rb/rdf-reasoner)
6
+ [![Build Status](https://github.com/ruby-rdf/rdf-reasoner/workflows/CI/badge.svg?branch=develop)](https://github.com/ruby-rdf/rdf-reasoner/actions?query=workflow%3ACI)
7
+ [![Coverage Status](https://coveralls.io/repos/ruby-rdf/rdf-reasoner/badge.svg?branch=develop)](https://coveralls.io/github/ruby-rdf/rdf-reasoner?branch=develop)
8
+ [![Gitter chat](https://badges.gitter.im/ruby-rdf/rdf.png)](https://gitter.im/ruby-rdf/rdf)
9
+
10
+ ## Description
2
11
 
3
12
  Reasons over RDFS/OWL vocabularies and schema.org to generate statements which are entailed based on base RDFS/OWL rules along with vocabulary information. It can also be used to ask specific questions, such as if a given object is consistent with the vocabulary ruleset. This can be used to implement [SPARQL Entailment][] Regimes and [RDF Schema][] entailment.
4
13
 
@@ -112,8 +121,8 @@ The `rdf` command-line interface is extended with `entail` and `lint` commands.
112
121
 
113
122
  ## Dependencies
114
123
 
115
- * [Ruby](https://ruby-lang.org/) (>= 2.4)
116
- * [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.1)
124
+ * [Ruby](https://ruby-lang.org/) (>= 2.6)
125
+ * [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.2)
117
126
 
118
127
  ## Mailing List
119
128
 
@@ -136,7 +145,9 @@ The `rdf` command-line interface is extended with `entail` and `lint` commands.
136
145
  list in the the `README`. Alphabetical order applies.
137
146
  * Do note that in order for us to merge any non-trivial changes (as a rule
138
147
  of thumb, additions larger than about 15 lines of code), we need an
139
- explicit [public domain dedication][PDD] on record from you.
148
+ explicit [public domain dedication][PDD] on record from you,
149
+ which you will be asked to agree to on the first commit to a repo within the organization.
150
+ Note that the agreement applies to all repos in the [Ruby RDF](https://github.com/ruby-rdf/) organization.
140
151
 
141
152
  ## License
142
153
 
@@ -147,7 +158,7 @@ see <https://unlicense.org/> or the accompanying {file:UNLICENSE} file.
147
158
  [RDF]: https://www.w3.org/RDF/
148
159
  [YARD]: https://yardoc.org/
149
160
  [YARD-GS]: https://rubydoc.info/docs/yard/file/docs/GettingStarted.md
150
- [PDD]: https://lists.w3.org/Archives/Public/public-rdf-ruby/2010May/0013.html
161
+ [PDD]: https://unlicense.org/#unlicensing-contributions
151
162
  [SPARQL]: https://en.wikipedia.org/wiki/SPARQL
152
163
  [SPARQL Query]: https://www.w3.org/TR/2013/REC-sparql11-query-20130321/
153
164
  [SPARQL Entailment]:https://www.w3.org/TR/sparql11-entailment/
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.2
1
+ 0.8.0
@@ -241,7 +241,7 @@ module RDF
241
241
  # Must be a defined term, not in RDF or RDFS vocabularies
242
242
  if term && term.class?
243
243
  # Warn against using a deprecated term
244
- superseded = term.attributes[:'schema:supersededBy']
244
+ superseded = term.properties[:'http://schema.org/supersededBy']
245
245
  superseded = superseded.pname if superseded.respond_to?(:pname)
246
246
  (messages[:class] ||= {})[pname] = ["Term is superseded by #{superseded}"] if superseded
247
247
  else
@@ -266,7 +266,7 @@ module RDF
266
266
  # Must be a defined property
267
267
  if term.respond_to?(:property?) && term.property?
268
268
  # Warn against using a deprecated term
269
- superseded = term.attributes[:'schema:supersededBy']
269
+ superseded = term.properties[:'http://schema.org/supersededBy']
270
270
  superseded = superseded.pname if superseded.respond_to?(:pname)
271
271
  (messages[:property] ||= {})[pname] = ["Term is superseded by #{superseded}"] if superseded
272
272
  else
@@ -285,7 +285,9 @@ module RDF
285
285
  ((messages[:property] ||= {})[pname] ||= []) << if !term.domain.empty?
286
286
  "Subject #{show_resource(stmt.subject)} not compatible with domain (#{Array(term.domain).map {|d| d.pname|| d}.join(',')})"
287
287
  else
288
- "Subject #{show_resource(stmt.subject)} not compatible with domainIncludes (#{term.domainIncludes.map {|d| d.pname|| d}.join(',')})"
288
+ domains = Array(term.domainIncludes) +
289
+ Array(term.properties[:'https://schema.org/domainIncludes'])
290
+ "Subject #{show_resource(stmt.subject)} not compatible with domainIncludes (#{domains.map {|d| d.pname|| d}.join(',')})"
289
291
  end
290
292
  end
291
293
 
@@ -300,7 +302,9 @@ module RDF
300
302
  ((messages[:property] ||= {})[pname] ||= []) << if !term.range.empty?
301
303
  "Object #{show_resource(stmt.object)} not compatible with range (#{Array(term.range).map {|d| d.pname|| d}.join(',')})"
302
304
  else
303
- "Object #{show_resource(stmt.object)} not compatible with rangeIncludes (#{term.rangeIncludes.map {|d| d.pname|| d}.join(',')})"
305
+ ranges = Array(term.rangeIncludes) +
306
+ Array(term.properties[:'https://schema.org/rangeIncludes'])
307
+ "Object #{show_resource(stmt.object)} not compatible with rangeIncludes (#{ranges.map {|d| d.pname|| d}.join(',')})"
304
308
  end
305
309
  end
306
310
  end
@@ -290,12 +290,12 @@ module RDF::Reasoner
290
290
  # XSD types are valid if the datatype matches, or they are plain and valid according to the grammar of the range
291
291
  resource.datatype == range ||
292
292
  resource.plain? && RDF::Literal.new(resource.value, datatype: range).valid?
293
- elsif range.start_with?(RDF::Vocab::OGC)
293
+ elsif range.start_with?("http://ogp.me/ns/class#")
294
294
  case range
295
- when RDF::Vocab::OGC.boolean_str
296
- [RDF::Vocab::OGC.boolean_str, RDF::XSD.boolean].include?(resource.datatype) ||
295
+ when RDF::URI("http://ogp.me/ns/class#boolean_str")
296
+ [RDF::URI("http://ogp.me/ns/class#boolean_str"), RDF::XSD.boolean].include?(resource.datatype) ||
297
297
  resource.plain? && RDF::Literal::Boolean.new(resource.value).valid?
298
- when RDF::Vocab::OGC.date_time_str
298
+ when RDF::URI("http://ogp.me/ns/class#date_time_str")
299
299
  # Schema.org date based on ISO 8601, mapped to appropriate XSD types for validation
300
300
  case resource
301
301
  when RDF::Literal::Date, RDF::Literal::Time, RDF::Literal::DateTime, RDF::Literal::Duration
@@ -303,27 +303,27 @@ module RDF::Reasoner
303
303
  else
304
304
  ISO_8601.match(resource.value)
305
305
  end
306
- when RDF::Vocab::OGC.determiner_str
306
+ when RDF::URI("http://ogp.me/ns/class#determiner_str")
307
307
  # The lexical space: "", "the", "a", "an", and "auto".
308
308
  resource.plain? && (%w(the a an auto) + [""]).include?(resource.value)
309
- when RDF::Vocab::OGC.float_str
309
+ when RDF::URI("http://ogp.me/ns/class#float_str")
310
310
  # 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".
311
- [RDF::Vocab::OGC.float_str, RDF::Literal::Double, RDF::Literal::Float].include?(resource.datatype) ||
311
+ [RDF::URI("http://ogp.me/ns/class#float_str"), RDF::Literal::Double, RDF::Literal::Float].include?(resource.datatype) ||
312
312
  resource.plain? && RDF::Literal::Double.new(resource.value).valid?
313
- when RDF::Vocab::OGC.integer_str
313
+ when RDF::URI("http://ogp.me/ns/class#integer_str")
314
314
  resource.is_a?(RDF::Literal::Integer) ||
315
- [RDF::Vocab::OGC.integer_str].include?(resource.datatype) ||
315
+ [RDF::URI("http://ogp.me/ns/class#integer_str")].include?(resource.datatype) ||
316
316
  resource.plain? && RDF::Literal::Integer.new(resource.value).valid?
317
- when RDF::Vocab::OGC.mime_type_str
317
+ when RDF::URI("http://ogp.me/ns/class#mime_type_str")
318
318
  # Valid mime type strings \(e.g., "application/mp3"\).
319
- [RDF::Vocab::OGC.mime_type_str].include?(resource.datatype) ||
319
+ [RDF::URI("http://ogp.me/ns/class#mime_type_str")].include?(resource.datatype) ||
320
320
  resource.plain? && resource.value =~ %r(^[\w\-\+]+/[\w\-\+]+$)
321
- when RDF::Vocab::OGC.string
321
+ when RDF::URI("http://ogp.me/ns/class#string")
322
322
  resource.plain?
323
- when RDF::Vocab::OGC.url
323
+ when RDF::URI("http://ogp.me/ns/class#url")
324
324
  # A string of Unicode characters forming a valid URL having the http or https scheme.
325
325
  u = RDF::URI(resource.value)
326
- resource.datatype == RDF::Vocab::OGC.url ||
326
+ resource.datatype == RDF::URI("http://ogp.me/ns/class#url") ||
327
327
  resource.datatype == RDF::XSD.anyURI ||
328
328
  resource.simple? && u.valid? && u.scheme.to_s =~ /^https?$/
329
329
  else
@@ -24,7 +24,9 @@ module RDF::Reasoner
24
24
  # Fully entailed types of resource, if not provided, they are queried
25
25
  def domain_compatible_schema?(resource, queryable, options = {})
26
26
  raise RDF::Reasoner::Error, "#{self} can't get domains" unless property?
27
- domains = Array(self.domainIncludes) - [RDF::OWL.Thing]
27
+ domains = Array(self.domainIncludes) +
28
+ Array(self.properties[:'https://schema.org/domainIncludes']) -
29
+ [RDF::OWL.Thing]
28
30
 
29
31
  # Fully entailed types of the resource
30
32
  types = entailed_types(resource, queryable, **options) unless domains.empty?
@@ -34,8 +36,8 @@ module RDF::Reasoner
34
36
 
35
37
  # Resource may still be acceptable if types include schema:Role, and any any other resource references `resource` using this property
36
38
  resource_acceptable ||
37
- types.include?(RDF::Vocab::SCHEMA.Role) &&
38
- !queryable.query({predicate: self, object: resource}).empty?
39
+ (types.include?(RDF::URI("http://schema.org/Role")) || types.include?(RDF::URI("https://schema.org/Role"))) &&
40
+ !queryable.query({predicate: self, object: resource}).empty?
39
41
  end
40
42
 
41
43
  ##
@@ -54,16 +56,23 @@ module RDF::Reasoner
54
56
  # Fully entailed types of resource, if not provided, they are queried
55
57
  def range_compatible_schema?(resource, queryable, options = {})
56
58
  raise RDF::Reasoner::Error, "#{self} can't get ranges" unless property?
57
- if !(ranges = Array(self.rangeIncludes) - [RDF::OWL.Thing]).empty?
59
+ if !(ranges = Array(self.rangeIncludes) +
60
+ Array(self.properties[:'https://schema.org/rangeIncludes']) -
61
+ [RDF::OWL.Thing]).empty?
58
62
  if resource.literal?
59
63
  ranges.any? do |range|
60
64
  case range
61
65
  when RDF::RDFS.Literal then true
62
- when RDF::Vocab::SCHEMA.Text then resource.plain? || resource.datatype == RDF::Vocab::SCHEMA.Text
63
- when RDF::Vocab::SCHEMA.Boolean
64
- [RDF::Vocab::SCHEMA.Boolean, RDF::XSD.boolean].include?(resource.datatype) ||
66
+ when RDF::URI("http://schema.org/Text"), RDF::URI("https://schema.org/Text")
67
+ resource.plain? || resource.datatype == RDF::URI("http://schema.org/Text")
68
+ when RDF::URI("http://schema.org/Boolean"), RDF::URI("https://schema.org/Boolean")
69
+ [
70
+ RDF::URI("http://schema.org/Boolean"),
71
+ RDF::URI("https://schema.org/Boolean"),
72
+ RDF::XSD.boolean
73
+ ].include?(resource.datatype) ||
65
74
  resource.plain? && RDF::Literal::Boolean.new(resource.value).valid?
66
- when RDF::Vocab::SCHEMA.Date
75
+ when RDF::URI("http://schema.org/Date"), RDF::URI("https://schema.org/Date")
67
76
  # Schema.org date based on ISO 8601, mapped to appropriate XSD types for validation
68
77
  case resource
69
78
  when RDF::Literal::Date, RDF::Literal::Time, RDF::Literal::DateTime, RDF::Literal::Duration
@@ -71,35 +80,56 @@ module RDF::Reasoner
71
80
  else
72
81
  ISO_8601.match(resource.value)
73
82
  end
74
- when RDF::Vocab::SCHEMA.DateTime
75
- resource.datatype == RDF::Vocab::SCHEMA.DateTime ||
83
+ when RDF::URI("http://schema.org/DateTime"), RDF::URI("https://schema.org/DateTime")
84
+ resource.datatype == RDF::URI("http://schema.org/DateTime") ||
85
+ resource.datatype == RDF::URI("https://schema.org/DateTime") ||
76
86
  resource.is_a?(RDF::Literal::DateTime) ||
77
87
  resource.plain? && RDF::Literal::DateTime.new(resource.value).valid?
78
- when RDF::Vocab::SCHEMA.Duration
88
+ when RDF::URI("http://schema.org/Duration"), RDF::URI("https://schema.org/Duration")
79
89
  value = resource.value
80
90
  value = "P#{value}" unless value.start_with?("P")
81
- resource.datatype == RDF::Vocab::SCHEMA.Duration ||
91
+ resource.datatype == RDF::URI("http://schema.org/Duration") ||
92
+ resource.datatype == RDF::URI("https://schema.org/Duration") ||
82
93
  resource.is_a?(RDF::Literal::Duration) ||
83
94
  resource.plain? && RDF::Literal::Duration.new(value).valid?
84
- when RDF::Vocab::SCHEMA.Time
85
- resource.datatype == RDF::Vocab::SCHEMA.Time ||
95
+ when RDF::URI("http://schema.org/Time"), RDF::URI("https://schema.org/Time")
96
+ resource.datatype == RDF::URI("http://schema.org/Time") ||
97
+ resource.datatype == RDF::URI("https://schema.org/Time") ||
86
98
  resource.is_a?(RDF::Literal::Time) ||
87
99
  resource.plain? && RDF::Literal::Time.new(resource.value).valid?
88
- when RDF::Vocab::SCHEMA.Number
100
+ when RDF::URI("http://schema.org/Number"), RDF::URI("https://schema.org/Number")
89
101
  resource.is_a?(RDF::Literal::Numeric) ||
90
- [RDF::Vocab::SCHEMA.Number, RDF::Vocab::SCHEMA.Float, RDF::Vocab::SCHEMA.Integer].include?(resource.datatype) ||
102
+ [
103
+ RDF::URI("http://schema.org/Number"),
104
+ RDF::URI("http://schema.org/Float"),
105
+ RDF::URI("http://schema.org/Integer"),
106
+ RDF::URI("https://schema.org/Number"),
107
+ RDF::URI("https://schema.org/Float"),
108
+ RDF::URI("https://schema.org/Integer"),
109
+ ].include?(resource.datatype) ||
91
110
  resource.plain? && RDF::Literal::Integer.new(resource.value).valid? ||
92
111
  resource.plain? && RDF::Literal::Double.new(resource.value).valid?
93
- when RDF::Vocab::SCHEMA.Float
112
+ when RDF::URI("http://schema.org/Float"), RDF::URI("https://schema.org/Float")
94
113
  resource.is_a?(RDF::Literal::Double) ||
95
- [RDF::Vocab::SCHEMA.Number, RDF::Vocab::SCHEMA.Float].include?(resource.datatype) ||
114
+ [
115
+ RDF::URI("http://schema.org/Number"),
116
+ RDF::URI("http://schema.org/Float"),
117
+ RDF::URI("https://schema.org/Number"),
118
+ RDF::URI("https://schema.org/Float"),
119
+ ].include?(resource.datatype) ||
96
120
  resource.plain? && RDF::Literal::Double.new(resource.value).valid?
97
- when RDF::Vocab::SCHEMA.Integer
121
+ when RDF::URI("http://schema.org/Integer"), RDF::URI("https://schema.org/Integer")
98
122
  resource.is_a?(RDF::Literal::Integer) ||
99
- [RDF::Vocab::SCHEMA.Number, RDF::Vocab::SCHEMA.Integer].include?(resource.datatype) ||
123
+ [
124
+ RDF::URI("http://schema.org/Number"),
125
+ RDF::URI("http://schema.org/Integer"),
126
+ RDF::URI("https://schema.org/Number"),
127
+ RDF::URI("https://schema.org/Integer"),
128
+ ].include?(resource.datatype) ||
100
129
  resource.plain? && RDF::Literal::Integer.new(resource.value).valid?
101
- when RDF::Vocab::SCHEMA.URL
102
- resource.datatype == RDF::Vocab::SCHEMA.URL ||
130
+ when RDF::URI("http://schema.org/URL"), RDF::URI("https://schema.org/URL")
131
+ resource.datatype == RDF::URI("http://schema.org/URL") ||
132
+ resource.datatype == RDF::URI("https://schema.org/URL") ||
103
133
  resource.datatype == RDF::XSD.anyURI ||
104
134
  resource.plain? && RDF::Literal::AnyURI.new(resource.value).valid?
105
135
  else
@@ -117,11 +147,21 @@ module RDF::Reasoner
117
147
  end
118
148
  end
119
149
  end
120
- elsif %w(True False).map {|v| RDF::Vocab::SCHEMA[v]}.include?(resource) && ranges.include?(RDF::Vocab::SCHEMA.Boolean)
150
+ elsif %w(
151
+ http://schema.org/True
152
+ http://schema.org/False
153
+ https://schema.org/True
154
+ https://schema.org/False
155
+ ).include?(resource) &&
156
+ (ranges.include?(RDF::URI("http://schema.org/Boolean")) || ranges.include?(RDF::URI("https://schema.org/Boolean")))
121
157
  true # Special case for schema boolean resources
122
- elsif ranges.include?(RDF::Vocab::SCHEMA.URL) && resource.uri?
158
+ elsif (ranges.include?(RDF::URI("http://schema.org/URL")) || ranges.include?(RDF::URI("https://schema.org/URL"))) &&
159
+ resource.uri?
123
160
  true # schema:URL matches URI resources
124
- elsif ranges == [RDF::Vocab::SCHEMA.Text] && resource.uri?
161
+ elsif ranges == [RDF::URI("http://schema.org/Text")] && resource.uri?
162
+ # Allowed if resource is untyped
163
+ entailed_types(resource, queryable, **options).empty?
164
+ elsif ranges == [RDF::URI("https://schema.org/Text")] && resource.uri?
125
165
  # Allowed if resource is untyped
126
166
  entailed_types(resource, queryable, **options).empty?
127
167
  elsif literal_range?(ranges)
@@ -137,7 +177,7 @@ module RDF::Reasoner
137
177
  resource_acceptable ||
138
178
 
139
179
  # Resource also acceptable if it is a Role, and the Role object contains the same predicate having a compatible object
140
- types.include?(RDF::Vocab::SCHEMA.Role) &&
180
+ (types.include?(RDF::URI("http://schema.org/Role")) || types.include?(RDF::URI("https://schema.org/Role"))) &&
141
181
  queryable.query({subject: resource, predicate: self}).any? do |stmt|
142
182
  acc = self.range_compatible_schema?(stmt.object, queryable)
143
183
  acc
@@ -158,9 +198,25 @@ module RDF::Reasoner
158
198
  def literal_range?(ranges)
159
199
  ranges.all? do |range|
160
200
  case range
161
- when RDF::RDFS.Literal, RDF::Vocab::SCHEMA.Text, RDF::Vocab::SCHEMA.Boolean, RDF::Vocab::SCHEMA.Date,
162
- RDF::Vocab::SCHEMA.DateTime, RDF::Vocab::SCHEMA.Time, RDF::Vocab::SCHEMA.URL,
163
- RDF::Vocab::SCHEMA.Number, RDF::Vocab::SCHEMA.Float, RDF::Vocab::SCHEMA.Integer
201
+ when RDF::RDFS.Literal,
202
+ RDF::URI("http://schema.org/Text"),
203
+ RDF::URI("http://schema.org/Boolean"),
204
+ RDF::URI("http://schema.org/Date"),
205
+ RDF::URI("http://schema.org/DateTime"),
206
+ RDF::URI("http://schema.org/Time"),
207
+ RDF::URI("http://schema.org/URL"),
208
+ RDF::URI("http://schema.org/Number"),
209
+ RDF::URI("http://schema.org/Float"),
210
+ RDF::URI("http://schema.org/Integer"),
211
+ RDF::URI("https://schema.org/Text"),
212
+ RDF::URI("https://schema.org/Boolean"),
213
+ RDF::URI("https://schema.org/Date"),
214
+ RDF::URI("https://schema.org/DateTime"),
215
+ RDF::URI("https://schema.org/Time"),
216
+ RDF::URI("https://schema.org/URL"),
217
+ RDF::URI("https://schema.org/Number"),
218
+ RDF::URI("https://schema.org/Float"),
219
+ RDF::URI("https://schema.org/Integer")
164
220
  true
165
221
  else
166
222
  # If this is an XSD range, look for appropriate literal
data/lib/rdf/reasoner.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'rdf'
2
2
  require 'rdf/reasoner/extensions'
3
- require 'rdf/vocab'
4
3
 
5
4
  module RDF
6
5
  ##
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-reasoner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Kellogg
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-10 00:00:00.000000000 Z
11
+ date: 2021-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdf
@@ -16,96 +16,84 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.1'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 3.1.2
19
+ version: '3.2'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '3.1'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 3.1.2
26
+ version: '3.2'
33
27
  - !ruby/object:Gem::Dependency
34
- name: rdf-vocab
28
+ name: rdf-xsd
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '3.1'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 3.1.5
33
+ version: '3.2'
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
46
37
  requirements:
47
38
  - - "~>"
48
39
  - !ruby/object:Gem::Version
49
- version: '3.1'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 3.1.5
40
+ version: '3.2'
53
41
  - !ruby/object:Gem::Dependency
54
- name: rdf-xsd
42
+ name: rdf-spec
55
43
  requirement: !ruby/object:Gem::Requirement
56
44
  requirements:
57
45
  - - "~>"
58
46
  - !ruby/object:Gem::Version
59
- version: '3.1'
60
- type: :runtime
47
+ version: '3.2'
48
+ type: :development
61
49
  prerelease: false
62
50
  version_requirements: !ruby/object:Gem::Requirement
63
51
  requirements:
64
52
  - - "~>"
65
53
  - !ruby/object:Gem::Version
66
- version: '3.1'
54
+ version: '3.2'
67
55
  - !ruby/object:Gem::Dependency
68
- name: rdf-spec
56
+ name: rdf-vocab
69
57
  requirement: !ruby/object:Gem::Requirement
70
58
  requirements:
71
59
  - - "~>"
72
60
  - !ruby/object:Gem::Version
73
- version: '3.1'
61
+ version: '3.2'
74
62
  type: :development
75
63
  prerelease: false
76
64
  version_requirements: !ruby/object:Gem::Requirement
77
65
  requirements:
78
66
  - - "~>"
79
67
  - !ruby/object:Gem::Version
80
- version: '3.1'
68
+ version: '3.2'
81
69
  - !ruby/object:Gem::Dependency
82
70
  name: rdf-turtle
83
71
  requirement: !ruby/object:Gem::Requirement
84
72
  requirements:
85
73
  - - "~>"
86
74
  - !ruby/object:Gem::Version
87
- version: '3.1'
75
+ version: '3.2'
88
76
  type: :development
89
77
  prerelease: false
90
78
  version_requirements: !ruby/object:Gem::Requirement
91
79
  requirements:
92
80
  - - "~>"
93
81
  - !ruby/object:Gem::Version
94
- version: '3.1'
82
+ version: '3.2'
95
83
  - !ruby/object:Gem::Dependency
96
84
  name: json-ld
97
85
  requirement: !ruby/object:Gem::Requirement
98
86
  requirements:
99
87
  - - "~>"
100
88
  - !ruby/object:Gem::Version
101
- version: '3.1'
89
+ version: '3.2'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
93
  requirements:
106
94
  - - "~>"
107
95
  - !ruby/object:Gem::Version
108
- version: '3.1'
96
+ version: '3.2'
109
97
  - !ruby/object:Gem::Dependency
110
98
  name: equivalent-xml
111
99
  requirement: !ruby/object:Gem::Requirement
@@ -126,28 +114,28 @@ dependencies:
126
114
  requirements:
127
115
  - - "~>"
128
116
  - !ruby/object:Gem::Version
129
- version: '3.9'
117
+ version: '3.10'
130
118
  type: :development
131
119
  prerelease: false
132
120
  version_requirements: !ruby/object:Gem::Requirement
133
121
  requirements:
134
122
  - - "~>"
135
123
  - !ruby/object:Gem::Version
136
- version: '3.9'
124
+ version: '3.10'
137
125
  - !ruby/object:Gem::Dependency
138
126
  name: yard
139
127
  requirement: !ruby/object:Gem::Requirement
140
128
  requirements:
141
129
  - - "~>"
142
130
  - !ruby/object:Gem::Version
143
- version: 0.9.20
131
+ version: '0.9'
144
132
  type: :development
145
133
  prerelease: false
146
134
  version_requirements: !ruby/object:Gem::Requirement
147
135
  requirements:
148
136
  - - "~>"
149
137
  - !ruby/object:Gem::Version
150
- version: 0.9.20
138
+ version: '0.9'
151
139
  description: Reasons over RDFS/OWL vocabularies to generate statements which are entailed
152
140
  based on base RDFS/OWL rules along with vocabulary information. It can also be used
153
141
  to ask specific questions, such as if a given object is consistent with the vocabulary
@@ -172,7 +160,7 @@ homepage: https://github.com/ruby-rdf/rdf-reasoner
172
160
  licenses:
173
161
  - Unlicense
174
162
  metadata: {}
175
- post_install_message:
163
+ post_install_message:
176
164
  rdoc_options: []
177
165
  require_paths:
178
166
  - lib
@@ -180,15 +168,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
180
168
  requirements:
181
169
  - - ">="
182
170
  - !ruby/object:Gem::Version
183
- version: '2.4'
171
+ version: '2.6'
184
172
  required_rubygems_version: !ruby/object:Gem::Requirement
185
173
  requirements:
186
174
  - - ">="
187
175
  - !ruby/object:Gem::Version
188
176
  version: '0'
189
177
  requirements: []
190
- rubygems_version: 3.1.3
191
- signing_key:
178
+ rubygems_version: 3.3.3
179
+ signing_key:
192
180
  specification_version: 4
193
181
  summary: RDFS/OWL Reasoner for RDF.rb
194
182
  test_files: []