shex 0.6.0 → 0.6.4
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 +4 -4
- data/AUTHORS +1 -1
- data/LICENSE +1 -1
- data/README.md +133 -118
- data/VERSION +1 -1
- data/etc/doap.ttl +17 -19
- data/lib/shex/algebra/and.rb +3 -12
- data/lib/shex/algebra/each_of.rb +2 -12
- data/lib/shex/algebra/import.rb +6 -0
- data/lib/shex/algebra/not.rb +3 -10
- data/lib/shex/algebra/one_of.rb +2 -12
- data/lib/shex/algebra/operator.rb +32 -20
- data/lib/shex/algebra/or.rb +3 -12
- data/lib/shex/algebra/schema.rb +4 -11
- data/lib/shex/algebra/semact.rb +8 -8
- data/lib/shex/algebra/shape.rb +6 -4
- data/lib/shex/algebra/shape_expression.rb +29 -0
- data/lib/shex/algebra/start.rb +2 -10
- data/lib/shex/algebra/stem.rb +5 -1
- data/lib/shex/algebra/stem_range.rb +3 -1
- data/lib/shex/algebra/triple_constraint.rb +1 -1
- data/lib/shex/algebra/triple_expression.rb +18 -0
- data/lib/shex/algebra.rb +1 -2
- data/lib/shex/extensions/test.rb +18 -16
- data/lib/shex/format.rb +2 -4
- data/lib/shex/meta.rb +325 -9859
- data/lib/shex/parser.rb +563 -478
- data/lib/shex/terminals.rb +5 -25
- data/lib/shex.rb +7 -4
- metadata +48 -13
data/lib/shex/terminals.rb
CHANGED
@@ -43,7 +43,11 @@ module ShEx
|
|
43
43
|
# 160s
|
44
44
|
ECHAR = /\\[tbnrf\\"']/
|
45
45
|
|
46
|
-
WS =
|
46
|
+
WS = %r((
|
47
|
+
\s
|
48
|
+
| (?:\#[^\n\r]*)
|
49
|
+
| (?:/\*(?:(?:\*[^/])|[^*])*\*/)
|
50
|
+
)+)xmu.freeze
|
47
51
|
|
48
52
|
# 69
|
49
53
|
RDF_TYPE = /a/.freeze
|
@@ -92,30 +96,6 @@ module ShEx
|
|
92
96
|
CODE = /\{(?:[^%\\]|\\[%\\]|#{UCHAR})*%#{WS}*\}/m.freeze
|
93
97
|
# 70
|
94
98
|
REPEAT_RANGE = /\{\s*#{INTEGER}(?:,#{WS}*(?:#{INTEGER}|\*)?)?#{WS}*\}/.freeze
|
95
|
-
|
96
|
-
# String terminals, mixed case sensitivity
|
97
|
-
STR_EXPR = %r(true|false
|
98
|
-
|\^\^|\/\/
|
99
|
-
|[\(\)\{\}\[\],\.;\=\-\~!\|\&\@\$\?\+\*\%\^a]|
|
100
|
-
(?i:OR|AND|NOT
|
101
|
-
|BASE|PREFIX
|
102
|
-
|IRI|BNODE|NONLITERAL
|
103
|
-
|MINLENGTH|MAXLENGTH|LENGTH
|
104
|
-
|MAXINCLUSIVE|MAXEXCLUSIVE
|
105
|
-
|MININCLUSIVE|MINEXCLUSIVE
|
106
|
-
|TOTALDIGITS|FRACTIONDIGITS
|
107
|
-
|START
|
108
|
-
|EXTERNAL|CLOSED|EXTRA|LITERAL
|
109
|
-
)
|
110
|
-
)x.freeze
|
111
|
-
|
112
|
-
# Map terminals to canonical form
|
113
|
-
STR_MAP = %w{OR AND NOT BASE PREFIX IRI BNODE NONLITERAL
|
114
|
-
MINLENGTH MAXLENGTH LENGTH MININCLUSIVE MAXINCLUSIVE MINEXCLUSIVE MAXEXCLUSIVE
|
115
|
-
TOTALDIGITS FRACTIONDIGITS START EXTERNAL CLOSED EXTRA LITERAL}.
|
116
|
-
inject({}) do |memo, t|
|
117
|
-
memo.merge(t.downcase => t)
|
118
|
-
end
|
119
99
|
|
120
100
|
end
|
121
101
|
end
|
data/lib/shex.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
|
+
require 'rdf'
|
2
|
+
require 'sxp'
|
3
|
+
require 'shex/format'
|
4
|
+
|
1
5
|
##
|
2
6
|
# A ShEx runtime for RDF.rb.
|
3
7
|
#
|
4
|
-
# @see
|
8
|
+
# @see https://shex.io/shex-semantics/#shexc
|
5
9
|
module ShEx
|
6
|
-
require 'shex/format'
|
7
10
|
autoload :Algebra, 'shex/algebra'
|
8
11
|
autoload :Meta, 'shex/meta'
|
9
12
|
autoload :Parser, 'shex/parser'
|
@@ -66,7 +69,7 @@ module ShEx
|
|
66
69
|
#
|
67
70
|
# @example executing a ShExC schema
|
68
71
|
# graph = RDF::Graph.load("etc/doap.ttl")
|
69
|
-
# ShEx.execute('etc/doap.shex', graph, "
|
72
|
+
# ShEx.execute('etc/doap.shex', graph, "https://rubygems.org/gems/shex", "")
|
70
73
|
#
|
71
74
|
# @param [IO, StringIO, String, #to_s] expression (ShExC or ShExJ)
|
72
75
|
# @param (see ShEx::Algebra::Schema#execute)
|
@@ -84,7 +87,7 @@ module ShEx
|
|
84
87
|
#
|
85
88
|
# @example executing a ShExC schema
|
86
89
|
# graph = RDF::Graph.load("etc/doap.ttl")
|
87
|
-
# ShEx.execute('etc/doap.shex', graph, "
|
90
|
+
# ShEx.execute('etc/doap.shex', graph, "https://rubygems.org/gems/shex", "")
|
88
91
|
#
|
89
92
|
# @param [IO, StringIO, String, #to_s] expression (ShExC or ShExJ)
|
90
93
|
# @param (see ShEx::Algebra::Schema#satisfies?)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
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-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdf
|
@@ -58,14 +58,20 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1
|
61
|
+
version: '2.1'
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '2.2'
|
62
65
|
type: :runtime
|
63
66
|
prerelease: false
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
65
68
|
requirements:
|
66
69
|
- - "~>"
|
67
70
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1
|
71
|
+
version: '2.1'
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '2.2'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: sxp
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +114,34 @@ dependencies:
|
|
108
114
|
- - "~>"
|
109
115
|
- !ruby/object:Gem::Version
|
110
116
|
version: '3.1'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: htmlentities
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '4.3'
|
124
|
+
type: :runtime
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '4.3'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: erubis
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::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'
|
111
145
|
- !ruby/object:Gem::Dependency
|
112
146
|
name: rdf-spec
|
113
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +176,14 @@ dependencies:
|
|
142
176
|
requirements:
|
143
177
|
- - "~>"
|
144
178
|
- !ruby/object:Gem::Version
|
145
|
-
version: '3.
|
179
|
+
version: '3.10'
|
146
180
|
type: :development
|
147
181
|
prerelease: false
|
148
182
|
version_requirements: !ruby/object:Gem::Requirement
|
149
183
|
requirements:
|
150
184
|
- - "~>"
|
151
185
|
- !ruby/object:Gem::Version
|
152
|
-
version: '3.
|
186
|
+
version: '3.10'
|
153
187
|
- !ruby/object:Gem::Dependency
|
154
188
|
name: rspec-its
|
155
189
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +204,14 @@ dependencies:
|
|
170
204
|
requirements:
|
171
205
|
- - "~>"
|
172
206
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.9
|
207
|
+
version: '0.9'
|
174
208
|
type: :development
|
175
209
|
prerelease: false
|
176
210
|
version_requirements: !ruby/object:Gem::Requirement
|
177
211
|
requirements:
|
178
212
|
- - "~>"
|
179
213
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.9
|
214
|
+
version: '0.9'
|
181
215
|
description: Implements ShExC and ShEx JSON.
|
182
216
|
email: public-rdf-ruby@w3.org
|
183
217
|
executables: []
|
@@ -196,6 +230,7 @@ files:
|
|
196
230
|
- lib/shex/algebra/annotation.rb
|
197
231
|
- lib/shex/algebra/each_of.rb
|
198
232
|
- lib/shex/algebra/external.rb
|
233
|
+
- lib/shex/algebra/import.rb
|
199
234
|
- lib/shex/algebra/language.rb
|
200
235
|
- lib/shex/algebra/node_constraint.rb
|
201
236
|
- lib/shex/algebra/not.rb
|
@@ -220,12 +255,12 @@ files:
|
|
220
255
|
- lib/shex/shex_context.rb
|
221
256
|
- lib/shex/terminals.rb
|
222
257
|
- lib/shex/version.rb
|
223
|
-
homepage:
|
258
|
+
homepage: https://ruby-rdf.github.com/shex
|
224
259
|
licenses:
|
225
260
|
- Unlicense
|
226
261
|
metadata:
|
227
262
|
yard.run: yri
|
228
|
-
post_install_message:
|
263
|
+
post_install_message:
|
229
264
|
rdoc_options: []
|
230
265
|
require_paths:
|
231
266
|
- lib
|
@@ -240,8 +275,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
275
|
- !ruby/object:Gem::Version
|
241
276
|
version: '0'
|
242
277
|
requirements: []
|
243
|
-
rubygems_version: 3.
|
244
|
-
signing_key:
|
278
|
+
rubygems_version: 3.2.22
|
279
|
+
signing_key:
|
245
280
|
specification_version: 4
|
246
281
|
summary: Implementation of Shape Expressions (ShEx) for RDF.rb
|
247
282
|
test_files: []
|