shex 0.5.2 → 0.6.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.
- checksums.yaml +5 -5
- data/AUTHORS +1 -1
- data/LICENSE +1 -1
- data/README.md +40 -35
- data/VERSION +1 -1
- data/etc/doap.ttl +17 -19
- data/lib/shex/algebra/and.rb +1 -1
- data/lib/shex/algebra/annotation.rb +1 -1
- data/lib/shex/algebra/each_of.rb +1 -1
- data/lib/shex/algebra/node_constraint.rb +1 -1
- data/lib/shex/algebra/not.rb +1 -1
- data/lib/shex/algebra/one_of.rb +1 -1
- data/lib/shex/algebra/operator.rb +32 -33
- data/lib/shex/algebra/or.rb +1 -1
- data/lib/shex/algebra/schema.rb +4 -4
- data/lib/shex/algebra/semact.rb +9 -9
- data/lib/shex/algebra/shape.rb +3 -3
- data/lib/shex/algebra/stem.rb +1 -1
- data/lib/shex/algebra/stem_range.rb +4 -4
- data/lib/shex/algebra/triple_constraint.rb +1 -1
- data/lib/shex/algebra.rb +3 -3
- data/lib/shex/extensions/test.rb +18 -16
- data/lib/shex/format.rb +4 -6
- data/lib/shex/meta.rb +338 -9859
- data/lib/shex/parser.rb +572 -468
- data/lib/shex.rb +14 -13
- metadata +75 -84
data/lib/shex.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
##
|
2
2
|
# A ShEx runtime for RDF.rb.
|
3
3
|
#
|
4
|
-
# @see
|
4
|
+
# @see https://shex.io/shex-semantics/#shexc
|
5
5
|
module ShEx
|
6
|
+
require 'rdf'
|
6
7
|
require 'shex/format'
|
7
8
|
autoload :Algebra, 'shex/algebra'
|
8
9
|
autoload :Meta, 'shex/meta'
|
@@ -33,13 +34,13 @@ module ShEx
|
|
33
34
|
# @raise (see ShEx::Parser#parse)
|
34
35
|
def self.parse(expression, format: 'shexc', **options)
|
35
36
|
case format.to_s
|
36
|
-
when 'shexc' then Parser.new(expression, options).parse
|
37
|
+
when 'shexc' then Parser.new(expression, **options).parse
|
37
38
|
when 'shexj'
|
38
39
|
expression = expression.read if expression.respond_to?(:read)
|
39
|
-
Algebra.from_shexj(JSON.parse(expression), options)
|
40
|
+
Algebra.from_shexj(JSON.parse(expression), **options)
|
40
41
|
when 'sxp'
|
41
42
|
expression = expression.read if expression.respond_to?(:read)
|
42
|
-
Algebra.from_sxp(expression, options)
|
43
|
+
Algebra.from_sxp(expression, **options)
|
43
44
|
else raise "Unknown expression format: #{format.inspect}"
|
44
45
|
end
|
45
46
|
end
|
@@ -56,8 +57,8 @@ module ShEx
|
|
56
57
|
# @return (see ShEx::Parser#parse)
|
57
58
|
# @raise (see ShEx::Parser#parse)
|
58
59
|
def self.open(filename, format: 'shexc', **options, &block)
|
59
|
-
RDF::Util::File.open_file(filename, options) do |file|
|
60
|
-
self.parse(file,
|
60
|
+
RDF::Util::File.open_file(filename, **options) do |file|
|
61
|
+
self.parse(file, format: format, **options)
|
61
62
|
end
|
62
63
|
end
|
63
64
|
|
@@ -66,17 +67,17 @@ module ShEx
|
|
66
67
|
#
|
67
68
|
# @example executing a ShExC schema
|
68
69
|
# graph = RDF::Graph.load("etc/doap.ttl")
|
69
|
-
# ShEx.execute('etc/doap.shex', graph, "
|
70
|
+
# ShEx.execute('etc/doap.shex', graph, "https://rubygems.org/gems/shex", "")
|
70
71
|
#
|
71
72
|
# @param [IO, StringIO, String, #to_s] expression (ShExC or ShExJ)
|
72
73
|
# @param (see ShEx::Algebra::Schema#execute)
|
73
74
|
# @return (see ShEx::Algebra::Schema#execute)
|
74
75
|
# @raise (see ShEx::Algebra::Schema#execute)
|
75
76
|
def self.execute(expression, queryable, map, format: 'shexc', **options)
|
76
|
-
shex = self.parse(expression,
|
77
|
+
shex = self.parse(expression, format: format, **options)
|
77
78
|
queryable = queryable || RDF::Graph.new
|
78
79
|
|
79
|
-
shex.execute(queryable, map, options)
|
80
|
+
shex.execute(queryable, map, **options)
|
80
81
|
end
|
81
82
|
|
82
83
|
##
|
@@ -84,17 +85,17 @@ module ShEx
|
|
84
85
|
#
|
85
86
|
# @example executing a ShExC schema
|
86
87
|
# graph = RDF::Graph.load("etc/doap.ttl")
|
87
|
-
# ShEx.execute('etc/doap.shex', graph, "
|
88
|
+
# ShEx.execute('etc/doap.shex', graph, "https://rubygems.org/gems/shex", "")
|
88
89
|
#
|
89
90
|
# @param [IO, StringIO, String, #to_s] expression (ShExC or ShExJ)
|
90
91
|
# @param (see ShEx::Algebra::Schema#satisfies?)
|
91
92
|
# @return (see ShEx::Algebra::Schema#satisfies?)
|
92
93
|
# @raise (see ShEx::Algebra::Schema#satisfies?)
|
93
94
|
def self.satisfies?(expression, queryable, map, format: 'shexc', **options)
|
94
|
-
shex = self.parse(expression,
|
95
|
+
shex = self.parse(expression, format: format, **options)
|
95
96
|
queryable = queryable || RDF::Graph.new
|
96
97
|
|
97
|
-
shex.satisfies?(queryable, map, options)
|
98
|
+
shex.satisfies?(queryable, map, **options)
|
98
99
|
end
|
99
100
|
|
100
101
|
##
|
@@ -116,7 +117,7 @@ module ShEx
|
|
116
117
|
# @param [String, #to_s] message
|
117
118
|
# @param [Hash{Symbol => Object}] options
|
118
119
|
# @option options [Integer] :code (422)
|
119
|
-
def initialize(message, options
|
120
|
+
def initialize(message, **options)
|
120
121
|
@code = options.fetch(:status_code, 422)
|
121
122
|
super(message.to_s)
|
122
123
|
end
|
metadata
CHANGED
@@ -1,77 +1,79 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.3
|
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:
|
11
|
+
date: 2021-08-25 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: '2.2'
|
20
|
-
- - "<"
|
17
|
+
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
19
|
+
version: '3.1'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2.2'
|
30
|
-
- - "<"
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
26
|
+
version: '3.1'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: json-ld
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
|
-
- - "
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '2.2'
|
40
|
-
- - "<"
|
31
|
+
- - "~>"
|
41
32
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
33
|
+
version: '3.1'
|
43
34
|
type: :runtime
|
44
35
|
prerelease: false
|
45
36
|
version_requirements: !ruby/object:Gem::Requirement
|
46
37
|
requirements:
|
47
|
-
- - "
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '2.2'
|
50
|
-
- - "<"
|
38
|
+
- - "~>"
|
51
39
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
40
|
+
version: '3.1'
|
53
41
|
- !ruby/object:Gem::Dependency
|
54
42
|
name: json-ld-preloaded
|
55
43
|
requirement: !ruby/object:Gem::Requirement
|
56
44
|
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.1'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: ebnf
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.1'
|
57
62
|
- - ">="
|
58
63
|
- !ruby/object:Gem::Version
|
59
64
|
version: '2.2'
|
60
|
-
- - "<"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '4.0'
|
63
65
|
type: :runtime
|
64
66
|
prerelease: false
|
65
67
|
version_requirements: !ruby/object:Gem::Requirement
|
66
68
|
requirements:
|
69
|
+
- - "~>"
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '2.1'
|
67
72
|
- - ">="
|
68
73
|
- !ruby/object:Gem::Version
|
69
74
|
version: '2.2'
|
70
|
-
- - "<"
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: '4.0'
|
73
75
|
- !ruby/object:Gem::Dependency
|
74
|
-
name:
|
76
|
+
name: sxp
|
75
77
|
requirement: !ruby/object:Gem::Requirement
|
76
78
|
requirements:
|
77
79
|
- - "~>"
|
@@ -85,127 +87,117 @@ dependencies:
|
|
85
87
|
- !ruby/object:Gem::Version
|
86
88
|
version: '1.1'
|
87
89
|
- !ruby/object:Gem::Dependency
|
88
|
-
name:
|
90
|
+
name: rdf-xsd
|
89
91
|
requirement: !ruby/object:Gem::Requirement
|
90
92
|
requirements:
|
91
93
|
- - "~>"
|
92
94
|
- !ruby/object:Gem::Version
|
93
|
-
version: '1
|
95
|
+
version: '3.1'
|
94
96
|
type: :runtime
|
95
97
|
prerelease: false
|
96
98
|
version_requirements: !ruby/object:Gem::Requirement
|
97
99
|
requirements:
|
98
100
|
- - "~>"
|
99
101
|
- !ruby/object:Gem::Version
|
100
|
-
version: '1
|
102
|
+
version: '3.1'
|
101
103
|
- !ruby/object:Gem::Dependency
|
102
|
-
name:
|
104
|
+
name: sparql
|
103
105
|
requirement: !ruby/object:Gem::Requirement
|
104
106
|
requirements:
|
105
|
-
- - "
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
version: '2.2'
|
108
|
-
- - "<"
|
107
|
+
- - "~>"
|
109
108
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
109
|
+
version: '3.1'
|
111
110
|
type: :runtime
|
112
111
|
prerelease: false
|
113
112
|
version_requirements: !ruby/object:Gem::Requirement
|
114
113
|
requirements:
|
115
|
-
- - "
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '2.2'
|
118
|
-
- - "<"
|
114
|
+
- - "~>"
|
119
115
|
- !ruby/object:Gem::Version
|
120
|
-
version: '
|
116
|
+
version: '3.1'
|
121
117
|
- !ruby/object:Gem::Dependency
|
122
|
-
name:
|
118
|
+
name: htmlentities
|
123
119
|
requirement: !ruby/object:Gem::Requirement
|
124
120
|
requirements:
|
125
|
-
- - "
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version: '2.2'
|
128
|
-
- - "<"
|
121
|
+
- - "~>"
|
129
122
|
- !ruby/object:Gem::Version
|
130
|
-
version: '4.
|
123
|
+
version: '4.3'
|
131
124
|
type: :runtime
|
132
125
|
prerelease: false
|
133
126
|
version_requirements: !ruby/object:Gem::Requirement
|
134
127
|
requirements:
|
135
|
-
- - "
|
128
|
+
- - "~>"
|
136
129
|
- !ruby/object:Gem::Version
|
137
|
-
version: '
|
138
|
-
|
130
|
+
version: '4.3'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: erubis
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
139
136
|
- !ruby/object:Gem::Version
|
140
|
-
version: '
|
137
|
+
version: '2.7'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '2.7'
|
141
145
|
- !ruby/object:Gem::Dependency
|
142
146
|
name: rdf-spec
|
143
147
|
requirement: !ruby/object:Gem::Requirement
|
144
148
|
requirements:
|
145
|
-
- - "
|
146
|
-
- !ruby/object:Gem::Version
|
147
|
-
version: '2.2'
|
148
|
-
- - "<"
|
149
|
+
- - "~>"
|
149
150
|
- !ruby/object:Gem::Version
|
150
|
-
version: '
|
151
|
+
version: '3.1'
|
151
152
|
type: :development
|
152
153
|
prerelease: false
|
153
154
|
version_requirements: !ruby/object:Gem::Requirement
|
154
155
|
requirements:
|
155
|
-
- - "
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '2.2'
|
158
|
-
- - "<"
|
156
|
+
- - "~>"
|
159
157
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
158
|
+
version: '3.1'
|
161
159
|
- !ruby/object:Gem::Dependency
|
162
160
|
name: rdf-turtle
|
163
161
|
requirement: !ruby/object:Gem::Requirement
|
164
162
|
requirements:
|
165
|
-
- - "
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
version: '2.2'
|
168
|
-
- - "<"
|
163
|
+
- - "~>"
|
169
164
|
- !ruby/object:Gem::Version
|
170
|
-
version: '
|
165
|
+
version: '3.1'
|
171
166
|
type: :development
|
172
167
|
prerelease: false
|
173
168
|
version_requirements: !ruby/object:Gem::Requirement
|
174
169
|
requirements:
|
175
|
-
- - "
|
176
|
-
- !ruby/object:Gem::Version
|
177
|
-
version: '2.2'
|
178
|
-
- - "<"
|
170
|
+
- - "~>"
|
179
171
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
172
|
+
version: '3.1'
|
181
173
|
- !ruby/object:Gem::Dependency
|
182
174
|
name: rspec
|
183
175
|
requirement: !ruby/object:Gem::Requirement
|
184
176
|
requirements:
|
185
177
|
- - "~>"
|
186
178
|
- !ruby/object:Gem::Version
|
187
|
-
version: '3.
|
179
|
+
version: '3.10'
|
188
180
|
type: :development
|
189
181
|
prerelease: false
|
190
182
|
version_requirements: !ruby/object:Gem::Requirement
|
191
183
|
requirements:
|
192
184
|
- - "~>"
|
193
185
|
- !ruby/object:Gem::Version
|
194
|
-
version: '3.
|
186
|
+
version: '3.10'
|
195
187
|
- !ruby/object:Gem::Dependency
|
196
188
|
name: rspec-its
|
197
189
|
requirement: !ruby/object:Gem::Requirement
|
198
190
|
requirements:
|
199
191
|
- - "~>"
|
200
192
|
- !ruby/object:Gem::Version
|
201
|
-
version: '1.
|
193
|
+
version: '1.3'
|
202
194
|
type: :development
|
203
195
|
prerelease: false
|
204
196
|
version_requirements: !ruby/object:Gem::Requirement
|
205
197
|
requirements:
|
206
198
|
- - "~>"
|
207
199
|
- !ruby/object:Gem::Version
|
208
|
-
version: '1.
|
200
|
+
version: '1.3'
|
209
201
|
- !ruby/object:Gem::Dependency
|
210
202
|
name: yard
|
211
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -262,12 +254,12 @@ files:
|
|
262
254
|
- lib/shex/shex_context.rb
|
263
255
|
- lib/shex/terminals.rb
|
264
256
|
- lib/shex/version.rb
|
265
|
-
homepage:
|
257
|
+
homepage: https://ruby-rdf.github.com/shex
|
266
258
|
licenses:
|
267
259
|
- Unlicense
|
268
260
|
metadata:
|
269
261
|
yard.run: yri
|
270
|
-
post_install_message:
|
262
|
+
post_install_message:
|
271
263
|
rdoc_options: []
|
272
264
|
require_paths:
|
273
265
|
- lib
|
@@ -275,16 +267,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
275
267
|
requirements:
|
276
268
|
- - ">="
|
277
269
|
- !ruby/object:Gem::Version
|
278
|
-
version: 2.
|
270
|
+
version: '2.4'
|
279
271
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
280
272
|
requirements:
|
281
273
|
- - ">="
|
282
274
|
- !ruby/object:Gem::Version
|
283
275
|
version: '0'
|
284
276
|
requirements: []
|
285
|
-
|
286
|
-
|
287
|
-
signing_key:
|
277
|
+
rubygems_version: 3.2.15
|
278
|
+
signing_key:
|
288
279
|
specification_version: 4
|
289
280
|
summary: Implementation of Shape Expressions (ShEx) for RDF.rb
|
290
281
|
test_files: []
|